加油
努力

阿里云ECS Ubuntu系统安装LNMP后怎么配置WordPress网站?

在阿里云 ECS(Ubuntu 系统)上安装 LNMP(Linux + Nginx + MySQL + PHP)后配置 WordPress 网站,需按以下清晰、安全、生产就绪的步骤操作。本文假设你已成功部署 LNMP(推荐使用 lnmp.org 一键脚本 或手动安装),并以 Ubuntu 22.04/24.04 + LNMP 2.1+(含 Nginx/MySQL 8.0+/PHP 8.1+) 为基准。

✅ 提示:若尚未安装 LNMP,建议优先使用官方推荐方式(避免兼容问题):

# 官方一键安装(推荐,自动优化)
wget https://lnmp.org/soft/lnmp-full.tar.gz
tar -xzf lnmp-full.tar.gz && cd lnmp && ./install.sh lnmp

✅ 一、准备工作(检查与确认)

# 1. 检查服务状态(确保运行中)
sudo lnmp status
# 应显示:nginx (running), mysql (running), php-fpm (running)

# 2. 查看默认网站根目录(LNMP 默认路径)
ls /home/wwwroot/default/  # 默认站点目录(可自定义)

# 3. 确认 PHP 支持关键扩展(WordPress 必需)
php -m | grep -E "mysqlnd|curl|gd|mbstring|xml|zip|opcache"
# 若缺失,用 lnmp 脚本安装:lnmp php-extension install fileinfo

✅ 二、创建独立网站(推荐,非共用 default)

1️⃣ 添加虚拟主机(含 SSL 建议)

lnmp vhost add

按提示输入:

  • 域名(如 www.example.com请先解析到 ECS 公网 IP
  • 是否添加 www 子域名 → y
  • 是否启用日志 → y
  • 是否启用 SSL → y(强烈推荐!选择 Let’s Encrypt 自动签发)
  • 是否强制 HTTPS → y
  • 其他保持默认(回车)

✅ 自动生成配置:/usr/local/nginx/conf/vhost/www.example.com.conf
✅ 网站根目录:/home/wwwroot/www.example.com/

🔐 注意:SSL 需确保域名已正确解析(A 记录指向 ECS 公网 IP),且安全组开放 443 端口(HTTPS)和 80 端口(Let’s Encrypt 验证)。

2️⃣ 创建数据库(MySQL 8.0+ 注意密码策略)

# 登录 MySQL(密码为安装时设置的 root 密码)
mysql -u root -p

# 执行(替换 `wp_example` 和 `your_secure_password`):
CREATE DATABASE wp_example CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'your_secure_password';
GRANT ALL PRIVILEGES ON wp_example.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

⚠️ MySQL 8.0+ 默认认证插件为 caching_sha2_password,WordPress 旧版可能不兼容。若连接失败,在创建用户时指定插件:

CREATE USER 'wp_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_secure_password';

✅ 三、部署 WordPress

方法 1:命令行下载(推荐,安全可控)

cd /home/wwwroot/www.example.com/
sudo rm -rf ./*
sudo wget https://cn.wordpress.org/latest-zh_CN.tar.gz
sudo tar -xzf latest-zh_CN.tar.gz --strip-components=1
sudo chown -R www:www ./
sudo chmod -R 755 ./

方法 2:SFTP 上传(适合本地已解压)

  • 将 WordPress 解压后的全部文件上传至 /home/wwwroot/www.example.com/
  • 设置权限:
    sudo chown -R www:www /home/wwwroot/www.example.com/
    sudo find /home/wwwroot/www.example.com/ -type d -exec chmod 755 {} ;
    sudo find /home/wwwroot/www.example.com/ -type f -exec chmod 644 {} ;
    sudo chmod 600 /home/wwwroot/www.example.com/wp-config.php  # 后续生成后设置

✅ 四、配置 WordPress(关键!)

1️⃣ 复制并编辑配置文件

cd /home/wwwroot/www.example.com/
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php

修改以下部分(替换为你创建的数据库信息):

// 数据库设置
define('DB_NAME', 'wp_example');
define('DB_USER', 'wp_user');
define('DB_PASSWORD', 'your_secure_password');
define('DB_HOST', 'localhost');

// 【重要】添加安全密钥(从 https://api.wordpress.org/secret-key/1.1/salt/ 获取)
// 替换掉文件中 /* That's all, stop editing! ... */ 上方的所有 define('AUTH_KEY', ...);

// 【强烈推荐】启用固定链接(Nginx 需额外配置,见下一步)
define('REWRITE_RULES', true);

// 【可选】禁用主题/插件编辑(提升安全)
define('DISALLOW_FILE_EDIT', true);

✅ 安全密钥生成器:https://api.wordpress.org/secret-key/1.1/salt/(复制整段替换)

2️⃣ 配置 Nginx 支持 WordPress 伪静态(固定链接)

LNMP 默认已包含 rewrite/wordpress.conf,只需在你的虚拟主机配置中启用:

编辑 /usr/local/nginx/conf/vhost/www.example.com.conf

# 在 server {} 块内 location / { } 中,添加或确认存在:
include rewrite/wordpress.conf;

✅ 然后重载 Nginx:

sudo lnmp nginx reload

💡 验证伪静态:后台 → 设置 → 固定链接 → 选“文章名” → 保存,访问文章页应正常(无 404)。


✅ 五、完成安装 & 安全加固

1️⃣ 访问安装向导

在浏览器打开:https://www.example.com
按提示填写:

  • 站点标题、管理员用户名(勿用 admin)、强密码、邮箱
  • 点击“安装 WordPress”

✅ 安装成功后,用刚设的账号登录后台:https://www.example.com/wp-admin

2️⃣ 关键安全加固(必须!)

措施 命令/操作
禁用 XML-RPC(防暴力攻击) 插件:Disable XML-RPC 或在 wp-config.php 加:
define('DISABLE_XML_RPC', true);
限制登录尝试 安装插件:Login LockDownWordfence Security
更新核心/主题/插件 后台 → 更新 → 全部更新(首次务必更新)
隐藏 WordPress 版本 主题 functions.php 加:
remove_action('wp_head', 'wp_generator');
设置备份 使用插件 UpdraftPlus 或配置阿里云快照

3️⃣ 阿里云 ECS 额外检查

  • 安全组规则:仅开放 80(HTTP)、443(HTTPS)、22(SSH),禁止开放 3306(MySQL)公网端口!(数据库仅限 localhost 访问)
  • 防火墙(UFW)(可选):
    sudo ufw allow OpenSSH
    sudo ufw allow 'Nginx Full'
    sudo ufw enable

✅ 六、常见问题排查

现象 可能原因 解决方案
502 Bad Gateway PHP-FPM 未运行或 socket 错误 sudo lnmp php-fpm restart;检查 /usr/local/php/etc/php-fpm.conflisten = /tmp/php-cgi.sock 与 Nginx 配置是否一致
数据库连接错误 用户权限/密码错误,或 MySQL 8.0 认证插件不兼容 按上方 SQL 指定 mysql_native_password 创建用户
上传文件失败(413 Request Entity Too Large) Nginx 限制上传大小 编辑 /usr/local/nginx/conf/nginx.conf,在 http{} 内加:
client_max_body_size 64M;lnmp nginx reload
中文乱码/emoji 显示异常 数据库字符集非 utf8mb4 创建 DB 时务必用 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci

✅ 附:一键脚本(可选,快速验证)

将以下内容保存为 setup-wp.sh,赋予执行权限后运行(需提前 lnmp vhost add 并记下域名):

#!/bin/bash
DOMAIN="www.example.com"  # 修改为你自己的域名
DB_NAME="wp_${DOMAIN//./_}"
DB_USER="wpuser_$(date +%s)"
DB_PASS=$(openssl rand -base64 12)

# 创建数据库
mysql -u root -p"$MYSQL_ROOT_PASS" -e "
CREATE DATABASE $DB_NAME CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER '$DB_USER'@'localhost' IDENTIFIED WITH mysql_native_password BY '$DB_PASS';
GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost';
FLUSH PRIVILEGES;
"

# 部署 WP
cd /home/wwwroot/$DOMAIN/
wget -qO- https://cn.wordpress.org/latest-zh_CN.tar.gz | tar -xzf - --strip-components=1
chown -R www:www ./
cp wp-config-sample.php wp-config.php
sed -i "s/database_name_here/$DB_NAME/; s/username_here/$DB_USER/; s/password_here/$DB_PASS/" wp-config.php
echo "✅ WordPress 已部署!数据库:$DB_NAME,用户:$DB_USER"

完成!
你现在拥有一个安全、高性能、支持 HTTPS 的 WordPress 网站。后续建议:

  • 定期更新 WordPress 核心、主题、插件
  • 开启对象缓存(Redis/Memcached)提升性能
  • 配置 CDN(如阿里云 CDN)提速静态资源
  • 使用 wp-cli 管理(lnmp php-install 时可选安装)

如需我帮你:

  • 生成完整的 nginx.conf 示例
  • 配置 Redis 缓存
  • 迁移现有 WordPress 到该环境
  • 诊断具体报错日志(提供 nginx error.logphp-fpm.log 片段)

欢迎随时补充细节,我会为你定制解决 👇

云服务器