阿里云服务器如何搭建LNMP?

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 阿里云服务器如何搭建LNMP?

安装 nginx



1  http://nginx.org/en/download.html  下载nginx的最新版

2 解压nginx安装包 tar -xzf nginx-1.9.3.tar.gz

3 进入 nginx-1.9.3

4 安装 zlib库

sudo apt-get install zlib1g-dev // Ubuntu

sudo yum install zlib-devel // centos

5 安装 PCRE库

sudo apt-get install libpcre3-dev # Ubuntu

sudo yum install pcre-devel # CentOS

6 安装可选的OpenSSL
# sudo apt-get install openssl
# sudo apt-get install libssl-dev

# sudo yum install openssl
# sudo yum install openssl-devel

7 进入<nginx源代码根目录>/src/core,然后用vi打开nginx.h头文件

8 ./configure // 执行配置命令
[nginx 被默认安装在 usr/local/nginx 中]

9 执行 make install

10 执行nginx -t 检查配置文件是正确的

11 进入/usr/local/nginx/sbin目录
# ./nginx //启动nginx服务
# ./nginx -s reload // 重启服务
// 如果发现80端口已经被占用,可能是nginx服务已经启动。
# pkill nginx // 杀掉nginx服务。
# ps -ef | grep nginx 命令查看内存中是否还有nginx进程。


安装 php


1、安装gcc及libxml2

yum install gcc -y

yum install libxml2* -y

2、下载最新PHP官方安装包 http://php.net/downloads.php
3、解压安装包

tar zxvf php-5.6.29.tar.gz

4、安装php

cd php-5.6.28

// 最简单的配置,(在配置phpmyadmin时,出现缺少扩展mbstring,mysqli的问题)

./configure --prefix=/usr/local/php --enable-fpm

// --prefix
// 比较全的配置 (但可能缺少库)

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib --with-libxml-dir --with-gd --with-iconv --with-curl --with-png-dir --with-jpeg-dir --enable-sockets --enable-mbstring --enable-inline-optimization --enable-zend-multibyte --with-freetype-dir

// 个人本次使用的配置

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=mysqlnd --with-mysqli=mysqlnd

make && make install // 编译 安装

5、拷贝生产环境的PHP配置文件
cp /home/develop/php-5.6/php.ini-production /usr/local/php/etc/php.ini
6、拷贝php-fpm配置文件 (如果没有特殊要求,则直接使用默认配置即可)
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

7、启动服务

cd /usr/local/

// 启动nginx服务

./nginx/sbin/nginx

// 启动php

./php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf

8、配置php和nginx 及 fastcgi
//打开nginx配置文件

cd /usr/local

vi nginx/conf/nginx.conf

其中有一段 修改成
location ~ .php$ {

        root           /mnt/www;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        include        fastcgi.conf;
    }

// 其中 fastcgi.conf 在 /usr/localnginx/conf/中,安装自带的。
如果出现如下问题,就是没有配置好:
FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream,
client: 180.167.68.134, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "..."


安装 mysql


卸载 mysql


  1. ps -ef|grep mysql 查看安装路径

  2. find / -name mysql 查看相关 文件包

  3. rpm -qa | grep -i mysql 查看相关组件

  4. rpm -ev mysql-community-server-5.6.35-2.el7.x86_64 删除组件

  5. rpm -ev mysql-community-client-5.6.35-2.el7.x86_64

  6. rpm -ev php-mysql-5.4.16-42.el7.x86_64

  7. rpm -ev mysql-community-release-el7-5.noarch

  8. rpm -ev mysql-community-libs-5.6.35-2.el7.x86_64

  9. rpm -e --nodeps mysql-community-libs-5.6.35-2.el7.x86_64 // 强制卸载

  10. rm -rf /var/lib/mysql 删除文件

  11. rm -rf /var/lib/mysql/mysql rm -rf /usr/share/mysql

  12. more /etc/passwd | grep mysql

  13. more /etc/shadow | grep mysql 删除组,用户

  14. more /etc/group | grep mysql 删除组,用户

  15. userdel mysql 删除用户

  16. groupdel mysql 删除组

  17. rpm -qa | grep -i mysql 确认是否卸载


安装 mysql


  1. 下载 MySQL-5.6.35-1.linux_glibc2.5.x86_64.rpm-bundle.tar

  2. 解压 tar -xvf MySQL-5.6.35-1.linux_glibc2.5.x86_64.rpm-bundle.tar

  3. cd MySQL-5.6.35 // 改文件名为 MySQL-5.6.35

  4. yum install MySQL-shared-compat-5.6.35-1.linux_glibc2.5.x86_64.rpm # 安装 RHEL兼容包

  5. yum install MySQL-server-5.6.35-1.linux_glibc2.5.x86_64.rpm # MySQL服务端程序

  6. yum install MySQL-client-5.6.35-1.linux_glibc2.5.x86_64.rpm # MySQL客户端程序

  7. yum install MySQL-devel-5.6.35-1.linux_glibc2.5.x86_64.rpm # MySQL的库和头文件

  8. yum install MySQL-shared-5.6.35-1.linux_glibc2.5.x86_64.rpm # MySQL的共享库

  9. cat /root/.mysql_secret配置MySQL登录密码
    // 获取MySQL安装时生成的随机密码 为 2M*8c

  10. service mysql start # 启动MySQL服务

  11. mysql -uroot -p # 进入MySQL,

  12. 使用之前获取的随机密码

  13. SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypassword');
    // 在MySQL命令行中设置root账户的密码为mypassword

  14. quit # 退出MySQL命令行

  15. service mysql restart # 重新启动MySQL服务


yum 安装 mysql


  1. yum install libaio # 安装libaio依赖包

  2. wget http://dev.mysql.com/get/mysq...


  3. yum localinstall mysql-community-release-el7-5.noarch.rpm

  4. yum install mysql-community-server

  5. 启动和关闭 MySQL Server

  6. systemctl start mysqld //启动 MySQL Server

  7. systemctl status mysqld // 查看 MySQL Server 状态

  8. systemctl stop mysqld //关闭 MySQL Server

  9. 防火墙设置 firewall-cmd(推荐)centos 7才可以

  10. firewall-cmd --permanent --zone=public --add-port=3306/tcp

  11. firewall-cmd --permanent --zone=public --add-port=3306/udp
    // 就开放了相应的端口。

  12. firewall-cmd --reload //使最新的防火墙设置规则生效

  13. 重置mysql密码


  1、systemctl start mysqld 先启动
2、mysql_secure_installation 安全设置 (没有密码 按enter 进入)
 Set root password? [Y/n] y        [设置root用户密码]
 Remove anonymous users? [Y/n] y            [删除匿名用户]
 Disallow root login remotely? [Y/n] n      [禁止root远程登录]
 Remove test database and access to it? [Y/n] y   [删除test数据库]
 Reload privilege tables now? [Y/n] y        [刷新权限]

3、新建数据库

//登录MYSQL&#xff08;有ROOT权限&#xff09;。这里我以ROOT身份登录
 [root&#64;iZ28gvqe4biZ ~]# mysql -u root -p
//首先为用户创建一个数据库hivemeta
mysql  &gt; create database hivemeta;
mysql  &gt; use hivemeta
//授权hdp用户拥有hivemeta数据库的所有权限。
mysql  &gt; grant all privileges on *.* to hdp&#64;&#34;%&#34; identified by &#34;hdp&#34; with grant option;
//刷新系统权限表
mysql  &gt; flush privileges;
mysql  &gt; use hivemeta;
//mysql/hive字符集问题
mysql  &gt; alter database hivemeta character set latin1;</code></pre> 

安装 phpMyAdmin


下载 phpMyAdmin


tar zxvf php-5.6.5.2.all-language.tar.gz // 解压

访问 phpMyAdmin/index.php


问题一 添加mbstring扩展


# cd /usr/src/php-5.6.29/ext/mbstring

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install

echo ‘extension=mbstring.so' >>/usr/local/php/lib/php.ini

//或者打开 php.ini,直接添加extension=mbstring.so字段

重启服务器

问题二 添加 mysqli 扩展


# cd /usr/src/php-5.6.29/ext/mysqli

/usr/local/php/bin/phpize

./configure --with-php-config=/usr/local/php/bin/php-config

make && make install

这样会在 /usr/local/php/lib/php/extensions/no-debug-non-ztszh中生成 mysqli.so文件

echo ‘extension=mysqli.so' >>/usr/local/php/lib/php.ini

或者打开 php.ini,直接添加extension=mysqli.so字段

网络上另一种配置是

./configure --with-php-config=/usr/local/php/bin/php-config –-with-mysql=/usr/lib64/mysql/

./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/lib64/mysql/bin/mysql_config

这个是针对mysql5.5之前。其中-with-mysql指的是mysql的安装路径。现在mysql5.6默认的安装在/usr/lib64/mysql/,但是没有mysql_config文件。


错误


打开 phpMyAdmin/index.php出现提示 You are using PHP’s deprecated ‘mysql’ extension,


解决:
在phpmyadmin中config.inc.php修改:
$cfg'Servers'['extension'] = 'mysqli';


执行PHP配置命令./configure 时提示以下错误:


checking for OS + Linux 2.6.32-431.el6.x86_64 x86_64
checking for C compiler ... not found
解决:
yum -y install gcc gcc-c++ autoconf automake make


使用SFTP错误:


Received unexpected end-of-file from SFTP server
解决方法:
vi /etc/ssh/sshd_config
删除Subsystem sftp /usr/libexec/openssh/sftp-server前面的"#",
保存退出,重启SSH
service sshd restart 然后重新连接FTP测试


云服务器ECS地址:阿里云·云小站

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
弹性计算 关系型数据库 应用服务中间件
从零基础到博主大亨!一键解锁阿里云ECS,LNMP秒搭WordPress,你的个性博文帝国,今日崛起!
【8月更文挑战第5天】随着互联网技术的发展,个人博客成为技术爱好者和内容创作者分享知识的平台。阿里云ECS以其高性能和灵活性成为搭建博客的优选。本文指导你购买配置ECS,并安装CentOS 7。通过SSH登录后,更新系统并安装LNMP环境,包括Nginx、MariaDB、PHP。配置Nginx处理PHP请求,初始化数据库并设置WordPress数据库。接着下载WordPress,解压并设置权限。最后,通过浏览器完成安装向导。利用WordPress丰富的资源定制网站,开启个性化创作之旅。记得定期备份数据,利用ECS的扩展性支持网站成长。
71 4
|
弹性计算 关系型数据库 MySQL
阿里云服务器申请试用并部署LNMP环境(CentOS 7)教程
阿里云提供云服务器1个月-3个月免费试用,可申请的试用配置有2核4GB 3个月、2核8GB 3个月、4核8GB 1个月、4核16GB 1个月,本文为大家介绍如何申请这些试用云服务器及在云服务器上部署LNMP环境(CentOS 7)教程,以供参考。
阿里云服务器申请试用并部署LNMP环境(CentOS 7)教程
|
关系型数据库 MySQL Linux
一台新的Linux服务器什么都没安装,可以直接使用docker搭建LNMP环境吗?底层原理是什么?
一台新的Linux服务器什么都没安装,可以直接使用docker搭建LNMP环境吗?底层原理是什么?
217 0
|
弹性计算 安全 关系型数据库
使用阿里云服务器手动部署LNMP环境(CentOS 7)
使用阿里云服务器手动部署LNMP环境(CentOS 7)
862 0
使用阿里云服务器手动部署LNMP环境(CentOS 7)
|
弹性计算 关系型数据库 MySQL
|
缓存 安全 前端开发
LNMP架构下WEB服务器如何管理及优化内存?
Ngnix+PHP-FPM的工作方式,似乎是LNMP架构最节省系统资源的工作方式。当然,具体的技术选型更多的应该参考自己想要实现的业务需求。
182 0
|
弹性计算 关系型数据库 MySQL
阿里云ECS配置LNMP并发布自己的第一个网页
在Ubuntu2004上安装LNMP环境,参考了官方的文档,大部分内容只要跟着做就可以了,但也有一些小小的坑需要注意,主要是nginx配置和MySQL设置安全性这两部分如果直接按照官网的示例会踩坑。
阿里云ECS配置LNMP并发布自己的第一个网页
|
关系型数据库 MySQL 应用服务中间件
阿里云体验实验室-5:快速搭建LNMP环境
阿里云体验实验室-5:快速搭建LNMP环境
225 0
|
关系型数据库 MySQL 应用服务中间件
手动部署LNMP环境(Alibaba Cloud Linux 2)
本场景带您体验如何在Alibaba Cloud Linux 2.1903 LTS 64位操作系统的云服务器上搭建LNMP环境。
|
7月前
|
关系型数据库 应用服务中间件 nginx
基于Docker的LNMP环境微服务搭建
基于Docker的LNMP环境微服务搭建
基于Docker的LNMP环境微服务搭建