以下是在阿里云 ECS(Ubuntu 22.04 LTS)服务器上完整、安全、生产就绪地部署 LNMP(Linux + Nginx + MySQL 8.0 + PHP 8.1)并安装 WordPress 的详细步骤。本指南已针对阿里云环境优化(含安全组配置、防火墙、权限加固、SSL 建议),适用于新手且兼顾最佳实践。
✅ 前提条件
- 已创建阿里云 ECS 实例,操作系统:
Ubuntu 22.04 LTS(推荐 2C4G 或以上)- 已配置安全组规则(放行端口:
22(SSH)、80(HTTP)、443(HTTPS))- 已通过 SSH 登录(如
ssh -i your-key.pem ubuntu@your-server-ip)- 使用
ubuntu用户操作(非 root,但需sudo权限)
🔹 第一步:系统初始化与安全加固
# 1. 更新系统并升级软件包
sudo apt update && sudo apt upgrade -y
# 2. 安装基础工具(vim、curl、wget、unzip、git、ufw)
sudo apt install -y vim curl wget unzip git gnupg2 software-properties-common
# 3. 配置 UFW 防火墙(推荐启用)
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full' # 同时开放 80 & 443
sudo ufw enable
sudo ufw status verbose # 确认状态为 active
# 4. 创建专用用户(可选但推荐,避免直接用 ubuntu)
sudo adduser wwwadmin
sudo usermod -aG sudo wwwadmin
# (后续可切换:`su - wwwadmin`,本指南仍以 ubuntu 演示)
🔹 第二步:安装 Nginx(Web 服务器)
# 安装 Nginx
sudo apt install -y nginx
# 启动并设为开机自启
sudo systemctl enable nginx
sudo systemctl start nginx
# 验证:访问 http://你的ECS公网IP → 应看到 "Welcome to nginx!" 页面
⚠️ 阿里云注意:若无法访问,请检查:
- ECS 控制台 → 安全组是否放行
80端口(入方向)sudo ufw status是否允许Nginx Fullsudo systemctl is-active nginx是否为active
🔹 第三步:安装 MySQL 8.0(数据库)
# Ubuntu 22.04 默认源即为 MySQL 8.0,直接安装
sudo apt install -y mysql-server
# 运行安全加固脚本(设置 root 密码强度、删除匿名用户等)
sudo mysql_secure_installation
# ➤ 按提示操作:
# - Validate Password Plugin? → 选 2(Medium)或 1(Low),或 N 跳过
# - New password for root: ✅ 设置强密码(如 MyP@ssw0rd2024!)
# - Remove anonymous users? → Y
# - Disallow root login remotely? → Y(重要!禁止远程 root)
# - Remove test database? → Y
# - Reload privilege tables? → Y
# 验证 MySQL 运行状态
sudo systemctl status mysql
✅ 创建 WordPress 专用数据库与用户(关键!)
sudo mysql -u root -p
在 MySQL 提示符下执行(请替换 wp_user 和 strong_password 为你自己的值):
-- 创建数据库(UTF8MB4 支持 emoji)
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 创建专用用户(仅允许本地连接,更安全)
CREATE USER 'wp_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongP@ssw0rd2024!';
-- 授予数据库全部权限
GRANT ALL ON wordpress.* TO 'wp_user'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
-- 退出
EXIT;
💡 记录好:数据库名
wordpress、用户名wp_user、密码YourStrongP@ssw0rd2024!—— 后续 WordPress 安装需要。
🔹 第四步:安装 PHP 8.1 及必要扩展
# Ubuntu 22.04 默认 PHP 版本为 8.1,安装核心及 WordPress 所需扩展
sudo apt install -y php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip php-cli
# ✅ 验证 PHP 版本
php -v # 应显示 PHP 8.1.x
# ✅ 检查 FPM 状态
sudo systemctl status php8.1-fpm
sudo systemctl enable php8.1-fpm
🔧 配置 PHP-FPM(提高安全性与性能)
# 编辑 www.conf(PHP-FPM 池配置)
sudo vim /etc/php/8.1/fpm/pool.d/www.conf
修改以下关键项(取消注释并调整):
; 将监听方式改为 Unix socket(比 TCP 更快更安全)
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
; 限制资源(防 DoS)
pm = ondemand
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.process_idle_timeout = 10s
pm.max_requests = 500
; 安全增强(禁用危险函数)
php_admin_value[disable_functions] = exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source
; 上传限制(按需调整)
php_admin_value[upload_max_filesize] = 64M
php_admin_value[post_max_size] = 128M
保存后重启服务:
sudo systemctl restart php8.1-fpm
🔹 第五步:配置 Nginx 站点(支持 WordPress)
1️⃣ 创建网站目录并设置权限
sudo mkdir -p /var/www/wordpress
sudo chown -R $USER:$USER /var/www/wordpress
sudo chmod -R 755 /var/www/wordpress
2️⃣ 下载并解压 WordPress(最新稳定版)
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
cp -a /tmp/wordpress/. /var/www/wordpress/
3️⃣ 设置 WordPress 文件权限(安全关键!)
# 设置正确所有者(nginx 运行用户为 www-data)
sudo chown -R www-data:www-data /var/www/wordpress
sudo find /var/www/wordpress/ -type d -exec chmod 755 {} ;
sudo find /var/www/wordpress/ -type f -exec chmod 644 {} ;
sudo chmod 600 /var/www/wordpress/wp-config.php # 后续创建后设置
4️⃣ 创建 Nginx 虚拟主机配置
sudo vim /etc/nginx/sites-available/wordpress
粘贴以下配置(务必替换 server_name 为你的真实域名(如 example.com)或暂用 IP):
server {
listen 80;
listen [::]:80;
# 👇 替换为你的真实域名(无 www 或带 www 均可,建议统一)
server_name your-domain.com www.your-domain.com; # ← 修改此处!
root /var/www/wordpress;
index index.php index.html index.htm;
# 防止访问敏感文件
location ~ /.ht {
deny all;
}
# 处理 WordPress 固定链接(伪静态)
location / {
try_files $uri $uri/ /index.php?$args;
}
# PHP 处理(关键!)
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 静态资源缓存
location ~ .(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}
启用站点:
sudo ln -sf /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo rm -f /etc/nginx/sites-enabled/default
# 测试 Nginx 配置语法
sudo nginx -t
# 重载配置
sudo systemctl reload nginx
✅ 此时访问
http://你的ECS公网IP或http://your-domain.com,应进入 WordPress 安装向导页面。
🔹 第六步:完成 WordPress 安装
- 在浏览器中打开
http://你的ECS公网IP(或域名) - 选择语言 → 点击【继续】
- 填写数据库信息(使用第三步中创建的):
- 数据库名:
wordpress - 用户名:
wp_user - 密码:
YourStrongP@ssw0rd2024! - 数据库主机:
localhost(✅ 不要填 127.0.0.1,MySQL 8.0 默认禁用) - 表前缀:保持默认
wp_(或自定义如wp2024_)
- 数据库名:
- 点击【提交】→ 【运行安装】
- 填写站点标题、管理员用户名(勿用 admin!)、强密码、邮箱 → 【安装 WordPress】
- 安装成功后,用管理员账号登录后台:
/wp-admin
🔹 第七步(强烈推荐):配置 HTTPS(Let’s Encrypt)
✅ 使用 Certbot 自动获取免费 SSL 证书(需已绑定域名)
# 1. 安装 Certbot
sudo apt install -y certbot python3-certbot-nginx
# 2. 获取并自动配置证书(确保域名 A 记录已解析到 ECS 公网 IP)
sudo certbot --nginx -d your-domain.com -d www.your-domain.com
# 3. 按提示输入邮箱、同意协议、是否重定向 HTTP→HTTPS(选 2:Redirect)
✅ 完成后自动更新 Nginx 配置,强制 HTTPS,且证书 90 天自动续期。
🔁 续期测试(手动):
sudo certbot renew --dry-run
🔹 第八步:安全加固与优化(生产必备)
| 项目 | 操作 |
|---|---|
| 禁用 XML-RPC(防暴力攻击) | 在 WordPress 后台 → 插件 → 安装插件 Disable XML-RPC 或在 wp-config.php 加:define('DISABLE_XML_RPC', true); |
| 限制登录尝试 | 安装插件 Login LockDown 或 Wordfence Security(后台安装) |
| 定期备份 | 使用插件 UpdraftPlus(备份到阿里云 OSS 或腾讯云 COS 更佳) |
| 更新策略 | ❗永远不要关闭 WordPress 核心/主题/插件自动更新(在 wp-config.php 中添加):define('WP_AUTO_UPDATE_CORE', 'minor'); |
| 禁用文件编辑 | 在 wp-config.php 添加:define('DISALLOW_FILE_EDIT', true); |
🧪 验证部署是否成功
| 检查项 | 命令/方法 |
|---|---|
| Nginx 运行 | sudo systemctl is-active nginx → active |
| MySQL 运行 | sudo systemctl is-active mysql → active |
| PHP-FPM 运行 | sudo systemctl is-active php8.1-fpm → active |
| Nginx 配置语法 | sudo nginx -t → syntax is ok |
| WordPress 访问 | 浏览器打开 https://your-domain.com → 显示首页 |
| 后台登录 | https://your-domain.com/wp-admin → 可登录 |
📌 常见问题速查
| 问题 | 解决方案 |
|---|---|
| “Error establishing a database connection” | 检查 wp-config.php 数据库名/用户/密码;确认 MySQL 服务运行;确认 wp_user 是 @'localhost'(不是 @'%') |
WordPress 无法写入 .htaccess 或上传文件 |
sudo chown -R www-data:www-data /var/www/wordpress + 检查 upload_max_filesize 配置 |
| 固定链接 404 | 确认 Nginx 配置中 location / { try_files ... } 存在;重启 Nginx |
| PHP 无法连接 MySQL | sudo mysql -u wp_user -p -e "SELECT 1" 测试;检查 /etc/mysql/mysql.conf.d/mysqld.cnf 中 bind-address = 127.0.0.1(默认即可) |
| 阿里云备案问题 | 若面向中国大陆用户提供服务,必须完成 ICP 备案(否则 80/443 端口被拦截) |
✅ 恭喜!你已完成一套安全、高性能、可维护的 LNMP + WordPress 生产环境部署。
🌟 进阶建议:
- 使用阿里云 RDS MySQL 替代自建 MySQL(更高可用、自动备份、读写分离)
- 使用 OSS + CDN 托管静态资源(提速 + 节省 ECS 带宽)
- 部署 Fail2ban 防爆破:
sudo apt install fail2ban- 监控:安装
netdata或对接阿里云 ARMS
如需我为你生成:
- ✅ 一键部署脚本(
.sh) - ✅
wp-config.php安全模板(含密钥自动填充) - ✅ 阿里云 RDS 连接配置指南
- ✅ Docker 版 LNMP(更轻量隔离)
欢迎随时告诉我,我可以立即为你定制 👇
是否需要我帮你生成一个 全自动部署 Shell 脚本?🚀
云小栈