在 CentOS 系统上安装 WordPress 后出现“白屏”(White Screen of Death),通常是由 PHP 错误、权限问题、内存不足或配置错误导致的。以下是系统化的排查与解决步骤:
🔍 第一步:启用 PHP 错误日志(关键)
WordPress 默认不显示错误信息,需临时开启调试模式查看具体原因。
-
编辑
wp-config.php文件(位于 WordPress 根目录):sudo vi /var/www/html/wp-config.php # 路径根据你的安装位置调整 -
在
/* That's all, stop editing! Happy publishing. */之前添加以下代码:define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); // 生产环境建议设为 false,避免泄露敏感信息 @ini_set( 'display_errors', 0 ); -
保存后刷新页面。若仍为白屏,检查日志文件:
sudo tail -f /var/www/html/wp-content/debug.log # 或根据 php.ini 配置的 log 路径查看
常见错误类型及对策:
- PHP Fatal error → 插件/主题冲突或代码语法错误
- Allowed memory size exhausted → 增加 PHP 内存限制(见下文)
- Database connection failed → 数据库配置错误或服务未启动
⚙️ 第二步:检查并修复常见问题
✅ 1. 检查 PHP 内存限制
编辑 PHP 配置文件(如 /etc/php.ini 或 /etc/php-fpm.d/www.conf):
memory_limit = 256M
重启相关服务:
sudo systemctl restart httpd # Apache
# 或
sudo systemctl restart php-fpm # Nginx + PHP-FPM
✅ 2. 检查文件权限
确保 Web 用户(通常是 apache 或 nginx)有读写权限:
sudo chown -R apache:apache /var/www/html
sudo find /var/www/html -type d -exec chmod 755 {} ;
sudo find /var/www/html -type f -exec chmod 644 {} ;
# 特别注意 wp-content 子目录需可写:
sudo chmod -R 755 /var/www/html/wp-content
✅ 3. 禁用插件排查冲突
通过 FTP 或 SSH 重命名插件目录,强制停用所有插件:
sudo mv /var/www/html/wp-content/plugins /var/www/html/wp-content/plugins.old
刷新页面,若恢复正常,则逐个恢复插件排查冲突源。
✅ 4. 切换默认主题
同样操作,重命名主题目录:
sudo mv /var/www/html/wp-content/themes/twentytwentyfour /var/www/html/wp-content/themes/twentytwentyfour.bak
# (或其他当前激活的主题名)
✅ 5. 检查数据库连接
确认 wp-config.php 中的 DB 配置正确:
define('DB_NAME', 'your_db_name');
define('DB_USER', 'your_db_user');
define('DB_PASSWORD', 'your_db_password');
define('DB_HOST', 'localhost');
测试连接:
mysql -u your_db_user -p -e "USE your_db_name; SHOW TABLES;"
若失败,检查 MySQL/MariaDB 服务状态:
sudo systemctl status mariadb
# 或
sudo systemctl status mysqld
🛠️ 第三步:其他可能原因
| 问题 | 解决方案 |
|---|---|
.htaccess 损坏 |
重命名旧文件,WordPress 会自动重建:sudo mv .htaccess .htaccess.bak |
| SELinux 阻止访问 | 临时测试:sudo setenforce 0若解决,需正确设置上下文: sudo restorecon -Rv /var/www/html |
| PHP 版本不兼容 | 检查 WordPress 要求(当前需 PHP ≥7.4),用 php -v 验证 |
| 缺少 PHP 扩展 | 安装缺失扩展(如 pdo_mysql, gd, mbstring):sudo yum install php-mysqlnd php-gd php-mbstring |
✅ 最后一步:关闭调试模式
问题解决后,务必将 wp-config.php 中的调试代码改回:
define( 'WP_DEBUG', false );
// 或删除上述定义行
如果以上步骤仍无法解决,请提供:
debug.log中的关键错误片段phpinfo()输出中 PHP 版本及模块列表- 使用的 Web 服务器(Apache/Nginx)+ PHP 方式(mod_php/FPM)
我可进一步针对性分析。
PHPWP博客