公有云ECS手动搭建LNMP+WordPress网站实战总结
摘要:本次实训基于阿里云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主题与插件部署、网站数据备份、服务器监控、负载均衡等企业级运维技能。
总结:
公有云建站流程清晰,但细节决定成败,配置路径、权限、通信地址、账号密码任一出错都会导致网站无法访问。实操中一定要养成备份配置、及时清理测试文件、强化安全设置的习惯。
