在阿里云ECS(Ubuntu系统)上搭建LNMP(Linux + Nginx + MySQL + PHP)并部署WordPress,是一个经典且实用的建站流程。以下是详细、安全、生产就绪的完整步骤(基于 Ubuntu 22.04 LTS,适用于阿里云 ECS 实例,已考虑防火墙、权限、SSL 和 WordPress 最佳实践):
✅ 前提条件
- 已创建阿里云 ECS 实例(推荐 ≥2核4G,系统镜像:Ubuntu 22.04 LTS)
- 安全组已放行端口:
80(HTTP)、443(HTTPS)、22(SSH) - 已绑定弹性公网 IP 或配置了域名解析(如
example.com指向该 IP) - 使用 root 或具有
sudo权限的用户登录(建议用sudo -i切换到 root 操作更便捷)
🔧 第一步:系统更新与基础工具安装
# 更新软件包索引并升级系统(重要!)
sudo apt update && sudo apt upgrade -y
# 安装常用工具(vim、curl、wget、unzip、git 等)
sudo apt install -y vim curl wget unzip git gnupg2 lsb-release ca-certificates
🌐 第二步:安装 Nginx(Web 服务器)
sudo apt install -y nginx
# 启动并设置开机自启
sudo systemctl enable nginx
sudo systemctl start nginx
# 验证:访问 http://<你的ECS公网IP>,应看到 "Welcome to nginx!" 页面
⚠️ 阿里云注意:确保安全组已放行 80 端口;若无法访问,请检查
ufw(默认 Ubuntu 22.04 未启用,可跳过)或 ECS 安全组规则。
💾 第三步:安装 MySQL(推荐 MySQL 8.0)
sudo apt install -y mysql-server
# 运行安全加固脚本(强烈建议!)
sudo mysql_secure_installation
# → 按提示操作:设 root 密码(选 Y)、删除匿名用户、禁止远程 root 登录、删除 test 库、重载权限表
✅ 创建 WordPress 专用数据库与用户(避免使用 root)
sudo mysql -u root -p
在 MySQL 提示符下执行(请替换 wp_user 和 your_strong_password):
-- 创建数据库(UTF8MB4 支持 emoji 和多语言)
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 创建专用用户(限制仅本地连接,更安全)
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'your_strong_password';
-- 授予数据库全部权限
GRANT ALL ON wordpress.* TO 'wp_user'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
-- 退出
EXIT;
🔒 安全提示:
wp_user只允许localhost连接,不开放远程访问,符合最小权限原则。
☕ 第四步:安装 PHP 8.1(Ubuntu 22.04 默认)及必要扩展
# 安装 PHP 及 WordPress 所需扩展(含 OPcache、cURL、GD、XML、MySQLi、ZIP 等)
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-opcache
# 验证 PHP 版本
php -v # 应显示 PHP 8.1.x
# 启动并启用 php-fpm(Nginx 通过 socket 与之通信)
sudo systemctl enable php8.1-fpm
sudo systemctl start php8.1-fpm
✅ 配置 PHP(优化 WordPress 性能与安全)
编辑主配置文件:
sudo vim /etc/php/8.1/fpm/php.ini
修改以下关键项(搜索并取消注释/修改):
; 调整内存和上传限制(适合 WordPress 主题/插件)
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 100M
max_execution_time = 300
max_input_vars = 3000
; 启用 OPcache(大幅提升性能)
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
; 禁用危险函数(增强安全)
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,show_source,dl,syslog,readlink,symlink,popepassthru,pcntl_exec
保存后重启服务:
sudo systemctl restart php8.1-fpm
📁 第五步:部署 WordPress
1️⃣ 创建网站目录 & 下载 WordPress
# 创建网站根目录(推荐标准路径)
sudo mkdir -p /var/www/wordpress
# 下载最新中文版 WordPress(自动解压)
cd /tmp
curl -O https://cn.wordpress.org/latest-zh_CN.tar.gz
tar -xzf latest-zh_CN.tar.gz -C /var/www/wordpress --strip-components=1
# 设置正确权限(Nginx 用户 www-data 拥有)
sudo chown -R www-data:www-data /var/www/wordpress
sudo chmod -R 755 /var/www/wordpress
2️⃣ 配置 Nginx 虚拟主机(支持 HTTPS、伪静态、缓存)
创建配置文件:
sudo vim /etc/nginx/sites-available/wordpress
粘贴以下内容(✅ 已优化:支持 HTTPS、WP 伪静态、PHP-FPM、gzip、安全头):
server {
listen 80;
server_name example.com www.example.com; # 👉 替换为你的域名!
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com www.example.com; # 👉 替换为你的域名!
# SSL 证书(先占位,后续用 Certbot 配置)
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# 网站根目录
root /var/www/wordpress;
index index.php index.html;
# 日志
access_log /var/log/nginx/wordpress_access.log;
error_log /var/log/nginx/wordpress_error.log;
# 安全头
add_header X-Frame-Options "DENY" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer-when-downgrade" always;
add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
# WordPress 伪静态规则(关键!)
location / {
try_files $uri $uri/ /index.php?$args;
}
# 防止敏感文件被直接访问
location ~ .(htaccess|htpasswd|ini|log|sh|bak|conf|sql|inc|swp|swo|env)$ {
deny all;
}
# 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|woff|woff2|ttf|eot)$ {
expires 1y;
add_header Cache-Control "public, immutable";
}
}
✅ 启用站点:
# 创建软链接启用
sudo ln -sf /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
# 测试 Nginx 配置语法
sudo nginx -t
# 重载 Nginx
sudo systemctl reload nginx
⚠️ 此时访问
http://example.com会跳转 HTTPS,但证书尚未配置 → 下一步解决。
🔐 第六步:申请免费 SSL 证书(Let’s Encrypt + Certbot)
# 添加 Certbot 官方仓库
sudo apt install -y certbot python3-certbot-nginx
# 获取证书(自动修改 Nginx 配置,无需手动)
sudo certbot --nginx -d example.com -d www.example.com
# ✅ 按提示输入邮箱、同意协议、选择是否重定向(选 2:Redirect)
✅ 成功后:
- 证书自动部署到
/etc/letsencrypt/live/example.com/ - Nginx 配置已自动更新(含 HSTS、OCSP Stapling 等)
- 自动添加续期定时任务(
systemctl list-timers | grep certbot可查)
🌟 建议测试:访问
https://example.com,浏览器地址栏应显示绿色锁图标。
🚀 第七步:完成 WordPress 安装
1️⃣ 访问安装向导
在浏览器打开:
👉 https://example.com
将自动跳转到 WordPress 安装向导(/wp-admin/install.php)
2️⃣ 填写数据库信息(与第三步创建的一致):
- 数据库名:
wordpress - 用户名:
wp_user - 密码:
your_strong_password - 数据库主机:
localhost(✅ 不要填 127.0.0.1,因 MySQL 8.0 默认禁用 localhost 的 socket 映射,localhost会走 Unix socket,更安全高效) - 表前缀:保持默认
wp_或自定义(如wp2024_)
✅ 若提示“建立数据库连接时出错”,请检查:
- MySQL 是否运行:
sudo systemctl status mysql- 用户密码是否正确、是否只允许
localhostwp_user是否对wordpress库有权限(重新 GRANT 并FLUSH PRIVILEGES;)
3️⃣ 设置站点信息(标题、管理员账号、邮箱等)→ 完成安装!
🛡️ 第八步(可选但强烈推荐):安全加固
| 项目 | 操作 |
|---|---|
| 禁用 XML-RPC | 在 wp-config.php 中添加:define('DISABLE_XMLRPC', true); |
| 隐藏 WordPress 版本 | 在主题 functions.php 加:remove_action('wp_head', 'wp_generator'); |
| 限制登录尝试 | 安装插件:Login Security Solution 或 Wordfence |
| 自动更新 | 在 wp-config.php 加:define('WP_AUTO_UPDATE_CORE', 'minor'); |
| 定期备份 | 使用插件(UpdraftPlus)或阿里云快照策略 |
🧹 附:常用维护命令
# 查看服务状态
sudo systemctl status nginx mysql php8.1-fpm
# 查看错误日志(快速定位问题)
sudo tail -f /var/log/nginx/wordpress_error.log
sudo tail -f /var/log/mysql/error.log
# WordPress 升级(命令行方式,需 wp-cli)
sudo apt install -y wp-cli
sudo -u www-data wp core update --path=/var/www/wordpress
✅ 最终验证清单
| ✅ 检查项 | 方法 |
|---|---|
| ✔️ 网站可访问(HTTPS) | https://example.com |
| ✔️ WordPress 后台可登录 | https://example.com/wp-admin |
| ✔️ 图片/JS/CSS 正常加载 | 浏览器开发者工具 Network 标签页 |
| ✔️ 文章发布/媒体上传正常 | 后台测试 |
| ✔️ SSL 证书有效 | https://www.sslshopper.com/ssl-checker.html |
| ✔️ 数据库连接稳定 | sudo mysql -u wp_user -p -D wordpress |
📌 温馨提示(阿里云专属):
- ECS 实例建议开启 云监控 + 自动快照策略(每日备份系统盘)
- 生产环境务必关闭
root密码登录,改用 SSH 密钥对(ECS 控制台可一键更换) - 如需更高性能,可搭配 阿里云 RDS MySQL(替代自建 MySQL),并配置内网连接(更安全稳定)
需要我为你:
- ✅ 生成完整的
wp-config.php安全模板? - ✅ 编写一键部署 Shell 脚本?
- ✅ 配置阿里云 RDS + 内网连接 WordPress?
- ✅ 添加 Redis 缓存提速(Object Cache)?
- ✅ 配置宝塔面板(非推荐,但可选)?
欢迎随时告诉我,我可以继续为你定制 👇
祝你建站顺利,流量长虹!🚀
云小栈