摘要:本次实训基于阿里云ECS公有云服务器,完成LNMP环境手动部署与WordPress博客网站搭建全流程操作。本文结合实操步骤,梳理环境准备、组件安装、服务配置、数据库授权、网站部署及安全优化等核心内容,总结实操踩坑点、组件协同原理与公有云建站规范,适合新手学习Linux云服务建站、Web服务架构部署。

 一、实训概述

 1. 环境说明

本次使用阿里云ECS(CentOS 7) 公有云服务器,采用经典LNMP架构(Linux + Nginx + MySQL + PHP)搭建动态网站。

Nginx:高性能Web反向代理服务器,负责处理静态资源、转发PHP动态请求;

MySQL 8.4:关系型数据库,存储网站数据、文章、用户信息;

PHP 8.2:动态脚本语言,实现网站业务逻辑;

WordPress:主流开源博客/建站程序,基于PHP+MySQL运行。

 2. 整体流程

环境初始化 → 分步安装Nginx/MySQL/PHP → 配置Nginx解析PHP → 验证LNMP连通性 → 数据库规划 → 部署WordPress → 站点调试与安全清理。

 二、前期环境准备

公有云ECS初始化是部署的基础,所有操作前置完成:

1. 确保服务器网络正常,可正常访问外网;

2. 替换为国内YUM源(阿里云源),提升软件下载速度;

3. 关闭防火墙、SELinux,避免端口拦截(生产环境建议按需放行80、3306等端口,不直接关闭防护);

4. 通过云平台Workbench或SSH工具远程连接ECS实例。

 三、分步部署LNMP环境

 (一)安装与配置Nginx

Nginx作为前端Web服务,是用户访问网站的入口。

1. 添加官方YUM源并安装

通过`tee`命令写入Nginx官方源文件,保证软件版本正规,随后执行安装:

bash

sudo tee /etc/yum.repos.d/nginx.repo <<-'EOF'

[nginx-stable]

name=nginx stable repo

baseurl=https://nginx.org/packages/centos/7/$basearch/

gpgcheck=1

enabled=1

gpgkey=https://nginx.org/keys/nginx_signing.key

module_hotfixes=true

EOF

sudo yum -y install nginx

2. 启动服务并设置开机自启

bash

sudo systemctl enable --now nginx

3. 验证服务

本地执行 `curl http://127.0.0.1`,终端输出Nginx默认首页HTML代码,代表安装成功。

 (二)安装并安全加固MySQL 8.4

MySQL负责数据存储,安全加固是公有云部署的必备环节,防止数据库被非法入侵。

1. 导入MySQL官方仓库并安装服务

bash

sudo rpm -Uvh https://repo.mysql.com/mysql84-community-release-el7-1.noarch.rpm

sudo yum install -y mysql-server

2. 启动并设置开机自启

bash

sudo systemctl enable --now mysqld

3. 安全初始化(核心步骤)

查看日志获取MySQL初始临时密码:

  bash

  sudo grep 'temporary password' /var/log/mysqld.log

  

执行加固脚本:`sudo mysql_secure_installation`,按照生产规范配置:

  1. 修改root密码(强密码:大小写字母+数字+特殊符号,长度≥12位);

  2. 移除匿名用户;

  3. 禁止root账号远程登录;

  4. 删除默认测试库;

  5. 重载权限表,使配置立即生效。

> 重点:公有云服务器暴露在公网,禁止root远程登录是基础安全底线。

(三)安装PHP及依赖扩展

WordPress属于PHP动态程序,需安装PHP、PHP-FPM以及MySQL连接扩展。

1. 安装Remi源,启用PHP 8.2版本

bash

sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm

sudo yum install -y yum-utils

sudo yum-config-manager --enable remi-php82

2. 安装PHP、PHP-FPM、MySQL连接组件

bash

sudo yum install -y php php-fpm php-mysqlnd

3. 启动并设置开机自启

bash

sudo systemctl enable --now php-fpm

(四)配置Nginx支持PHP解析

Nginx默认仅处理静态文件,必须配置转发规则,才能将PHP请求交给PHP-FPM处理,否则会出现页面下载、404等问题。

1. 备份原有配置文件,防止配置出错无法回滚

bash

sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.bak

2. 查看PHP-FPM通信方式

bash

PHP_FPM_LISTEN=$(sudo sed -n 's/^\s*listen\s*=\s*//p' /etc/php-fpm.d/www.conf | head -n 1)

echo "$PHP_FPM_LISTEN"

通信分为两种:`127.0.0.1:9000`(TCP端口)、`/run/php-fpm/www.sock`(Unix Socket,本地通信性能更高)。

3. 重写Nginx站点配置

修改配置文件,添加PHP请求转发规则,指定默认首页:

bash

sudo tee /etc/nginx/conf.d/default.conf <<-'EOF'

server {

    listen       80;

    server_name  localhost;

    root /usr/share/nginx/html;

    index index.php index.html index.htm;

    location / {

        try_files $uri $uri/ /index.php?$query_string;

    }

    location ~ \.php$ {

        fastcgi_pass   127.0.0.1:9000;

        fastcgi_index  index.php;

        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;

        include        fastcgi_params;

    }

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {

        root   /usr/share/nginx/html;

    }

}

EOF

4. 语法检查与重启服务

bash

sudo nginx -t           检查配置,出现successful代表无误

sudo systemctl restart nginx

(五)全环境连通性验证

 1. 验证PHP环境

创建`phpinfo.php`测试文件,访问`http://ECS公网IP/phpinfo.php`,页面正常展示PHP版本、扩展信息即解析成功。

bash

echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/html/phpinfo.php

✅ 安全规范:测试完成后立即删除该文件,页面会泄露服务器软件版本、路径等敏感信息。

bash

rm /usr/share/nginx/html/phpinfo.php

 2. 验证PHP连接MySQL

1. 登录MySQL,创建独立业务库与普通用户(不使用root运行网站):

bash

sudo mysql -u root -p

CREATE DATABASE webapp;

CREATE USER 'webuser'@'localhost' IDENTIFIED BY '自定义强密码';

GRANT ALL PRIVILEGES ON webapp.* TO 'webuser'@'localhost';

FLUSH PRIVILEGES;

EXIT;

2. 创建数据库连接测试脚本,访问公网IP查看结果:

bash

sudo tee /usr/share/nginx/html/test.php <<-'EOF'

<?php

$servername = "localhost";

$username = "webuser";

$password = "你的数据库密码";

$dbname = "webapp";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {

    die("数据库连接失败: " . $conn->connect_error);

}

echo "数据库连接成功!";

?>

EOF

页面输出数据库连接成功,代表LNMP三大组件协同正常。

✅ 安全规范:测试完毕删除`test.php`,避免数据库账号密码明文泄露。

 四、部署WordPress动态网站

LNMP环境就绪后,开始搭建WordPress博客站点,分为数据库准备、程序下载、配置文件修改、Nginx适配、站点初始化五步。

(一)创建WordPress专用数据库与用户

遵循业务隔离原则,为网站单独创建数据库和账号,不共用其他业务库:

bash

mysql -u root -p

CREATE DATABASE wordpress;

CREATE USER 'wp_user'@'localhost' IDENTIFIED BY '强密码';

GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';

FLUSH PRIVILEGES;

EXIT;

记录数据库名、用户名、密码,后续配置需要使用。

(二)下载并解压WordPress

进入Nginx网站根目录,下载中文版WordPress并解压:

bash

cd /usr/share/nginx/html

wget https://cn.wordpress.org/wordpress-6.8.5-zh_CN.zip

yum install unzip -y

unzip wordpress-6.8.5-zh_CN.zip

(三)配置WordPress数据库连接

1. 进入WordPress目录,复制示例配置文件:

bash

cd /usr/share/nginx/html/wordpress

cp wp-config-sample.php wp-config.php

2. 编辑`wp-config.php`,填入刚才创建的数据库信息:

bash

vim wp-config.php

修改对应字段:

php

define('DB_NAME', 'wordpress');

define('DB_USER', 'wp_user');

define('DB_PASSWORD', '数据库密码');

define('DB_HOST', 'localhost');

(四)适配Nginx与PHP-FPM配置

本次改用Unix Socket通信,性能优于TCP端口,需同步修改两处配置:

1. 修改PHP-FPM监听方式

bash

vim /etc/php-fpm.d/www.conf

将 `listen = 127.0.0.1:9000` 改为 `listen = /run/php-fpm/www.sock`

取消注释并修改属主属组:

  

  listen.owner = nginx

  listen.group = nginx

  

重启PHP-FPM:

bash

systemctl restart php-fpm

2. 修改Nginx配置,指向WordPress目录与Socket地址

修改站点配置,将网站根目录指向WordPress文件夹,`fastcgi_pass` 改为 `unix:/run/php-fpm/www.sock`。

3. 检查语法并重启Nginx

bash

nginx -t

systemctl restart nginx

(五)浏览器初始化WordPress

1. 本地浏览器访问 `http://ECS公网IP`,进入WordPress安装向导;

2. 填写站点标题、后台管理员账号、密码、邮箱;

3. 点击安装,完成后使用账号密码登录后台,网站正式搭建完成。

五、实操核心知识点与踩坑总结

 1. 架构原理

Nginx:处理静态资源,通过`fastcgi`协议将PHP请求转发给PHP-FPM;

PHP-FPM:PHP进程管理器,接收请求并执行PHP代码,再访问MySQL查询数据;

两种通信方式:TCP端口(适合多主机分离部署)、Unix Socket(本地部署,高性能、更安全)。

 2. 高频报错与解决

1. 访问PHP文件直接下载:Nginx未配置`location ~ \.php$`转发规则;

2. 502 Bad Gateway:PHP-FPM未启动、监听地址与Nginx配置不一致、Socket文件权限错误;

3. WordPress连不上数据库:账号密码写错、数据库授权范围错误、MySQL服务未启动;

4. 公网无法访问:云服务器安全组未放行80端口、本地防火墙未关闭。

 3. 公有云专属安全要点(重中之重)

1. MySQL必须执行安全加固,禁止root远程登录、删除匿名用户;

2. 网站使用独立数据库账号,最小化权限,不使用root运行业务;

3. 所有测试脚本(phpinfo、数据库测试页)使用后立即删除,防止敏感信息泄露;

4. 密码统一使用高强度组合密码,杜绝弱口令;

5. 云平台安全组按需开放端口,生产环境不要直接关闭服务器防火墙。

 六、实训收获与后续学习方向

本次完整完成公有云ECS下LNMP环境搭建与WordPress网站部署,打通了云服务器 + Web架构 + 动态网站的完整链路。

1. 理解了LNMP各组件的分工与协同逻辑,不再单纯机械敲命令;

2. 掌握了公有云服务器的基础安全规范,树立云服务安全意识;

3. 熟悉了Nginx配置、PHP-FPM调优、MySQL用户授权等常用运维操作。

后续可以继续深入学习:Nginx反向代理、HTTPS证书配置、WordPress主题与插件部署、网站数据备份、服务器监控、负载均衡等企业级运维技能。

总结:

公有云建站流程清晰,但细节决定成败,配置路径、权限、通信地址、账号密码任一出错都会导致网站无法访问。实操中一定要养成备份配置、及时清理测试文件、强化安全设置的习惯。

更多推荐