LNMP是目前主流的网站服务器架构之一,LNMP分别代表Linux、Nginx、MySQL和PHP。本文介绍如何在CentOS 7.x操作系统的ECS实例上搭建LNMP环境。
背景信息
本文提供以下两种部署方式,您可以根据需要选择。
说明
您也可以在云市场购买LNMP镜像直接创建ECS实例,以便快速建站。具体操作,请参见更换镜像部署LNMP环境。
本文的示例步骤中,使用的软件版本信息如下所述。当您使用不同软件版本时,需要根据实际情况自行调整命令和参数配置。
Nginx版本:Nginx 1.20.1
MySQL版本:MySQL 5.7.42
PHP版本:PHP 7.0.33
准备工作
快速部署时选择已有实例或手动部署LNMP环境时,已有ECS实例必须满足以下条件:
操作步骤
打开快速配置模板链接进入ROS控制台。
在页面左侧顶部,选择目标资源所在的地域。
在配置模板参数页面,输入资源栈名称,选择已有ECS实例或新建ECS实例,并输入MySQL数据库密码。
新建ECS实例时,需要选择可用区、实例规格、系统盘类型,输入实例密码。
重要
创建ECS实例会创建一个CentOS 7.x操作系统的按量付费ECS实例和一个按量付费EIP实例,关于ECS和EIP的计费说明,请参见ECS计费概述和EIP计费概述。
确认填写信息后,单击创建。
当资源栈信息页签下的状态由创建中变为创建成功时,说明LNMP环境已部署完成。
单击输出页签,然后单击PhpUrl右侧的链接。
后续步骤
测试访问LNMP配置信息页面后,建议您运行以下命令将phpinfo.php
文件删除,消除数据泄露风险。
sudo rm -rf <网站根目录>/phpinfo.php
其中,<网站根目录>需要替换为您在nginx.conf
中配置的网站根目录。
本文配置的网站根目录为/usr/share/nginx/html
,因此需要运行以下命令:
sudo rm -rf /usr/share/nginx/html/phpinfo.php
常见问题
问题一:如何使用其他版本的Nginx服务器?
使用浏览器访问Nginx开源社区获取对应的Nginx版本的下载链接。
请根据您的个人需求,选择对应的Nginx版本。本章节以Nginx 1.8.1为例。
远程连接需要部署LNMP环境的ECS实例。
具体操作,请参见使用VNC登录实例。
运行以下命令,安装Nginx相关依赖。
sudo yum install -y gcc-c++
sudo yum install -y pcre pcre-devel
sudo yum install -y zlib zlib-devel
sudo yum install -y openssl openssl-devel
运行wget
命令下载Nginx 1.8.1。
您可以通过Nginx开源社区直接获取对应版本的安装包URL,然后通过wget URL
的方式将Nginx安装包下载至ECS实例。例如,Nginx 1.8.1的下载命令如下:
sudo wget http://nginx.org/download/nginx-1.8.1.tar.gz
运行以下命令,解压Nginx 1.8.1安装包,然后进入Nginx所在的文件夹。
sudo tar zxvf nginx-1.8.1.tar.gz
cd nginx-1.8.1
依次运行以下命令,编译源码。
sudo ./configure \
--user=nobody \
--group=nobody \
--prefix=/usr/local/nginx \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--with-http_realip_module \
--with-http_sub_module \
--with-http_ssl_module
sudo make && make install
运行以下命令,进入Nginx的sbin
目录,然后启动Nginx。
cd /usr/local/nginx/sbin/
sudo ./nginx
在本地主机中,使用浏览器访问ECS实例公网IP
。
出现如下图所示的页面,表示Nginx已成功安装并启动。
问题二:如何为普通用户添加sudo权限?
使用root
用户远程连接Linux服务器。
具体操作,请参见使用VNC登录实例。
运行以下命令,新建一个普通用户test
并设置密码。
运行以下命令,为/etc/sudoers
文件赋权限。
运行以下命令,编辑/etc/sudoers
文件。
按i键进入编辑模式并添加以下配置:
test ALL=(ALL) NOPASSWD: ALL
输入:wq,保存并退出文件。
运行以下命令,切换到test
用户。
运行以下命令,测试sudo
权限。
sudo cat /etc/redhat-release
如果回显信息类似如下所示,表示sudo
权限已经添加成功。
[test@iZbp1dqulfhozse3jbp**** ~]$ sudo cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)