在 CentOS 8.2 上搭建 WordPress,首先需要明确一个核心前提:CentOS 8 系列已于 2021 年底停止维护(EOL)。这意味着官方不再提供安全更新和软件包修复。
强烈建议:对于生产环境,请迁移至 Rocky Linux 9、AlmaLinux 9 或 Ubuntu 22.04/24.04 LTS。如果你必须使用 CentOS 8.2(例如用于学习、测试或遗留系统兼容),请务必注意安全风险,并尽量将其隔离在内网或作为非关键业务使用。
以下是在 CentOS 8.2 上搭建 WordPress 的完整流程,基于主流且稳定的 LAMP (Linux + Apache + MySQL/MariaDB + PHP) 架构。
一、 前置准备
- 服务器实例:确保你有 root 权限或 sudo 权限。
- 域名解析:将你的域名 A 记录指向服务器公网 IP。
- 防火墙配置:开放 HTTP (80) 和 HTTPS (443) 端口。
# 安装 firewalld(如果未安装)
sudo yum install -y firewalld
# 启动并设置开机自启
sudo systemctl start firewalld
sudo systemctl enable firewalld
# 开放 HTTP 和 HTTPS 服务
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# 重载防火墙规则
sudo firewall-cmd --reload
注意:如果使用阿里云 ECS、腾讯云 CVM 等云厂商,还需在控制台的安全组中放行 80 和 443 端口。
二、 安装 Web 服务器(Apache)
WordPress 对 Apache 兼容性极好。
sudo yum install -y httpd
# 启动 Apache 并设置开机自启
sudo systemctl start httpd
sudo systemctl enable httpd
# 验证 Apache 是否运行
systemctl status httpd
访问 http://<你的服务器IP>,若看到 Apache 测试页,则安装成功。
三、 安装数据库(MariaDB)
虽然 MySQL 是常见选择,但在 CentOS/RHEL 体系中,MariaDB 是默认的社区分支,兼容性更好。
sudo yum install -y mariadb-server mariadb
# 启动 MariaDB 并设置开机自启
sudo systemctl start mariadb
sudo systemctl enable mariadb
# 运行安全脚本(重要!)
sudo mysql_secure_installation
执行 mysql_secure_installation 时:
- 设置 root 密码。
- 删除匿名用户。
- 禁止 root 远程登录。
- 删除 test 数据库。
- 重新加载权限表。
四、 安装 PHP 及相关模块
WordPress 需要 PHP 及其扩展来运行。CentOS 8 默认仓库中的 PHP 版本可能较旧(如 PHP 7.2),建议启用 Remi 源以获取更高版本的 PHP(推荐 PHP 7.4 或 8.0+)。
方法:使用 Remi 源安装 PHP 8.0(推荐)
# 安装 EPEL 和 Remi 源
sudo yum install -y epel-release
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
# 重置 PHP 模块流为 remi-php80
sudo dnf module reset php
sudo dnf module enable php:remi-8.0
# 安装 PHP 及必要扩展
sudo yum install -y php php-mysqlnd php-fpm php-json php-gd php-mbstring php-intl php-zip php-opcache php-xml
# 重启 Apache 以加载 PHP 模块
sudo systemctl restart httpd
验证 PHP:创建
/var/www/html/info.php,内容为<?php phpinfo(); ?>,访问http://<IP>/info.php查看 PHP 版本和信息。测试后务必删除该文件以防信息泄露。
五、 配置数据库与用户
- 登录 MySQL:
sudo mysql -u root -p
- 创建数据库和用户(示例):
-- 创建数据库
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 创建用户并授权(替换 'your_password' 为强密码)
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'your_strong_password';
-- 授予权限
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
-- 退出
EXIT;
六、 下载并配置 WordPress
- 下载最新 WordPress:
cd /tmp
wget https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz
- 移动文件到 Web 根目录:
sudo mv wordpress /var/www/html/wordpress
- 设置目录权限(让 Apache 用户可写):
sudo chown -R apache:apache /var/www/html/wordpress
sudo chmod -R 755 /var/www/html/wordpress
- 复制配置文件:
cd /var/www/html/wordpress
cp wp-config-sample.php wp-config.php
- 编辑
wp-config.php,填入数据库信息:
sudo vi wp-config.php
修改以下内容:
define('DB_NAME', 'wordpress');
define('DB_USER', 'wp_user');
define('DB_PASSWORD', 'your_strong_password');
define('DB_HOST', 'localhost');
// 可选:添加安全密钥(从 https://api.wordpress.org/secret-key/1.1/salt/ 获取)
七、 浏览器安装向导
- 打开浏览器,访问
http://<你的服务器IP>/wordpress或绑定域名后的地址。 - 选择语言,设置站点标题、管理员用户名和密码。
- 完成安装。
八、 后续优化与安全加固(关键步骤)
1. 安装 SSL 证书(HTTPS)
使用 Let’s Encrypt 免费证书,通过 Certbot 自动配置。
# 安装 Certbot
sudo yum install -y certbot python3-certbot-apache
# 申请证书(替换 your_domain.com 为你的域名)
sudo certbot --apache -d your_domain.com
# 按提示输入邮箱、同意条款、选择是否重定向 HTTP 到 HTTPS
Certbot 会自动修改 Apache 配置并续期证书。
2. 调整 Apache 配置(可选)
为了提升性能和安全,可编辑 /etc/httpd/conf/httpd.conf 或创建虚拟主机配置文件。
3. 安装 WordPress 插件
登录后,建议安装:
- Wordfence Security 或 All In One WP Security:防火墙与安全防护。
- WP Super Cache 或 W3 Total Cache:缓存提速。
- UpdraftPlus:定期备份。
4. 禁用文件编辑
在 wp-config.php 中添加:
define('DISALLOW_FILE_EDIT', true);
防止后台直接编辑主题/插件代码被恶意利用。
九、 常见问题排查
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 500 Internal Server Error | PHP 错误、权限问题 | 检查 /var/log/httpd/error_log;确认 wp-config.php 权限为 644;确保 PHP 扩展已安装 |
| 无法上传图片 | SELinux 阻止 | 临时关闭 SELinux 测试:setenforce 0;若解决,需配置 SELinux 策略:semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/wordpress/wp-content(/.*)?' 然后 restorecon -Rv /var/www/html/wordpress/wp-content |
| 数据库连接错误 | 密码错误或数据库未启动 | 检查 wp-config.php 中的 DB 信息;确认 MariaDB 正在运行 |
| 页面样式错乱 | 路径配置错误 | 检查 WordPress 地址和站点地址是否正确;清除浏览器缓存 |
十、 重要提醒:关于 CentOS 8 的生命周期
由于 CentOS 8 已停止支持,你面临以下风险:
- 无安全补丁:新发现的漏洞不会被修复。
- 软件包不可用:
yum仓库可能失效,需手动配置 vault.centos.org 镜像源。
替代方案建议:
如果你希望获得更稳定、安全的体验,请将操作系统迁移至:
- Rocky Linux 9 或 AlmaLinux 9(CentOS 的直接替代品,二进制兼容 RHEL 9)
- Ubuntu 22.04 LTS 或 24.04 LTS(社区活跃,文档丰富)
迁移步骤大致相同,只需更换基础 OS 即可。
如需进一步帮助(如 Nginx + PHP-FPM 架构、Docker 部署、云厂商特定配置),请继续提问。
CLOUD云枢