如何修复 WordPress 白屏死机错误 (WSoD)
已发表: 2023-01-10加载您的 WordPress 网站却看到一个空白的白页,这令人沮丧。 这通常被称为WordPress 白屏死机错误。
在本指南中,我们将向您详细介绍如何深入了解导致您网站出现错误的具体原因以及具体的修复方法:
- 为什么我在 WordPress 中看到死机白屏?
- 步骤 #1 – 从清除您网站的缓存开始
- 步骤 #2 – 检查您的 PHP 错误日志
- 步骤 #3 – 使用调试模式识别错误
- 步骤 #4 – 增加您的 WordPress 和 PHP 内存限制
- 第 5 步 – 回忆您所做的最后更改
- 步骤 #6 – 禁用插件
- 步骤 #7 – 恢复站点备份
- 调试选项:检查主题是否存在潜在问题
为什么我在 WordPress 中看到死机白屏?
遇到 WordPress 白屏死机错误特别令人沮丧,因为顾名思义,您所看到的只是一个白屏。 没有关于原因可能是什么以及在哪里寻找的信息。
在我们开始讨论如何确定您网站上的错误原因并让一切恢复正常运行之前——以下是最常见原因的细分:
- PHP 代码错误(通常是刚刚发生的插件更新)
- 耗尽 PHP 内存限制
注意:如果来自插件的脚本或进程突然需要更多资源,您更有可能遇到某些 WordPress 托管提供商的这些问题,这取决于他们如何限制资源和限制站点。 如果您的托管服务提供商似乎很容易发生这种情况,那么可能是时候考虑转向更好的WordPress 托管服务提供商了,因为如果您曾经进行过大型营销活动,容易崩溃的主机也很可能会使您的网站脱机一次带来大量流量,等等。
因此,事不宜迟 - 让我们来看看如何修复您网站上的 WSoD 错误:
如何修复 WordPress 白屏死机
步骤 #1 – 从清除您网站的缓存开始(包括缓存插件)
如果这是一个生产站点,那么您很可能有缓存——如果没有,您可能应该。 虽然强烈建议这样做,但这可能意味着当您查看缓存在浏览器或服务器上的版本时,您无法看到网站上真正发生的事情。
注意:这还包括您可能拥有的任何其他缓存层。 例如,缓存插件——除了服务器级缓存之外,一定要清除那些。
清除 WordPress 中的缓存后,您还需要清除浏览器的缓存。
如果您无法再访问您的 WordPress 管理区域:可以使用 WP-CLI 清除缓存。 通过SSH 连接到您的站点后– 首先,导航到您站点的目录 – 对于 Servebolt 上的站点(示例包含在下面的第 1 行中)。 之后,刷新缓存并可选择排除主题和插件的激活:
cd ~/public
wp cache flush --skip-plugins --skip-themes
完成后,尝试再次访问您的站点以查看问题是否仍然存在。
如果它仍然不起作用,请继续阅读其他可能的解决方案……
步骤 #2 – 检查您的 PHP 错误日志
注意:如果您不习惯阅读日志文件,请跳到第 3 步。
一旦您排除了缓存,第一步就是检查您的 PHP 错误日志。 我们始终建议默认检查日志,因为它们是找出错误、问题或潜在问题真正来源的最佳方式。
在此处了解有关查看和检查日志文件的更多信息。
这样,在实施本文中的任何潜在修复之前,您就会明白原因(即,在测试提高内存限制是否会解决问题之前,了解正在运行的插件需要更高的限制是有意义的) .
检查错误日志的目的是为您指明正确的方向。 然而,实际使用您在这里发现的内容当然也同样重要! 这意味着错误和警告都是首先引起您注意的地方,并努力解决它们(如果您对此不满意,我们建议您与开发人员合作)。
步骤 #3 – 使用调试模式识别错误
WordPress 中内置的“调试”模式可以帮助您识别服务器上的任何错误。 要在 WordPress 中启用调试模式,请打开您的 wp-config.php 文件,并在最后一行之前添加以下代码:
// Enable WP_DEBUG mode
define( 'WP_DEBUG', true );
// Enable Debug logging to the /wp-content/debug.log file
define( 'WP_DEBUG_LOG', true );
注意:启用 WP_DEBUG 模式将导致显示所有 PHP 错误、通知和警告。 对于未损坏但不遵循 WordPress(和/或 PHP)开发约定的内容,这可以显示错误和警告消息。
现在,当您打开网站时,您可能会看到错误或通知,而不是白屏。 当您在 WordPress 上启用调试时,它还会创建一个debug.log文件,您可以检查是否有任何错误。
这是一个日志文件,其中包含有关所有错误或警告的信息。 您可以在wp-content目录中找到它。 检查日志文件以确定导致问题的原因并修复它。
例如,如果问题是由插件引起的,错误将记录在调试文件中。 然后您可以停用该特定插件并将问题报告给开发人员。
完成后,只需从wp-config.php文件中删除代码即可退出调试模式。 这是识别 WordPress 网站错误的更好方法之一,但并不总能捕获您网站上发生的所有错误。
确保退出调试模式。 许多用户不小心将其打开,导致网站性能下降和资源消耗增加。
步骤 #4 – 增加您的 WordPress 和 PHP 内存限制
服务器上设置的内存限制也可能是导致问题的原因。 您站点上的每个插件都运行不同的脚本,消耗服务器的内存来执行。
除此之外,WordPress 还施加了内存限制,以防止插件运行会降低您网站速度的低效进程。 话虽这么说,当脚本需要的内存超过允许的内存时,它可能会导致白屏死机。
但在尝试增加可用内存之前,您可能需要查看日志以确定究竟是什么占用了所有这些内存。 不建议盲目增加内存,因此首先仔细查看日志很重要。
要解决此问题,您可以增加不同插件可用的内存量。 使用 SFTP 登录您的服务器,然后找到 wp-config.php 文件。 在大多数情况下——包括在 Servebolt 上——它会在你的公共文件夹中。
打开 wp-config.php 文件,并在底部添加以下行:
define( 'WP_MEMORY_LIMIT', '64M' );
这使 WordPress 能够为插件脚本分配最多 64 MB 的内存。 在某些情况下,这可能会解决问题。 如果它不能立即修复它,请尝试更大的值,例如 125、256 和 512。可能是性能较差的代码使用的内存比平时多得多,因此当有更多可用时它会突然出现。
请记住,在 Servebolt 上,除非您定义限制,否则 WordPress 将始终使用最大可用内存。 因此,如果您之前限制了可用内存,则只应执行此步骤。
或者,在 Servebolt 控制面板中,您还可以设置更高的 PHP 内存限制。 只需转到您的站点设置,您可以在其中更改您网站的 PHP 内存限制,如下所示。
第 5 步 – 回忆您所做的最后更改
想一想您是否进行了更改——安装并激活了插件,还是更改了设置。 白屏死机一般发生在PHP崩溃时(即与服务器无关)。
因此,这可能意味着您最近在导致这种情况发生的插件中启动了一个进程(即具有处理大型媒体库等的有效方式的图像优化插件)。
您可能需要考虑使用 Git,因为它可以更轻松地跟踪更改和回顾以前的迭代。 Git 将存储您所做的任何更改,允许您在需要时调用它们。
如果您能够确定您所做的更改是什么,它可以很容易地回溯并注意启用该设置不起作用(并且不应再次尝试),直到插件或主题开发人员已经联系以解决问题。
步骤 #6 – 禁用插件
这是一种稍微繁琐且不太可取的方法,这就是它如此之低的原因。 单独对每个插件进行故障排除很麻烦,但您可以应用批量操作,例如一次性停用所有已安装的插件。
如果您无法访问仪表板区域,则必须使用FileZilla等 SFTP 客户端连接到您的站点。 搜索 wp-content 文件夹,您会看到一个名为“plugins”的目录。
将其重命名为“plugins-deactivated”并保存您的更改。 WordPress 将无法再找到用于在您的站点上加载插件的文件夹。 因此,它将自动完全停用它们。 这是因为 WordPress 寻找一个名为plugins的文件夹如果找不到该文件夹,它会自动认为所有插件都已停用。
此时,返回您选择的 FTP 客户端并将文件夹的名称设置回plugins 。 您现在可以返回您的管理区域,并可以开始一个接一个地激活插件以隔离有问题的插件。
步骤 #7 – 恢复站点备份
如果似乎没有任何效果,您可能需要考虑恢复站点的备份。 显然,最好为当前文件创建一个备份(即使这看起来不合理),以防备份出现问题。
Servebolt 每天为其客户执行所有文件和数据库的备份。 您只需通过网站聊天联系 Servebolt,即可恢复您网站的备份。 该团队将免费恢复您的备份。
备份最多可存储 30 天,过去 14 天每天存储一个备份,在此之前每周存储几个备份。
调试选项:检查主题问题
在某些情况下,您在网站上使用的主题也可能导致白屏死机。 它可能与插件冲突,或者某些文件在更新期间可能已损坏。 您可能需要检查错误或更换主题以检查是否可以解决问题。 作为最后的手段,一个好的临时解决方案可以是在继续调试时切换到默认的 WordPress 主题。
如果我无法访问管理仪表板怎么办?
如果您在尝试访问管理仪表板时遇到白屏死机,则显然无法以相同的方式更改主题。
相反,您可以使用 SFTP 访问网站的文件。
访问该站点后,只需:
- 找到 webroot 文件夹,然后导航到 wp-content 目录。
- 从那里,搜索名为“主题”的文件夹。 在里面查找您的活动主题的名称。
- 然后,只需在主题的目录名称后添加后缀“_old”,并保存更改。 WordPress 将禁用主题(如果您安装了默认主题,则默认切换到该主题)。
- 尝试再次访问您的网站。
如果您具有 SSH 访问权限,则可以使用WP-CLI将主题更改为另一个主题。
在此示例中,它被更改为主题 Twenty-Twenty-Two。
wp theme activate twentytwentytwo --skip-plugins --skip-themes
注意:此命令在进行此更改时会跳过初始化插件和主题。
如果您的站点恢复正常,您就会知道问题是由您的 WordPress 主题引起的。 在这一点上,肯定是时候将此报告给您的主题开发人员,以便他们能够进行修复 - 如果主题仍在积极维护。 如果不是,那么通常建议切换到另一个 WordPress 主题。
行动后报告 - 联系您的托管支持以采取预防措施
虽然错误的名称确实让它看起来更严重,但当您看到的只是白屏时让您的 WordPress 网站恢复运行通常是一个简单的错误修复。 如果您仍在努力解决这个问题,下一步就是联系您的WordPress 托管提供商的支持团队——如果您明智地决定与我们一起托管您的网站,只需登录您的 Servebolt 帐户并与我们,以便我们可以帮助您一起查明真相。
尚未使用 Servebolt,但对根据经验更快的托管托管感兴趣?
今天在 Servebolt 上试用 WordPress:
- 可扩展性:在真实用户工作负载测试中,Servebolt 的平均响应时间为 65 毫秒,比第二名快 4.9 倍。
- 最快的全球加载时间:全球平均页面加载时间为 1.26 秒,使 Servebolt 在全球 WebPageTest 结果列表中名列前茅。
- 最快的计算速度: Servebolt服务器提供闻所未闻的数据库速度,每秒处理的查询数是平均水平的2.44倍,运行PHP的速度是第二名的2.6倍!
- 完美的安全性和正常运行时间:所有监视器的正常运行时间均为 100%,并且我们的 SSL 实施获得 A+ 评级,您可以放心您的网站在线且安全。
全部由我们的专家团队提供支持,并准备好今天免费试用 Bolt 。