在这篇文章中:

    手动搭建 LNMP 环境(CentOS 8)

    操作场景

    LNMP 环境是指在 Linux 系统下,由 Nginx + MySQL/MariaDB + PHP 组成的网站服务器架构。本文档介绍如何在交大云主机上手动搭建 LNMP 环境。

    进行手动搭建 LNMP 环境,您需要熟悉 Linux 命令,并对所安装软件的使用及版本兼容性比较了解。

    示例软件版本

    本文搭建的 LNMP 环境软件组成版本及说明如下:
    Linux:Linux 操作系统,本文以 CentOS 8.4 为例。
    Nginx:Web 服务器,本文以 Nginx 1.18.0 为例。
    MySQL:数据库,本文以 MySQL 8.0.21 为例。
    PHP:脚本语言,本文以 PHP 7.4.11 为例。

    前提条件

    已创建了 Linux 云主机。如您还未创建云主机,请参考 快速创建 Linux 云主机

    操作步骤

    步骤1:登录 Linux 云主机

    您可以根据使用习惯,选择通过:远程登录方式登录 Linux 云主机(推荐)或控制台方式登录云主机。

    步骤2:安装及配置 Nginx

    1. 执行以下命令,安装 Nginx。

      说明:

      本文以安装 Nginx 1.18.0 为例,您可通过 Nginx 官方安装包 获取适用于 CentOS 8的更多版本。

      1
      dnf -y install http://nginx.org/packages/centos/8/x86_64/RPMS/nginx-1.18.0-1.el8.ngx.x86_64.rpm
    2. 执行以下命令,查看 Nginx 版本。

      1
      nginx -v

      返回类似如下结果,则表明已成功安装。

      1
      nginx version: nginx/1.18.0
    3. 执行以下命令,查看 Nginx 配置文件路径。

      1
      cat /etc/nginx/nginx.conf

      文件中,关键字include 一行中:/etc/nginx/conf.d/*.conf 即为 Nginx 配置文件的默认路径。

    4. 依次执行以下命令,在配置文件默认路径下先进行备份。

      1
      cd /etc/nginx/conf.d
      1
      cp default.conf default.conf.bak
    5. 执行以下命令,打开 default.conf 文件。

      1
      vim default.conf
    6. 编辑 default.conf 文件。

      1. 在 location 的 index 项中添加 index.php。如下图所示:

      2. 删除 location ~ .php$ 大括号前的代码注释符号:#,并修改以下配置项:

        • 修改 root 项为您的网站根目录,即 location 中的 root 项,本文以 /usr/share/nginx/html; 为例。
        • 修改 fastcgi_pass 项为 unix:/run/php-fpm/www.sock;,Nginx 通过 UNIX 套接字与 PHP-FPM 建立联系,该配置与 /etc/php-fpm.d/www.conf 文件内的 listen 配置一致。
        • 将 fastcgi_param SCRIPT_FILENAME 后的 /scripts$fastcgi_script_name; 替换为 $document_root$fastcgi_script_name;
          修改完成后如下图所示:
    7. Esc,输入 :wq,保存文件并返回。

    8. 依次执行以下命令,启动 Nginx 并设置为开机自启动。

      1
      systemctl start nginx
      1
      systemctl enable nginx

    步骤3:安装及配置 MySQL

    1. 执行以下命令,安装 MySQL。

      1
      dnf -y install @mysql
    2. 执行以下命令,查看 MySQL 版本。

      1
      mysql -V

      返回类似如下结果,则表明已安装成功。

      1
      mysql  Ver 8.0.21 for Linux on x86_64 (Source distribution)
    3. 依次执行以下命令,启动 MySQL 并设置为开机自启动。

      1
      systemctl enable --now mysqld
      1
      systemctl status mysqld
    4. 执行以下命令,执行 MySQL 安全性操作并设置密码。

      1
      mysql_secure_installation

      按照以下步骤,执行对应操作:

      1. 输入 y 并按 Enter 开始相关配置。
      2. 选择密码验证策略强度,建议选择高强度的密码验证策略。输入:2,并按:Enter
        • 0:表示低。
        • 1:表示中。
        • 2:表示高。
      3. 设置 MySQL 密码并按 Enter ,输入密码默认不显示。
      4. 再次输入密码并按 Enter,输入 y 确认设置该密码。
      5. 输入 y 并按 Enter,移除匿名用户。
      6. 设置是否禁止远程连接 MySQL:
        • 禁止远程连接:输入 y 并按 Enter
        • 允许远程连接:输入 n 并按 Enter
      7. 输入 y 并按 Enter,删除 test 库及对 test 库的访问权限。
      8. 输入 y 并按 Enter,重新加载授权表。

    步骤4:安装及配置 PHP

    1. 依次执行以下命令,添加并更新 epel 源。

      1
      dnf -y install epel-release
      1
      dnf update epel-release
    2. 依次执行以下命令,删除缓存的无用软件包并更新软件源。

      1
      dnf clean all
      1
      dnf makecache
    3. 执行以下命令,安装 remi 源。

      说明:

      安装 PHP 7.4.11 需安装 remi 源,请对应您实际安装的 PHP 版本执行此命令。

      1
      dnf -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
    4. 执行以下命令,启动 PHP 7.4 模块。

      1
      dnf module install php:remi-7.4
    5. 执行以下命令,安装所需 PHP 对应模块。

      1
      dnf install php php-curl php-dom php-exif php-fileinfo php-fpm php-gd php-hash php-json php-mbstring php-mysqli php-openssl php-pcre php-xml libsodium
    6. 执行以下命令,查看 PHP 版本。

      1
      php -v

      返回类似如下结果,则表明已安装成功。

      1
      2
      3
      4
      PHP 7.4.11 (cli) (built: Sep 29 2020 10:17:06) ( NTS )
      Copyright (c) The PHP Group
      Zend Engine v3.4.0, Copyright (c) Zend Technologies
      with Zend OPcache v7.4.11, Copyright (c), by Zend Technologies
    7. 执行以下命令,打开配置 文件。

      1
      vi /etc/php-fpm.d/www.conf
    8. i 切换至编辑模式,编辑配置文件。

    9. 将 user = apache 及 group = apache 修改为 user = nginx 及 group = nginx。如下图所示:

    10. Esc,输入 :wq,保存文件并返回。

    11. 依次执行以下命令,启动 PHP-FPM 并设置为开机自启动。

      1
      systemctl start php-fpm
      1
      systemctl enable php-fpm

    验证环境配置

    1. 执行以下命令,创建测试文件。

      说明:

      /usr/share/nginx/html 为您在 Nginx 中已配置的网站根目录,本文以该目录为例。

      1
      echo "<?php phpinfo(); ?>" >> /usr/share/nginx/html/index.php
    2. 在本地浏览器中访问如下地址,查看环境配置是否成功。

      1
      http://云主机的浮动IP/index.php
      1. 显示结果如下,则说明环境配置成功。

    后续操作

    在完成了 LNMP 环境搭建之后,您可在此基础上搭建网站。