在 CentOS(推荐 8/9)或 Ubuntu(推荐 22.04 LTS / 24.04 LTS)上安装 WordPress,本质是部署一个 LAMP(Linux + Apache + MySQL/MariaDB + PHP)或 LEMP(Linux + Nginx + MySQL/MariaDB + PHP)环境,并配置 WordPress。以下是生产环境推荐的标准化步骤与关键注意事项,兼顾安全性、可维护性和兼容性。
✅ 一、通用前提准备(所有系统)
| 项目 | 要求 |
|---|---|
| 服务器 | 最小 1GB RAM(建议 2GB+),2 CPU 核心,20GB 磁盘空间 |
| 权限 | 具备 sudo 权限的非 root 用户(禁止直接用 root 运行) |
| 域名与 SSL | 建议绑定域名(如 example.com),后续强制启用 HTTPS(Let’s Encrypt) |
| 防火墙 | 开放端口:80(HTTP)、443(HTTPS)、22(SSH);禁用 3306 网络访问 |
⚠️ 注意:切勿在公网暴露 MySQL 默认端口(3306)或使用弱密码!
✅ 二、按发行版选择环境栈(推荐方案)
| 系统 | 推荐 Web 服务器 | 数据库 | PHP 版本 | 理由 |
|---|---|---|---|---|
| Ubuntu 22.04/24.04 | Nginx(轻量高并发) | MariaDB 10.6+ 或 MySQL 8.0+ | PHP 8.1+(官方支持 WP 6.0+) | Ubuntu 官方仓库更新及时,Nginx 配置更简洁 |
| CentOS Stream 8/9 | Nginx(或 Apache) | MariaDB(RHEL 系生态默认) | PHP 8.1+(需 EPEL + Remi 仓库) | CentOS Stream 是滚动发布,避免使用已 EOL 的 CentOS 7 |
🔍 提示:WordPress 官方要求:PHP ≥ 8.0,MySQL ≥ 5.6 或 MariaDB ≥ 10.1,HTTPS 强烈推荐(WP 6.0+ 对未加密连接有警告)。
✅ 三、分步安装(以 Ubuntu 22.04 + Nginx + MariaDB + PHP 8.1 为例)
1️⃣ 更新系统 & 安装基础工具
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget unzip gnupg2 software-properties-common
2️⃣ 安装 Nginx
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
# 检查:curl -I http://localhost → 应返回 200 OK
3️⃣ 安装 MariaDB(安全初始化)
sudo apt install -y mariadb-server
sudo mysql_secure_installation # 交互式:设 root 密码、禁用匿名用户、禁用远程 root、删除 test DB、重载权限
4️⃣ 安装 PHP 及必要扩展(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
# ✅ 关键检查:确保启用 mbstring 和 xml 扩展(否则 WP 后台报错)
php -m | grep -E "(mbstring|xml|curl|mysql)"
5️⃣ 创建 WordPress 数据库与专用用户(⚠️ 严禁用 root 连接 WP)
sudo mysql -u root -p
-- 在 MariaDB 提示符下执行:
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'StrongPassw0rd!2024';
GRANT ALL ON wordpress.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
6️⃣ 下载并解压 WordPress(到 Web 根目录)
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
sudo rsync -avP wordpress/ /var/www/html/ # 覆盖默认 index.html
# 设置权限(安全关键!)
sudo chown -R $USER:www-data /var/www/html/
sudo find /var/www/html/ -type d -exec chmod 750 {} ;
sudo find /var/www/html/ -type f -exec chmod 640 {} ;
sudo chmod 600 /var/www/html/wp-config.php # 后续创建后立即设置
7️⃣ 配置 Nginx 站点(/etc/nginx/sites-available/wordpress)
server {
listen 80;
server_name example.com www.example.com; # ❗ 替换为你的域名
root /var/www/html;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 确认 PHP-FPM socket 路径
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /.ht {
deny all;
}
}
启用站点:
sudo ln -sf /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
8️⃣ 配置 WordPress(生成 wp-config.php)
cd /var/www/html
sudo cp wp-config-sample.php wp-config.php
# 使用 wp-cli 自动生成安全密钥(推荐)或手动编辑
sudo apt install -y wp-cli
sudo -u www-data wp config create
--dbname=wordpress
--dbuser=wpuser
--dbpass='StrongPassw0rd!2024'
--dbhost=localhost
--dbprefix=wp_
--locale=zh_CN # 中文用户可选
# ✅ 强制设置文件权限(防止被篡改)
sudo chmod 600 wp-config.php
9️⃣ 启用 HTTPS(使用 Certbot + Let’s Encrypt)
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com
# ✅ 自动配置 HTTPS 并重定向 HTTP → HTTPS
# ✅ 自动续期(systemd timer 已启用)
🔟 完成安装
访问 https://example.com,按向导完成 WordPress 安装(设置站点标题、管理员账号等)。
⚠️ 四、关键注意事项(生产环境必读)
| 类别 | 注意事项 | 解决方案 |
|---|---|---|
| 安全性 | ❌ 使用默认 admin 用户名❌ 插件/主题从非官方源安装 ❌ wp-config.php 权限过宽 |
✅ 安装时设非 admin 用户名 ✅ 仅从 WordPress.org 安装 ✅ chmod 600 wp-config.php,且移出 Web 可访问路径(如 /var/www/wp-config.php + define('ABSPATH', '/var/www/html/');) |
| 性能 | ❌ 未启用 OPcache ❌ 无对象缓存(Redis/Memcached) |
✅ 编辑 /etc/php/8.1/fpm/php.ini:opcache.enable=1, opcache.memory_consumption=256✅ 安装 Redis + WP 插件(如 Redis Object Cache) |
| 备份 | ❌ 无自动数据库+文件备份 | ✅ 使用 automysqlbackup + rsync 脚本,每日异地备份✅ 或专业工具:UpdraftPlus(免费版足够) |
| 更新 | ❌ 手动更新核心/插件易出错 | ✅ 启用自动更新(后台 → 设置 → 更新 → 勾选“次要版本”) ✅ 测试环境先行验证 |
| 日志与监控 | ❌ 无错误日志、无访问分析 | ✅ Nginx 日志:/var/log/nginx/wordpress_error.log✅ 启用 WP_DEBUG(仅开发环境): define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); |
| CDN 与静态资源 | ❌ 图片/CSS/JS 未压缩提速 | ✅ Cloudflare 免费版 + Auto Minify ✅ WP 插件:WP Super Cache 或 LiteSpeed Cache(Nginx 兼容好) |
✅ 五、CentOS Stream 8/9 补充说明(与 Ubuntu 差异点)
- PHP 安装(需启用 Remi 仓库):
sudo dnf install -y epel-release sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm sudo dnf module reset php sudo dnf module enable php:remi-8.1 sudo dnf install -y php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip - MariaDB:默认版本较新(10.5+),无需额外仓库。
- SELinux:若启用(默认 enforcing),需放行:
sudo setsebool -P httpd_can_network_connect_db 1 sudo setsebool -P httpd_can_network_connect 1
📌 六、验证清单(部署后必做)
- [ ]
https://example.com可正常打开,无 500/502 错误 - [ ] WordPress 后台 → “仪表盘 → 更新” 显示最新版
- [ ]
wp-config.php文件权限为600,且无法通过浏览器直接访问 - [ ] 数据库用户
wpuser仅对wordpress库有权限(无mysql、information_schema访问权) - [ ]
curl -I https://example.com返回HTTP/2 200+Strict-Transport-Security头 - [ ]
wp plugin list --status=active --format=count≥ 0(确认 WP-CLI 可用)
💡 进阶建议(可选但强烈推荐)
- 使用 Docker Compose(快速复现环境,适合多站管理)
- 配置 Fail2ban 防暴力破解登录
- 启用 Two-Factor Authentication(插件:Wordfence 或 Google Authenticator)
- 将网站根目录从
/var/www/html改为/srv/www/example.com(符合 FHS 标准)
如需我提供:
- ✅ 一键部署脚本(Bash,含安全加固)
- ✅ Docker Compose 文件模板(Nginx + PHP-FPM + MariaDB + Redis)
- ✅ WordPress 安全加固 checklist PDF
- ✅ 中文环境优化指南(字体、评论、SEO 插件推荐)
欢迎随时告知,我可以立即为你生成 👇
是否需要某一部分的详细展开?例如:如何用 WP-CLI 完全自动安装? 或 Nginx 高性能调优参数?
云知识CLOUD