早上打开网站一片纯白,后台也白,什么都不报。这就是 WordPress 圈子里著名的 WSOD(White Screen of Death)。白屏的本质是 PHP 在输出任何内容之前就发生了致命错误,而 WordPress 默认把错误输出屏蔽了——所以你看到的不是报错页,是“沉默的死亡”。排查的钥匙就一句话:让错误开口说话。
先做一个分流判断:前台白屏但 /wp-admin 能进,问题大概率在主题模板;前后台全白,通常是插件在早期钩子里炸了,或者内存耗尽。WordPress 官方文档把 WSOD 的原因归纳为插件兼容性、主题问题、内存耗尽和数据库错误四类,按这个顺序逐个验证。
// 第一步:wp-config.php 打开调试(只在排查期开,修完必须关回 false)
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true ); // 错误写入 wp-content/debug.log
define( 'WP_DEBUG_DISPLAY', false ); // 屏幕不显示,避免暴露路径
// 刷新白屏页面后看日志
// tail -50 wp-content/debug.log
// 典型输出:PHP Fatal error: Call to undefined function xxx() in
// /wp-content/plugins/xxx/xxx.php on line 47
日志通常一步就指向凶手文件。如果指向插件但后台进不去,FTP 改名 plugins 目录是最快的手动停用方案:wp-content/plugins 改成 plugins_disabled,刷新网站,恢复即证明是插件问题;改回来后逐个改名插件目录,二分定位。主题同理,改 themes 里当前主题的目录名,WordPress 会自动回落到默认主题。
# 手动停用全部插件(改回来即可逐个排查)
mv wp-content/plugins wp-content/plugins_disabled
# 手动切换默认主题
mv wp-content/themes/你的主题 wp-content/themes/你的主题_disabled
# 内存不足型白屏:wp-config.php 增加内存(放在停止编辑注释行之前)
# define( 'WP_MEMORY_LIMIT', '256M' );
# 有 WP-CLI 的话更省事
wp plugin list --status=active
wp theme activate twentytwentyfive
另一类故障提示明确:“Error establishing a database connection”。这条报错的排查方向是 wp-config.php 里的四件套:DB_NAME、DB_USER、DB_PASSWORD、DB_HOST,逐项跟 MySQL 实际情况核对。别只看配置文件,直接在服务器上用同样的凭据连一次数据库,能连上说明配置没问题,连不上就是账号密码错或者库没了。
# 用 wp-config 里的凭据直接测连接(假设库名 site_db)
mysql -u site_user -p -h 127.0.0.1 site_db -e "SELECT 1;"
# 报 Access denied:账号或密码问题
# 报 Unknown database:库没了,去查备份
# 连不上 127.0.0.1:3306:MySQL 服务没起,systemctl status mysqld
# MySQL 在跑但拒绝连接时,看它是否达到连接上限
mysqladmin -u root -p status | grep -i threads
收尾列一个高频踩坑清单:升级插件后白屏,先回滚再谈修复,恢复服务优先于定位根因;PHP 版本升级导致的白屏越来越多见,老插件跑在 PHP 8.x 上炸函数,切回低版本 PHP 是止血手段;WP_DEBUG 用完必须关,调试输出可能暴露服务器路径等敏感信息。修完白屏别急着走,把 debug.log 里那条 Fatal 的插件或主题更新到兼容版本或者找替代品,不然下次升级还会再炸一次。
相关阅读:白屏是 WordPress 特有的复合故障。《服务器故障排查总纲:按现象反查的五层定位法》按五层把它拆到应用和数据两层,本篇管连接链排查,总纲里有相邻的表损坏、连接数爆满篇。
申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!
