在阿里云 ECS 上跑 Ubuntu 装 WordPress,这属于云原生时代最经典的“Hello World”级操作。既然你装了 LNMP(Linux + Nginx + MySQL/MariaDB + PHP),说明底层环境已经就绪,剩下的就是“搭桥”和“调优”。
别整那些虚的,直接上干货。以下是基于生产环境标准的配置流程,分为 数据库准备、Nginx 配置、PHP 适配、WordPress 安装与权限 四个核心步骤。
第一步:创建数据库和用户(MySQL/MariaDB)
WordPress 需要独立的数据库用户,不要直接用 root,这是安全红线。
登录服务器后进入 MySQL 命令行:
mysql -u root -p
执行以下 SQL 语句(请替换 your_password 为强密码):
-- 1. 创建数据库
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 2. 创建专用用户并授权(推荐指定 localhost,更安全)
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'your_strong_password';
-- 3. 授予权限
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
-- 4. 刷新权限表
FLUSH PRIVILEGES;
-- 5. 退出
EXIT;
注意:这里用
utf8mb4而不是utf8,因为 WordPress 需要支持 Emoji 表情(4字节字符),老版本的utf8只支持3字节,会导致存不了 emoji。
第二步:配置 Nginx 虚拟主机
假设你的域名是 example.com,网站根目录放在 /var/www/html/wordpress。
- 创建站点目录并下载 WP:
sudo mkdir -p /var/www/html/wordpress
cd /tmp
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
sudo tar -zxvf latest-zh_CN.tar.gz -C /var/www/html/wordpress --strip-components=1
- 修改文件所有者:
# 将所有权交给 www-data(Ubuntu 默认 Nginx 运行用户)
sudo chown -R www-data:www-data /var/www/html/wordpress
- 编写 Nginx 配置文件:
新建文件 /etc/nginx/sites-available/wordpress:
server {
listen 80;
server_name example.com www.example.com; # 替换为你的域名
root /var/www/html/wordpress;
index index.php index.html index.htm;
# 禁止访问隐藏文件
location ~ /. {
deny all;
}
# 静态资源缓存优化
location ~* .(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires max;
add_header Cache-Control "public, immutable";
}
# WordPress 伪静态规则(核心)
location / {
try_files $uri $uri/ /index.php?$args;
}
# PHP 处理
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock; # 确保路径正确,Ubuntu 通常是这个
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
- 启用站点并重启 Nginx:
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置语法
sudo systemctl reload nginx
第三步:PHP 关键配置调整
Ubuntu 默认的 PHP 配置对于高并发或大文件上传可能不够用,建议微调 /etc/php/8.x/fpm/php.ini(根据你安装的 PHP 版本选择目录,如 7.4 或 8.1)。
重点修改以下参数:
memory_limit = 256M # 内存限制,WP 插件多了容易 OOM
upload_max_filesize = 64M # 允许上传附件大小
post_max_size = 64M # POST 数据最大限制
max_execution_time = 300 # 脚本最大执行时间,防止备份插件超时
date.timezone = Asia/Shanghai # 设置时区,否则前台时间会差8小时
修改完后重启 PHP-FPM:
sudo systemctl restart php8.x-fpm
第四步:通过 Web 界面完成安装 & 权限加固
- 浏览器访问:打开
http://example.com,你会看到熟悉的 WordPress 五步安装向导。 - 填写数据库信息:
- Database Name:
wordpress - Username:
wp_user - Password:
your_strong_password - Database Host:
localhost - Table Prefix:
wp_(保持默认即可)
- Database Name:
- 运行安装:点击提交,按照提示设置管理员账号和密码。
第五步:生产环境必做的“收尾工作”
很多新手装完就走了,结果被挂马或者加载极慢。这几步不做,等于白装。
1. 固定 Permalink(永久链接)
进入 WP 后台 -> 设置 -> 固定链接,选择“文章名”或其他结构,保存一次。这会触发 Nginx 重写规则生效。如果之前没配好 .htaccess(Nginx 下不需要),这一步至关重要。
2. 配置 WP-Config.php 安全项
编辑 /var/www/html/wordpress/wp-config.php,在 define('DB_COLLATE', ''); 之后添加以下定义:
// 强制使用 HTTPS(如果你后续开了 SSL)
define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);
// 禁用文件编辑器(防止后台被黑后直接改代码)
define('DISALLOW_FILE_EDIT', true);
// 自动保存间隔设为 120 秒,减少数据库压力
define('AUTOSAVE_INTERVAL', 120);
// 回收站保留天数
define('EMPTY_TRASH_DAYS', 30);
3. 阿里云安全组放行
检查阿里云控制台 -> ECS -> 实例 -> 安全组。确保 入方向 放行了 TCP 80 和 TCP 443(如果以后要开 SSL)。如果不开 80 端口,网络根本访问不到你的网站。
4. 安装 Redis 对象缓存(可选但强烈建议)
LNMP 环境下,加上 Redis 缓存可以极大提升 WP 性能。
- 安装 Redis 服务:
sudo apt install redis-server - 在 WP 中安装插件 “Redis Object Cache”。
- 启用插件,它会自动检测本地 Redis 服务。
常见坑点排查
- 502 Bad Gateway:通常是 PHP-FPM 挂了,或者 Nginx 配置的
fastcgi_pass路径不对。检查systemctl status php8.x-fpm。 - 图片上传失败:检查
/var/www/html/wordpress/wp-content/uploads目录权限是否为www-data。 - 中文乱码:确认数据库创建时用了
utf8mb4,且 Nginx 和 PHP 编码一致。 - 无法访问:先 ping 一下 IP,再 telnet IP 80。如果是阿里云,90% 原因是安全组没开 80 端口。
这套流程走下来,你的 WordPress 就是一个标准、安全、高性能的生产级站点了。接下来可以考虑申请阿里云免费的 SSL 证书(Let’s Encrypt 或 DigiCert),把 HTTP 升级为 HTTPS,这对 SEO 和用户信任度都是必须的。
CLOUD云枢