站点遇到错误:禁用 WordPress 5.2 及以后版本的致命错误(WSOD)处理程序

今天出现了“您的站点遇到了致命错误,请查看您的站点的管理电子邮箱来获得指引。”。搜索发现已经有人遇到过这个问题了,如下是解决方案。

原来,自 WordPress 5.2 开始,新增了一个新功能,就是当检测到插件或主题发生错误时,自动发送邮件通知网站管理员,即使在后端完全无法访问的情况下(例如发生所谓的“白屏死机”,White Screen Of Death,简称 WSOD),管理员仍然有机会登录并对此问题采取措施。这个就是新 WordPress 的致命错误(WSOD)处理程序。

WSOD
The site is experiencing technical difficulties. Please check your site admin email inbox for instructions.(此站点正遇到技术问题,请查看您的站点管理员电子邮件收件箱来获得指引。)

但我并没有收到啥错误信息邮件呀,而且感觉也没必要出错就发送邮件通知。那么,如何禁用它呢?

打开 WordPress 配置文件 wp-config.php,在WP_DEBUG下面一行添加如下代码即可:

define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );

另外,既然出错了,就需要开启 DEBUG 模式,显示详细的错误信息,那么怎样“完全的开启 WP 的 DEBUG 模式”呢?

打开 WordPress 配置文件 wp-config.php,将WP_DEBUG这一行修改为如下代码即可:

// 开启WP_DEBUG模式
define( ‘WP_DEBUG’, true );
// 开启DEBUG日志,一定要记得关闭这个日志功能并清理这个日志文件哦,产生的日志文件在: /wp-content/debug.log
define( ‘WP_DEBUG_LOG’, true );
// 显示errors and warnings
define( ‘WP_DEBUG_DISPLAY’, true );
@ini_set( ‘display_errors’, ‘On’ );

PS:调试好后,一定记得关闭 DEBUG 模式:

define( 'WP_DEBUG', false);

根据上面的提示,可以直接确定出现“您的站点遇到了致命错误,请查看您的站点的管理电子邮箱来获得指引。”这个问题的原因。

 

找到 WP 致命的错误

做完上面之后,直接网页刷新显示错误的页面,可看到详细的报错内容,此时已经显示出来错误路径。

 

大多数情况下,发生致命错误,主要是博客的主题、插件、PHP 内存、文件目录权限,甚至是当前主题函数模板 functions.php 内多了个标点符号的原因。

 

而如果博客正常情况下是可以打开,但是偶然出现了报错,那么博主可以检查下,近期是否有对主题和插件做了修改或更新,大多数情况,更多的是主题和插件更新导致的不兼容,建议直接恢复默认主题,停用插件观察,如果通过WP_DEBUG可以直接定位到问题,那么也可以根据错误提示找到问题所在,针对性的解决。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据