搜索全站
报错排查 8 分钟阅读

WordPress 站点健康故障排除模式使用指南

插件冲突导致站点崩溃时,不用 FTP 也能恢复。本文讲清 WordPress 内置的"恢复模式"和 Health Check 插件的"故障排除模式"怎么用,以及两者配合定位冲突插件的完整流程。

U
UFO_PF 2023-12-18 · 阅读 8 分钟
Wo 报错排查
阅读提示
本文约 2,937 字,预计阅读 8 分钟。文中命令与配置均经过实测,可直接参考执行。

引言:装完插件站点就崩了

最让人崩溃的场景:

  • 启用一个新插件,刷新页面 → 白屏;
  • 更新了主题,后台打不开;
  • 改了段代码,整站 500;
  • 现在后台进不去,没法停用插件。

新手的第一反应是 FTP 上去改目录名。但 WordPress 早就内置了自救机制,而且更优雅——不需要 FTP,不需要改文件。

原理分析:两套机制

WordPress 有两套互相独立的排障机制,很多人分不清。

机制一:恢复模式(Recovery Mode,WordPress 5.2+ 内置)

触发条件:PHP 致命错误发生在插件或主题代码里。

行为:

  1. WordPress 捕获致命错误;
  2. 不显示白屏,而是显示”站点遇到技术困难”页面;
  3. 同时给管理员邮箱发一封邮件,标题”您的站点 [xxx] 遇到了技术性问题”;
  4. 邮件里有一个特殊链接,点进去进入恢复模式;
  5. 出错的插件被临时禁用(只对当前会话生效),后台可正常访问;
  6. 你可以进去卸载/修复问题插件。

关键点:

  • 只对管理员生效,普通访客仍看到错误页;
  • 链接有效期约 1 天;
  • 只在错误来自插件/主题时触发,服务器配置或核心文件问题不会触发。

机制二:故障排除模式(Health Check 插件)

触发条件:手动开启。

行为:

  1. 装 Health Check & Troubleshooting(WordPress 官方开发);
  2. 「工具 – 站点健康 – 故障排除」点”启用故障排除模式”;
  3. 插件仅对当前登录用户禁用所有插件、切换到默认主题;
  4. 站点对其他人完全正常,只有你在”裸环境”里测试;
  5. 逐个启用插件复现问题,定位元凶;
  6. 退出后一切恢复。

关键优势:不影响真实访客。这比”FTP 改目录名”高明得多。

保姆级实操

场景 A:站点已崩溃,进不去后台

第一步:查管理员邮箱

邮件标题形如”您的站点遇到了技术性问题”。没收到就检查垃圾箱,以及 WordPress 能否发信(参考WordPress SMTP 邮件配置)。

第二步:点击链接进入恢复模式

https://mimangfei.com/wp-login.php?action=enter_recovery_mode&rm_token=xxxxx

登录后顶部提示条会说明哪个插件被暂停。

第三步:处理问题插件

能确定就卸载或更新;不确定就先全停,再逐个启用测试。

第四步:退出恢复模式

点提示条的”退出”,或清除浏览器 cookie。

命令行替代(有 SSH):

wp plugin deactivate --all --allow-root
wp plugin deactivate 插件slug --allow-root
wp theme activate twentytwentyfour --allow-root

场景 B:能进后台但某功能异常

这是故障排除模式的主场。

第一步:安装 Health Check & Troubleshooting(作者 The WordPress.org Team)。

第二步:「工具 – 站点健康」→「故障排除」→「启用故障排除模式」。

第三步:确认进入。顶部出现提示条:

故障排除模式已启用
[禁用所有插件] [启用所有插件] [切换到默认主题] [禁用故障排除模式]

第四步:二分法定位

先确认”裸环境”下问题是否消失:

  • 消失了 → 是插件或主题问题,继续;
  • 没消失 → 不是插件问题,可能是服务器配置、数据库或你的自定义代码,转其他方向。

第五步:逐个启用

一次启用一个插件后复现问题;插件多时用二分法(一次启用一半),效率从 O(n) 降到 O(log n)。

第六步:切换主题测试

插件全部启用后问题不在,就切主题验证。

第七步:退出

点「禁用故障排除模式」恢复。

场景 C:Health Check 的其他功能

「状态」页:列出检查结果,分”严重”和”推荐”。常见问题:PHP 版本过旧、缺少扩展(imagick、zip)、计划任务未运行、REST API 不可用、数据库连接慢。每项都有修复建议。

「信息」页:完整环境信息(服务器、PHP、MySQL、插件列表、主题、媒体处理、邮件等),一键复制用于求助。

场景 D:无 SSH、无邮箱的极端情况

  1. 通过数据库停用插件(phpMyAdmin):

sql
SELECT option_value FROM wp_options WHERE option_name = 'active_plugins';
UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins';

直接设成空字符串是安全的(表示没有启用任何插件),不要手工改序列化字符串。

  1. FTP 重命名插件目录:

bash
mv wp-content/plugins/问题插件 wp-content/plugins/问题插件_disabled

  1. 改主题:

sql
UPDATE wp_options SET option_value='twentytwentyfour' WHERE option_name='template';
UPDATE wp_options SET option_value='twentytwentyfour' WHERE option_name='stylesheet';

常见踩坑

  1. 收不到恢复模式邮件:最常见的障碍。WordPress 默认用 PHP mail(),很多服务器发不出去。装个 SMTP 插件配好,长期受益。
  2. 链接过期:约 1 天,过期要重新触发错误才能拿到新链接。
  3. 案例:某站白屏,站长收到恢复模式邮件但没在意,直接 FTP 改了插件目录名。结果 WordPress 报”插件文件不存在”,后台插件页面直接空白。正确做法是用恢复模式进去正常卸载,而不是改目录名。
  4. 故障排除模式下问题消失,退出又出现:说明确实是插件/主题问题,但你没验证完。耐心走完二分法。
  5. 忘了退出:只影响你自己(cookie 绑定),但换浏览器访问会发现”明明正常”。检查顶部提示条。
  6. 缓存导致误判:开着页面缓存时看到的是缓存的旧页面。排查期间先关缓存或加 ?nocache。
  7. wp-content/object-cache.php 干扰:排查时必要时临时移走 Redis drop-in。

总结

WordPress 排障有两条内置路径:恢复模式(站点已崩溃,靠邮件链接进入,临时禁用出错插件)和 Health Check 的故障排除模式(能进后台,只对你一人模拟裸环境,逐个启用定位冲突)。强烈建议每个站点都装 Health Check——官方开发、免费、轻量,还能给出完整环境信息用于求助。另外务必配好 SMTP 让 WordPress 能发邮件,否则恢复模式这条救命通道等于不存在。日常预防方面,重大改动先在WordPress Staging 测试环境验证,配合WordPress 月度安全巡检清单,能把这类事故概率降到很低。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。