CentOS 8.2 安装 WordPress 后无法访问,通常不是单一原因造成的。作为在云服务器和 Linux 运维领域深耕多年的从业者,我建议你按照以下逻辑链路进行排查。这个问题大概率出在防火墙配置、SELinux策略、Web服务状态或数据库连接这四个环节。
请依次执行以下步骤:
1. 检查 Web 服务是否正常运行
首先确认 Nginx 或 Apache(httpd)进程是否在运行。
# 如果是 Nginx
systemctl status nginx
# 如果是 Apache
systemctl status httpd
如果服务未启动,尝试启动并设置开机自启:
systemctl start nginx # 或 httpd
systemctl enable nginx # 或 httpd
查看日志获取具体报错信息:
- Nginx:
tail -f /var/log/nginx/error.log - Apache:
tail -f /var/log/httpd/error_log
2. 检查防火墙规则(最常见原因)
CentOS 8 默认使用 firewalld。即使你在云厂商控制台开放了端口,服务器内部的防火墙也可能拦截请求。
验证方法:
临时关闭防火墙测试是否恢复访问:
systemctl stop firewalld
如果此时能访问,说明是防火墙策略问题。请重新开启防火墙并添加对应规则:
systemctl start firewalld
# 允许 HTTP (80) 和 HTTPS (443)
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
注意:如果你使用的是阿里云、腾讯云等国内主流云厂商,务必同时检查安全组(Security Group)是否放行了 80/443 端口的入方向流量。这是新手最容易忽略的双重防火墙问题。
3. 检查 SELinux 状态
CentOS 8 默认启用 SELinux,它会严格限制 Web 服务对文件系统的访问权限。如果 WordPress 目录权限不当或 SELinux 上下文错误,会导致 500 Internal Server Error 或禁止访问。
快速诊断:
查看系统日志中是否有 SELinux 拒绝记录:
grep -i "denied" /var/log/audit/audit.log | tail -n 20
解决方案:
-
方案 A(推荐生产环境):保持 SELinux 开启,修复上下文。
# 假设你的 WordPress 安装在 /var/www/html restorecon -Rv /var/www/html确保 PHP-FPM 有权限读取文件:
setsebool -P httpd_can_network_connect_db 1 setsebool -P httpd_read_user_content 1 -
方案 B(测试环境/快速解决):临时设为 Permissive 模式观察。
setenforce 0如果设为 0 后能访问,说明确实是 SELinux 问题。建议后续按方案 A 修复,而非长期关闭 SELinux。
4. 检查数据库连接与权限
WordPress 依赖 MySQL/MariaDB。如果数据库服务未启动或密码错误,会显示“建立数据库连接时出错”。
步骤:
- 确认数据库服务运行:
systemctl status mariadb # 或 mysqld - 登录数据库验证用户和密码是否与
wp-config.php一致:mysql -u root -p # 输入密码后,检查 wp_options 表是否存在 USE wordpress_database; SHOW TABLES; - 检查
wp-config.php中的数据库主机名是否正确。本地部署通常为localhost或127.0.0.1;若使用独立 RDS,则需填公网 IP 或内网 IP。
5. 检查文件权限
确保 Web 服务器用户(nginx 或 apache)有权读取 WordPress 文件。
# 以 Nginx 为例
chown -R nginx:nginx /var/www/html
chmod -R 755 /var/www/html
# 以 Apache 为例
chown -R apache:apache /var/www/html
chmod -R 755 /var/www/html
特别注意:上传目录
wp-content/uploads可能需要写入权限,可设置为 775 并赋予 Web 用户组权限。
6. 浏览器缓存与 DNS 解析
如果以上都正常,但页面仍无法加载:
- 清除浏览器缓存或使用无痕模式访问。
- 检查
/etc/hosts是否被错误修改。 - 确认域名是否正确解析到该服务器 IP(可通过
ping yourdomain.com验证)。
7. 常见陷阱:PHP 版本兼容性
CentOS 8 默认 PHP 版本为 7.2 或 7.3。较新的 WordPress 版本(5.9+)要求 PHP 7.4 或更高。如果 PHP 版本过低,可能导致白屏或致命错误。
检查 PHP 版本:
php -v
如需升级,建议使用 Remi 源安装高版本 PHP,并确保 php-fpm 模块与 Web 服务器正确对接。
总结排查清单
| 步骤 | 检查项 | 命令/操作 |
|---|---|---|
| 1 | Web 服务状态 | systemctl status nginx/httpd |
| 2 | 系统防火墙 | firewall-cmd --list-all |
| 3 | 云平台安全组 | 控制台网页操作 |
| 4 | SELinux 策略 | getenforce, setenforce 0 测试 |
| 5 | 数据库服务 | systemctl status mariadb |
| 6 | 文件权限 | chown/chmod 设置 |
| 7 | PHP 版本 | php -v ≥ 7.4 |
按照上述顺序逐一排除,90% 以上的 CentOS 8 + WordPress 访问问题均可解决。如仍有异常,请提供 error.log 中的具体报错内容以便进一步分析。
CLOUD云枢