部署LNMP环境(CentOS 7)

ecs

手动配置

40

教程简介

本教程提供在阿里云云服务器ECS上基于CentOS 7.9操作系统搭建LNMP环境的指引。LNMP是应用广泛的网站服务系统,由四种免费的开源软件Linux、Nginx、MySQL和PHP组成。搭建好LNMP环境后,您可以在该ECS实例上搭建网站、访问网站、搭建开发环境等。

云服务器ECS是一种安全可靠、弹性可伸缩的云计算服务,助您降低IT成本,提升运维效率,使您更专注于核心业务创新。更多信息,请参见特性与优势

本教程以CentOS 7.9 64位操作系统为例,如果您的ECS服务器使用了其他版本的操作系统,操作可能和本教程略有差异。

我能学到什么

  • 熟悉远程登录Linux操作系统的ECS实例。

  • 学会在ECS实例上搭建一个LNMP环境。

操作难度

所需时间

40分钟

使用的阿里云产品

所需费用

0元

准备环境及资源

10

开始教程前,请按以下步骤准备环境和资源:

  1. 访问阿里云免费试用。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。

  2. 成功登录后,在产品类别下选择计算 > 云服务器 ECS,按需选择云服务器试用规格,单击立即试用。本试用教程使用的实例规格为2核4GB 3个月,实际操作时,建议根据您的业务体量和需求选择。

  3. 配置ECS实例信息面板,完成参数配置。完成本教程的配置如下(实际操作请根据业务需求按需配置):

    • 地域:华东1(杭州),建议选择靠近您客户的地域

    • 操作系统:CentOS 7.9 64位

    • 其他参数:保持默认值或按需选择

  4. 同意协议后,单击立即试用,并根据页面提示完成试用申请。

    创建实例一般需要3~5分钟,请您耐心等待。当实例状态变为运行中时,表示实例创建完成。

    image

登录云服务器

4

开通免费试用ECS服务器后,系统会创建一个ECS实例(对应一台云服务器),使用ECS实例部署应用或搭建环境前,需设置实例密码后才能登录实例。

  1. 登录ECS控制台,在左侧导航栏,选择实例与镜像 > 实例

  2. 在顶部菜单栏左上角处,选择和试用实例相同的地域。

  3. 设置该实例登录密码。在操作列单击 icon1> 实例属性 > 重置实例密码,按照界面提示设置ECS实例的登录密码。保存密码后,在弹出的页面,单击立即重启使密码生效。

    实例创建完成大约3~5分钟后,才支持重置实例密码,如不可重置请耐心等待后重试。

    image
  4. 单击试用实例的ID,选择安全组页签,单击安全组操作列的配置规则,在入方向添加需要放行的端口。本教程中,在安全组入方向放行SSH默认22端口、Nginx默认80端口和MySQL默认3306端口。

    image
  5. 远程连接ECS实例。

    1. 返回实例页面,单击该实例对应操作列下的远程连接

    2. 在弹出的连接与命令对话框中,单击通过Workbench远程连接对应的立即登录

    3. 在弹出的登录实例对话框中,输入登录信息。

安装Nginx服务

5

  1. 依次执行命令安装Nginx运行所需要的插件。

    #安装gcc。gcc是Linux下的编译器,它可以编译C、C++、Ada、Object C和Java等语言。 
    yum install -y gcc
    #安装pcre。pcre是一个perl库,Nginx的HTTP模块使用pcre来解析正则表达式。 
    yum install -y pcre pcre-devel
    #安装zlib。zlib是一个文件压缩和解压缩的库,Nginx使用zlib对HTTP数据包进行gzip压缩和解压。 
    yum install -y zlib zlib-devel
  2. 执行命令下载Nginx安装包。

    wget http://nginx.org/download/nginx-1.17.10.tar.gz
  3. 执行命令解压Nginx安装包。

    tar -zxvf nginx-1.17.10.tar.gz
  4. 依次执行命令编译安装Nginx。

    cd nginx-1.17.10
    ./configure
    make && make install
  5. 依次执行命令启动Nginx。如果您之前体验环境中已安装Apache,可能会出现80端口被占用的问题,您可以执行命令netstat -apn|grep 80查看端口占用情况,然后执行命令systemctl stop httpd.service停止Apache服务,最后执行命令sbin/nginx重新启动Nginx。

    cd /usr/local/nginx/
    sbin/nginx
  6. 在浏览器地址栏输入http://<ECS公网IP地址>测试Nginx。出现如图所示,表示Nginx已安装成功。ECS服务器的弹性公网IP可以从ECS实例页面获取。

    nginx_hello_world

安装MySQL数据库

10

  1. 依次执行命令下载并安装MySQL数据库。回显信息显示Complete!,表示MySQL数据库安装成功。

    wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
    yum install -y mysql57-community-release-el7-10.noarch.rpm
    yum install -y mysql-community-server --nogpgcheck
  2. 执行命令启动MySQL数据库。

    systemctl start mysqld.service
  3. 执行命令查看MySQL数据库的运行状态。如果回显信息显示active(running)时,表示MySQL数据库已启动。

    systemctl status mysqld.service
  4. 执行命令查看MySQL数据库的初始密码。

    grep "password" /var/log/mysqld.log
    image
  5. 执行命令登录MySQL数据库。根据回显信息,输入MySQL数据库的初始密码。

    mysql -uroot -p
    image
  6. 执行命令修改MySQL数据库的初始密码。

    • 密码必须同时包含大小写英文字母、数字和特殊符号中的三类字符。

    • 注意每条完整的SQL命令结尾都有一个半角分号(;),如果多行命令中间没有分号分隔,这些命令将不会执行,直至遇到一个分号。

    ALTER USER 'root'@'localhost' IDENTIFIED BY '<新密码>';
  7. 执行命令创建一个存储博客网站内容的数据库,例如:wordpress

    create database wordpress; 
  8. 执行命令查看数据库是否创建成功。如果回显信息显示wordpress,表示数据库创建成功。

    show databases;
    image
  9. 输入exit,退出数据库。

安装PHP环境

5

  1. 执行命令安装PHP环境。

    yum install -y php php-mysql php-fpm
  2. 执行命令在nginx.conf文件中增加对PHP的支持。

    vim /usr/local/nginx/conf/nginx.conf
  3. 进入Vim编辑器后,按i键进入编辑模式。

    location / {
          root   html;
          index index.html index.htm index.php;
    }
  4. 在server的根路由配置中新增index.php,并在根路由下面新增配置。

    location / {
          root   html;
          index index.html index.htm index.php;
    }
    if (!-e $request_filename) {
         rewrite ^/(.*)$ /index.php/$1 last;
    }
    
    location ~ .*\.php(\/.*)*$ {
         fastcgi_pass   127.0.0.1:9000;
         include       fastcgi.conf;
         fastcgi_index  index.php;
    }
    image
  5. Ecs键,输入:wq后按Enter键,保存并退出Vim编辑器。

    1. 执行命令重启php-fpm服务。

      systemctl restart php-fpm
    2. 执行命令重启Nginx服务。

      /usr/local/nginx/sbin/nginx -s reload
    3. 在Nginx的网站根目录下,创建PHP测试页面phpinfo.php。

      echo "<?php phpinfo(); ?>" > /usr/local/nginx/html/phpinfo.php
    4. 在浏览器地址栏中输入http://<ECS实例公网IP地址>/phpinfo.php,出现类似如下页面表示PHP环境安装成功。

      image

    完成

    1

    完成以上操作后,您已经成功搭建了LNMP环境,LNMP环境分别代表Linux、Nginx、MySQL和PHP。

    清理及后续

    5

    清理

    本教程使用的是企业版ECS实例,默认为包年包月实例,完成本教程后请参考以下规则清理:

    • 包年包月实例到期会自动释放,释放实例的同时释放数据。

    • 如果需要继续使用实例,请在试用到期前及时续费。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。

    后续

    LNMP搭建后,您可以在该ECS实例上搭建网站、搭建开发环境、绑定并解析域名后使用域名访问网站等操作。具体操作,请参见建站零基础入门Linux实例如何在Web服务中绑定域名

    总结

    常用知识点

    问题1:安装Nginx后,不能通过ECS实例公网IP地址访问,请确保已在安全组中放行Nginx默认使用的哪个端口?(单选题)

    • 22

    • 80

    • 3369

    正确答案是80。Nginx是Web Server,默认端口号是80,因此需要放行80端口。

    问题2:安装MySQL数据库后,如何查看MySQL数据库root用户的初始密码?(单选题)

    • 执行grep "password" /var/log/mysqld.log命令。

    • 执行grep "password"|grep /etc/nginx/nginx.conf命令。

    • 执行grep "password" /var/log/mysql.log命令。

    正确答案是执行grep "password" /var/log/mysqld.log命令。MySQL初始安装时会生成临时的root用户密码,记录在/var/log/mysqld.log中。

    延伸阅读

    一键配置

    25

    教程简介

    本教程提供在阿里云云服务器ECS上基于CentOS 7.9操作系统搭建LNMP环境的指引。LNMP是应用广泛的网站服务系统,由四种免费的开源软件Linux、Nginx、MySQL和PHP组成。搭建好LNMP环境后,您可以在该ECS实例上搭建网站、访问网站、搭建开发环境等。

    云服务器ECS是一种安全可靠、弹性可伸缩的云计算服务,助您降低IT成本,提升运维效率,使您更专注于核心业务创新。更多信息,请参见特性与优势

    本教程以CentOS 7.9 64位操作系统为例,如果您的ECS服务器使用了其他版本的操作系统,操作可能和本教程略有差异。

    我能学到什么

    • 熟悉远程登录Linux操作系统的ECS实例。

    • 学会在ECS实例上搭建一个LNMP环境。

    操作难度

    所需时间

    25分钟

    使用的阿里云产品

    所需费用

    0元

    准备环境及资源

    10

    开始教程前,请按以下步骤准备环境和资源:

    1. 访问阿里云免费试用。单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。

    2. 成功登录后,在产品类别下选择计算 > 云服务器 ECS,按需选择云服务器试用规格,单击立即试用。本试用教程使用的实例规格为2核4GB 3个月,实际操作时,建议根据您的业务体量和需求选择。

    3. 配置ECS实例信息面板,完成参数配置。完成本教程的配置如下(实际操作请根据业务需求按需配置):

      • 地域:华东1(杭州),建议选择靠近您客户的地域

      • 操作系统:CentOS 7.9 64位

      • 其他参数:保持默认值或按需选择

    4. 同意协议后,单击立即试用,并根据页面提示完成试用申请。

      创建实例一般需要3~5分钟,请您耐心等待。当实例状态变为运行中时,表示实例创建完成。

      image

    一键配置

    5

    准备好资源后,您可以通过一键配置快速完成资源配置或应用搭建。一键配置基于阿里云资源编排服务ROS(Resource Orchestration Service)实现,旨在帮助开发者通过IaC(Infrastructure as Code)的方式体验资源的自动化配置。如需查看软件版本、安装命令等配置的具体信息,可查看教程的手动配置版。模板完成的内容包括:

    • 为ECS实例创建安全组

    • 安装Nginx服务

    • 安装MySQL数据库并修改数据库root用户默认密码

    • 安装PHP环境

    操作步骤

    1. 打开一键配置模板链接前往ROS控制台,系统自动打开使用新资源创建资源栈的面板,并在模板内容区域展示YAML文件的详细信息。

    2. ROS控制台默认处于您上一次访问控制台时的地域,请根据您创建的资源所在地域修改地域。确认好地域后,保持页面所有选项不变,单击下一步进入配置模板参数页面。

    3. 配置模板参数页面修改资源栈名称,选择您申请免费试用时创建的ECS实例,并通过设置MySQL数据库密码来修改数据库root用户的默认密码。填写完所有必选信息并确认后单击创建开始一键配置。

      • 安装Nginx、MySQL和PHP需要通过互联网下载应用,配置时间可能由于网络稳定性等原因而不同。等待期间,您可以通过刷新资源栈信息页面来查看配置是否完成或通过单击事件页签查看配置详细进展。

      • 如果您在同一台ECS实例上重复执行本教程的一键配置模板,请确保MySQL数据库密码和第一次执行模板时设置的密码完全一致。否则一键配置结果不可用。

    4. 资源栈信息页面的状态显示为创建成功时,表示一键配置完成。

      image

    完成

    5

    单击ROS控制台输出页签中的PhpUrlhttp://<ECS公网IP地址>/phpinfo.php),出现PHP版本信息页面,表示LNMP环境安装成功。您也可以单击NginxUrlhttp://<ECS公网IP地址>),出现Welcome to nginx!页面,表示Nginx环境安装成功。

    如果您需要使用root用户远程登录ECS实例,请设置密码后远程登录ECS实例。具体操作,请参见重置实例登录密码通过密码或密钥认证登录Linux实例

    image

    清理及后续

    5

    清理

    本教程使用的是企业版ECS实例,默认为包年包月实例,完成本教程后请参考以下规则清理:

    • 包年包月实例到期会自动释放,释放实例的同时释放数据。

    • 如果需要继续使用实例,请在试用到期前及时续费。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。

    后续

    LNMP搭建后,您可以在该ECS实例上搭建网站、搭建开发环境、绑定并解析域名后使用域名访问网站等操作。具体操作,请参见建站零基础入门Linux实例如何在Web服务中绑定域名

    总结

    常用知识点

    问题1:本教程中搭建LNMP环境使用的是哪个数据库?(单选题)

    • Mariadb

    • MySQL

    正确答案是MySQL。

    问题2:搭建LNMP后,在ROS控制台输出页签中如何验证Nginx是否安装成功?(单选题)

    • 单击PhpUrl(http://<ECS公网IP地址>/phpinfo.php),出现PHP版本信息页面。

    • 单击PhpUrl(http://<ECS公网IP地址>/phpinfo.php),出现Welcome to nginx!页面。

    • 单击NginxUrl(http://<ECS公网IP地址>),出现Welcome to nginx!页面。

    正确答案是单击NginxUrl(http://<ECS公网IP地址>),出现Welcome to nginx!页面。

    延伸阅读

    阿里云首页 相关技术圈