206
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
阿里云服务器ECS使用教程-部署LNMP环境(CentOS 7)

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/200G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>


阿里云服务器ECS使用教程-部署LNMP环境(CentOS 7)

LNMP是目前主流的网站服务器架构之一,LNMP分别代表Linux、Nginx、MySQL和PHP。本文介绍如何在CentOS 7.x操作系统的ECS实例上搭建LNMP环境。

背景信息

本文提供以下两种部署方式,您可以根据需要选择。

  • 快速部署:基于阿里云资源编排服务ROS(Resource Orchestration Service)实现,可以帮助您快速部署LNMP环境。与手动部署方式相比,快速部署可以自动完成所有资源的创建和配置,实现自动化快速部署。

  • 手动部署:适用于熟悉Linux操作系统,并且对所安装软件的版本及各软件兼容性有所了解的用户。

说明

您也可以在云市场购买LNMP镜像直接创建ECS实例,以便快速建站。具体操作,请参见更换镜像部署LNMP环境。

本文的示例步骤中,使用的软件版本信息如下所述。当您使用不同软件版本时,需要根据实际情况自行调整命令和参数配置。

  • Nginx版本:Nginx 1.20.1

  • MySQL版本:MySQL 5.7.42

  • PHP版本:PHP 7.0.33

准备工作

快速部署时选择已有实例或手动部署LNMP环境时,已有ECS实例必须满足以下条件:

  • 实例已分配公网IP地址或绑定弹性公网IP(EIP)。

  • 操作系统必须为CentOS 7.x。

  • 实例安全组的入方向规则已放行22、80、443端口。具体操作,请参见添加安全组规则。

    重要

    基于服务器数据安全考虑,本文仅说明部署与测试LNMP环境所必需放行的端口,您可以根据实际需求,放行其他应用所需的端口号。例如,远程连接MySQL数据库时,需要放行MySQL默认占用的3306端口。

点我去体验

操作步骤

快速部署
手动部署
  1. 打开快速配置模板链接进入ROS控制台。

  2. 在页面左侧顶部,选择目标资源所在的地域。地域

  3. 配置模板参数页面,输入资源栈名称,选择已有ECS实例或新建ECS实例,并输入MySQL数据库密码。

    新建ECS实例时,需要选择可用区、实例规格、系统盘类型,输入实例密码。

    重要

    创建ECS实例会创建一个CentOS 7.x操作系统的按量付费ECS实例和一个按量付费EIP实例,关于ECS和EIP的计费说明,请参见ECS计费概述和EIP计费概述。

  4. 确认填写信息后,单击创建

    资源栈信息页签下的状态创建中变为创建成功时,说明LNMP环境已部署完成。

  5. 单击输出页签,然后单击PhpUrl右侧的链接。

    访问结果如下图所示,表示LNMP环境部署成功。

    php结果

后续步骤

测试访问LNMP配置信息页面后,建议您运行以下命令将phpinfo.php文件删除,消除数据泄露风险。

sudo rm -rf <网站根目录>/phpinfo.php

其中,<网站根目录>需要替换为您在nginx.conf中配置的网站根目录。

本文配置的网站根目录为/usr/share/nginx/html,因此需要运行以下命令:

sudo rm -rf /usr/share/nginx/html/phpinfo.php

常见问题

问题一:如何使用其他版本的Nginx服务器?

  1. 使用浏览器访问Nginx开源社区获取对应的Nginx版本的下载链接。

    请根据您的个人需求,选择对应的Nginx版本。本章节以Nginx 1.8.1为例。

  2. 远程连接需要部署LNMP环境的ECS实例。

    具体操作,请参见使用VNC登录实例。

  3. 运行以下命令,安装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
  4. 运行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
  5. 运行以下命令,解压Nginx 1.8.1安装包,然后进入Nginx所在的文件夹。

    sudo tar zxvf nginx-1.8.1.tar.gz
    cd nginx-1.8.1
  6. 依次运行以下命令,编译源码。

    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
  7. 运行以下命令,进入Nginx的sbin目录,然后启动Nginx。

    cd /usr/local/nginx/sbin/
    sudo ./nginx
  8. 在本地主机中,使用浏览器访问ECS实例公网IP

    出现如下图所示的页面,表示Nginx已成功安装并启动。nginx

问题二:如何为普通用户添加sudo权限?

  1. 使用root用户远程连接Linux服务器。

    具体操作,请参见使用VNC登录实例。

  2. 运行以下命令,新建一个普通用户test并设置密码。

    useradd test
    passwd test
  3. 运行以下命令,为/etc/sudoers文件赋权限。

    chmod 750 /etc/sudoers
  4. 运行以下命令,编辑/etc/sudoers文件。

    vim /etc/sudoers

    i键进入编辑模式并添加以下配置:

    test ALL=(ALL)  NOPASSWD: ALL

    sada45输入:wq,保存并退出文件。

  5. 运行以下命令,切换到test用户。

    su - test
  6. 运行以下命令,测试sudo权限。

    sudo cat /etc/redhat-release

    如果回显信息类似如下所示,表示sudo权限已经添加成功。

    [test@iZbp1dqulfhozse3jbp**** ~]$ sudo cat /etc/redhat-release
    CentOS Linux release 7.9.2009 (Core)


这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!