没有什么比浏览您的 WordPress 网站并突然遇到白屏死机 (WSoD) 更糟糕的了。此错误使管理员和访问者都无法访问您的网站。
WSoD 也可能非常令人沮丧,因为缺乏指向可能的原因或解决方案的信息。但是,这也是最常见的 WordPress 错误之一。因此,虽然令人担忧,但在大多数情况下它是可以解决的。
目录
什么是 WordPress 白屏死机?
顾名思义,WordPress 白屏死机(也称为“WSoD”)发生在您面对的不是您尝试访问的网页,而是一个空白的白屏。
根据您使用的浏览器,您可能会收到不同的错误消息。以下是 Google Chrome 中的一个示例,其中包含一个 HTTP 500 错误警告“此页面无法正常工作,无法处理请求”:

现在让我们看一下 Mozilla Firefox 中的白屏死机:

如您所见,它只是一个纯白色的屏幕。它不包含任何有用的错误或警告消息。
WordPress 白屏死机几乎总是由 PHP 代码错误或内存限制耗尽引起的。
另一个可能的原因是主题或插件有问题。如果网站的前端出现故障,但您的 WordPress 管理区域正常运行,则后者可能是问题所在。要快速检查您网站上的仪表板是否正常工作,只需导航到 yourdomain.com/wp-admin。
如何修复 WordPress 白屏死机(9 种方法)
当您遇到 WordPress 白屏死机时,您的首要任务是尽快修复它。考虑到这一点,让我们来看看您可以用来解决它的九种可能的解决方案。
- 禁用您的 WordPress 插件
- 切换到默认 WordPress 主题
- 清除浏览器和 WordPress 插件缓存
- 开启调试模式
- 提高内存限制
- 检查文件权限问题
- 检查失败的自动更新问题
- 解决语法错误或恢复备份
- 提高 PHP 文本处理能力
1. 禁用您的 WordPress 插件
修复 WordPress WSoD 的最简单和最常见的方法之一是简单地禁用所有插件。通常,网站会因插件更新错误而宕机。
如果您仍然可以访问您的管理区域,一种快速的方法是从控制面板导航到 Plugins,选择所有插件,然后从 Bulk Actions 下拉菜单中单击 Deactivate:

这将禁用您的所有插件。
如果这解决了问题,您将需要找到罪魁祸首。为此,您可以开始逐个激活插件,每次激活后重新加载站点。当您的前端出现故障时,您发现了行为异常的插件。
然后,您可以联系插件的开发人员寻求帮助,或在 WordPress 插件目录中发布支持票证。
如果您无法登录 WordPress 管理员,您可以使用文件传输协议 (FTP) 客户端来访问您站点的文件目录。
在根目录的 wp-content 文件夹下,找到 plugins 文件夹。将其重命名为类似于 “plugins_old” 的名称:

然后,在前端再次检查您的网站。如果这有效,您将需要逐个测试每个插件。将你的插件文件夹重命名回 “plugins”,然后单独重命名其中的每个插件文件夹,直到找到有故障的插件文件夹。
2. 切换到默认的 WordPress 主题
如果问题不是插件,您的 WordPress 主题可能是白屏死机的原因。要查看这是否是问题所在,您可以通过切换到默认主题来替换您的主题。
如果您可以访问您的管理区域,请转到仪表板中的 Appearance > Themes。找到并激活默认的 WordPress 主题,例如 Twenty Twenty:

然后,再次测试您的网站。如果它有效,您就会知道问题出在您的主题上。
如果您无法访问控制面板,则过程与使用插件的过程相同。
使用 FTP 访问您网站的文件,并将您的 wp-content/themes 文件夹重命名为其他名称:

然后,WordPress 将恢复到最新的默认主题,很可能是 Twenty Twenty。如果您没有任何其他主题,您可以从 WordPress 主题目录下载一个,然后将其上传到您的主题文件夹。
之后,请继续再次检查您的网站。如果它有效,则可能是您的主题存在冲突或更新错误。如果是这种情况,您可能需要联系开发人员寻求帮助或考虑切换主题。
3. 清除浏览器和 WordPress 插件缓存
如果您可以访问 WordPress 网站的后端,但仍在前端看到 WSoD,则可能是由于缓存问题。
要修复它,请尝试清除 Web 浏览器的缓存和 WordPress 缓存插件(假设您已安装一个)。
如果您的 WordPress 网站上安装了缓存插件,例如 WP Rocket 或 WP Fastest Cache,大多数都提供了一种通过插件的设置页面清除缓存的快速方法。
清空缓存后,保存更改。然后重新访问您的网站,看看这是否解决了问题。如果没有,是时候转向另一种解决方案了。
4. 开启调试模式
如果您仍然看到 WordPress 白屏死机,管理区域无法正常工作,或者您认为您已经发现了问题但想更深入地挖掘,您可以启用调试模式。这将显示您网站上发生的任何错误。
要启用调试,您需要打开 WordPress 安装的 wp-config.php 文件。在其中,您应该找到以下行:
define( 'WP_DEBUG', false );
将 “false” 更改为 “true”,然后重新加载您的网站。如果此行不存在,您可以将其添加到文件顶部。
您得到的不是白屏,而是白屏和一些错误消息。这不是一个巨大的改进,但只是一个开始。WSoD 错误消息应说明问题源自哪个文件,如下所示:
Cannot redeclare get_posts() (previously declared in
/var/www/html/wordpress/wp-includes/post.php:1874) in
/var/www/html/wordpress/wp-content/plugins/my-test-plugin/my-test-plugin.php on line 38
您可以在此示例消息的末尾看到,问题出在名为 my-test-plugin 的插件的第 38 行。因此,禁用该插件应该可以解决问题。
如果您在启用调试模式后根本没有看到任何错误,则可能需要联系您的网站主机。您的服务器上可能没有正确配置调试。
请记住,打开调试模式可能会将您网站的某些信息暴露给未经批准的用户。因此,请确保在使用完该模式后始终将其关闭。
5. 提高内存限制
如果您在尝试了上述一些解决方案后仍然看到可怕的 WSoD 空页面,或者您收到抱怨内存限制或内存耗尽的错误,则需要为应用程序分配更多内存。
这可以通过许多 WordPress 安装的 wp-config.php 文件来完成。打开文件并添加以下代码:
define('WP_MEMORY_LIMIT', '64M');
如果这似乎不起作用,您有几个选择。在常规环境中,您可以使用 .htaccess 文件来增加内存限制。只需添加以下行:
php_value memory_limit 64M
如果您无法访问 .htaccess 文件,则可以使用 php.ini 文件来增加内存限制。
为此,请通过 FTP 连接到您的服务器。在站点的根目录中,查找 php.ini 文件。找到它后,在文件内的任意位置添加以下行:
memory_limit = 64M
如果内存仍然不足并且需要分配更多内存,则您的应用程序中可能存在问题。也许您的主题或您的插件之一使用了过多的资源。
此时,您可能需要聘请开发人员来查看。甚至您的主机也可能能够提供帮助,向您展示您网站的 SQL 日志和其他资源统计信息。
6. 检查文件权限问题
WSoD 的另一个潜在原因是权限和所有权问题。可以自己解决这个问题。但是,除非您真的知道自己在做什么,否则我们建议您不要这样做,因为您可能会无意中创建攻击者可以利用的漏洞。
当谈到 WordPress 权限时,需要遵循三个简单的规则:
- 文件应设置为 664 或 644。
- 文件夹应设置为 775 或 755。
- wp-config.php 文件应设置为 660、600 或 644。
如果您对服务器具有 SSH 访问权限,则可以使用以下命令应用适当的规则,从根 WordPress 目录运行它:
sudo find . -type f -exec chmod 664 {} +
sudo find . -type d -exec chmod 775 {} +
sudo chmod 660 wp-config.php
如果您不确定如何执行此操作或有点害怕,请继续向您的网络主机寻求帮助。
7. 检查失败的自动更新问题
有时 WordPress 会遇到更新问题,例如服务器超时时。通常情况下,此问题会自动自行解决。但是,在极少数情况下,它可能会导致 WordPress 白屏死机。
您应该做的第一件事是进入您的 WordPress 根目录,看看那里是否有 .maintenance 文件(文件名也可能是缩写的)。
您要做的是尝试删除该文件并再次加载您的网站。
如果更新成功,但 WordPress 未能自动删除此文件,则一切都应该恢复正常。
如果更新未完成,它可能会自动重新启动,在这种情况下,事情应该会恢复正常。
如果一切都失败了,请按照推荐的 WordPress 手动更新程序进行操作,这应该可以一劳永逸地解决问题。
8. 解决语法错误或恢复备份
WordPress WSoD 的另一个常见原因是,当您在 WordPress 网站上编辑代码时,不小心输入错误的内容或使用错误的语法。
错误位置的一个字符可能会关闭您的整个网站,这就是为什么您永远不应该在实时生产网站上编辑代码。
不过不用担心。您始终可以通过 FTP 连接到您的站点并恢复您手动所做的更改。如果您不知道是什么更改导致了问题,这就是 WordPress 备份派上用场的地方。
请记住,如果您之前在 WordPress 中启用了调试模式,则可能还会有一条错误消息,指示解析语法错误。如果是这种情况,它应该会告诉您确切的位置可以找到问题代码。
9. 增加 PHP 文本处理能力
此时,如果 WSoD 尚未解决,您可以尝试另一个技巧。在极少数情况下,由于页面或帖子特别长,可能会出现此问题。
如果是这种情况,您可以尝试通过增加回溯和递归限制来调整您网站上的 PHP 文本处理功能。为此,请将以下代码粘贴到 wp-config.php 文件中:
/* Trick for long posts /
ini_set('pcre.recursion_limit',20000000);
ini_set('pcre.backtrack_limit',10000000);
添加此代码后,保存更改。然后刷新您的网站,看看它现在是否正常工作。
总结
WordPress 白屏死机可能非常令人沮丧,甚至令人恐惧。有很多事情可能会出错,但值得庆幸的是,情况通常并不像看起来那么糟糕。
在大多数情况下,简单的插件和/或主题检查应该可以解决 WSoD 问题。更加熟悉 WordPress 调试模式肯定会更清楚地了解问题并指导您。

发表回复