CentOS 8.2安装WordPress后无法访问怎么办?

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。如果数据库服务未启动或密码错误,会显示“建立数据库连接时出错”。

步骤:

  1. 确认数据库服务运行:
    systemctl status mariadb  # 或 mysqld
  2. 登录数据库验证用户和密码是否与 wp-config.php 一致:
    mysql -u root -p
    # 输入密码后,检查 wp_options 表是否存在
    USE wordpress_database;
    SHOW TABLES;
  3. 检查 wp-config.php 中的数据库主机名是否正确。本地部署通常为 localhost127.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云枢 » CentOS 8.2安装WordPress后无法访问怎么办?