wordpress通常是现有的最稳定的内容管理系统之一,广受开发者和企业的欢迎,据估计,有44%-65%的网站是在它上面建立的。尽管如此也有可能出现问题的时候。比如最可能发生的最令人费解和愤怒的错误之一是wordpress出现错误白屏的提示,一般我们都简称为死亡白屏(wsod)。当那个白屏出现的时候,可能没有任何信息来帮助你识别这个问题。
如果你的一个wordpress网站曾经发生过这种情况,没有必要惊慌失措。在这篇文章中,搬主题将向你展示几种解决方案,在几个简单易行的步骤中纠正这一讨厌的问题。
原文链接:wordpress出现白屏错误 解决死亡白屏的办法 - 搬主题
什么是wordpress死亡白屏?
简而言之,这至少是一个讨厌的问题。有一天,你的wordpress网站正在运行,然后突然间,它向你的访问者显示了一个错误的白屏提示。
在大多数情况下,当wsod发生时,你将无法访问你的管理面板。在前端,你可能会或可能不会看到一个错误信息。此外,一些浏览器(如chrome)可能会给你一个http错误500信息,但这仍然不能帮助你解决危机。有时候,可能有更常见的错误会给你显示一个错误信息。
随着wordpress 5.2的推出,以及内置的致命错误保护,wordpress有时可以确定导致wsod的问题。有一些情况下,你会看到一些错误信息提示。
其他时候,你可能会看到显示的关键错误信息。
如果wordpress确实发现了你的网站的问题,你会收到一封电子邮件,里面有一个链接,可以识别这个问题,让你轻松地修复这个问题,只要检查你的管理员电子邮件就可以了。
什么原因导致死亡白屏?
幸运的是,有一些常见的原因,你可能会看到wordpress的死亡白屏。
- 没有足够的内存给你的网站。基本上,这意味着一个脚本已经用完了分配给你网站的内存。
- 插件不兼容。例如,当你的核心wordpress文件被更新时,一个插件可能没有被更新以运行在最新版本的wordpress上,代码冲突会导致死亡白屏。
- 主题冲突与插件不兼容的情况类似。
- 缓存问题可能使你的网站瘫痪,而不是显示你网站的存储版本,显示wsod。
- 托管问题很常见,这意味着除了提交支持票之外,你自己能做的很少。
- 单个页面或文章可能因为代码片段、损坏的图像、恶意软件或任何其他不会影响整个网站的一次性问题而显示wsod。
不管是什么原因,还是有一些简单的解决方案可以帮助你解决这个问题,并让你的网站立即恢复正常运行。搬主题将引导你完成修复你的网站可能经历死亡白屏的最常见原因的步骤。
修复wordpress死亡白屏的6种方法
在你开始实施任何这些步骤之前,你要确保你的网站的错误不是由主机问题引起的。最简单的方法是,如果你在同一个主机计划上有一个以上的网站。如果你的其他网站显示正常,你的主机很可能没有问题。
如果你只有一个网站,甚至你的网站的一个部分也显示正确,你很可能是在处理一个网站的问题,而不是你的托管平台。一旦你确定你是有一个主机问题还是一个真正的网站问题,就开始通过我们下面概述的解决方案。如果你确实有一个主机托管问题,最好的办法是立即联系主机客服。
增加你的网站的内存限制
如前所述,一个使用过多内存的脚本通常是造成wordpress死亡白屏的罪魁祸首。为了纠正这个问题,我们将使用ftp来改变你的wp-config.php文件中的内存限制。你可以添加一行代码来告诉wordpress增加你的内存限制。
define( 'wp_memory_limit', '256m' );
要做到这一点的ftp,可以使用filezilla软件。导航到主/public-html/目录,找到wp-config.php文件。右键点击查看/编辑,然后将代码添加到该文件。接下来,点击保存。正如我们先前所建议的,在改变文件之前,下载一份wp-config.php的副本,以便你有一个备份。
一旦做出这些变动,可以查看你的网站。
检查插件的问题
第一步是禁用你的所有插件,以确定它们中是否有一个已经出错。如果你足够幸运,仍然可以访问管理仪表板,你可以在那里禁用你的插件。
导航到你的wordpress管理仪表板。在插件下,从下拉菜单中选择停用,点击复选框,选择你的所有插件,然后点击应用按钮。接下来,在一个新的标签页或chrome的隐身模式窗口中检查你网站的前端。如果它在没有wsod的情况下是可见的,你已经确定一个插件是造成你的困境的原因。
从那里,你要单独重新激活每个插件,并在一个新的隐私窗口中重新加载,以确定哪一个是罪魁祸首。一旦你找到有问题的插件,你将需要保持禁用它,以便你的网站能够正常运行。通常情况下,你可以等待更新,之后再重新激活它。
如果由于某种原因无法做到这一点,你可能想选择一个不同的插件来取代不再工作的那个。
如果你不能访问wordpress仪表板怎么办?
在这种情况下,你将需要做与我们上面提到的相同的事情,但使用ftp。在这个例子中,我们将使用filezilla来手动重命名我们的插件文件夹以禁用它们。
打开filezilla,用你的凭证登录到你的网站。要做到这一点,点击文件,然后点击网站管理器。使用你网站的sftp凭证(由你的主机提供)来登录。如果第一次将你的网站添加到 filezilla,你会想创建一个新的连接。要做到这一点,给你的网站一个名称,点击新网站,然后输入主机地址和端口。接下来,输入你的用户名和密码。最后,点击连接按钮。
一旦连接完成,在filezilla界面的右栏导航到你的/public-html/wp-content/plugins/文件夹。我们强烈建议在进行任何修改之前,将你的插件下载到你的桌面或电脑上的其他文件夹。
在本教程中,我们将创建一个新的文件夹,并将其命名为网站插件。点击你希望保存文件的文件夹,然后右键点击插件文件夹,然后点击下载。
接下来,你将重命名你的插件文件夹。这可以是你喜欢的任何东西,但在这个例子中,我们将文件夹命名为badplugins。要重命名这个文件夹,右键单击插件文件夹以调出菜单,然后点击重命名。这将使wordpress相信你的网站上没有安装任何插件。
检查你的各个插件
看看重命名你的插件文件夹是否解决了你的问题,回到你网站的前端,看看它是否显示正确。如果是的话,那就好了! 这是个插件问题。下一步是再次重命名你的插件文件夹。这一次回到它的原名:plugins。
接下来,你将点击插件文件夹内,重复上面的步骤。然而,这一次你将单独重命名每个插件文件夹。从第一个开始,然后查看你网站的前端。你将重复这些步骤,直到你找到有问题的插件。
如果这个步骤没有解决你的问题,你就需要转到下一个可能的问题。不用担心--我们会让你马上恢复正常运行。
改变你的wordpress主题
如果增加你的内存和排除你的插件的故障没有解决你的问题,接下来要看的是你的主题。有时你的主题可能是你的问题的根源,特别是在wordpress核心更新或主题更新之后。为了以正确的方式做这件事,你会想使用ftp。在通过ftp对你的主题文件夹做任何修改之前,重要的是下载你当前的主题。这样一来,如果你的问题不是你的主题,你可以恢复它。
回到filezilla,导航到public-html/wp-content/themes。右键点击你网站的活动主题文件夹,然后点击下载。一旦你的下载完成,确认你的文件在你的本地机器上,然后从该目录中删除主题文件夹。虽然听起来很吓人,但这完全没有问题。
值得注意的是,你要确保你的网站确实安装了另一个主题,比如twentytwenty。当你删除你的活动主题时,wordpress会在主题目录中搜索并激活一个默认主题。如果你没有安装一个,你可以通过ftp手动安装一个。
看一下你的 functions.php 文件
接下来,看看你网站的前端。如果它在默认的主题下恢复了运行,你会想看看你的function.php文件是潜在的罪魁祸首。有时,可能是几行额外的代码,或者像缺少一个分号那样简单的东西,使wordpress生气。作为一个经验法则,在你的主函数.php文件中添加任何东西都不是一个好主意。如果你选择添加自定义代码,我们建议使用一个子主题。
如果改变你的主题并没有解决你的问题,而你的 functions.php 文件似乎没有问题,你需要把你的主题上传到 wp-content/themes 文件夹。要通过filezilla完成这个任务,点击主菜单中的文件。接下来,点击导入。当对话框出现时,导航到你保存活动主题的地方并点击打开。
使用wordpress debug模式
如果前面的步骤还不能隔离你的问题,下一步就是启用调试模式。打开这个功能将允许你查看网站的错误日志。使用filezilla,导航到你的根文件夹,/public-html/,找到你的wp-config.php文件。右键单击编辑它,并寻找以下一行代码。
define( 'wp_debug', false );
接下来,你要把false改为true。此外,你将在它的正下方添加另一行代码。添加这一行将在你的/public-html/文件夹中创建一个debug.log文件。你的代码现在看起来会像这样:
define( 'wp_debug', true);define( 'wp_debug_log', true );
保存你的文件,然后刷新你的实时网站。现在不是看到一直困扰你的白屏了,而是页面上可能出现了可见的错误和警告。即使你没有任何可见的错误,你可能想检查你的debug.log文件。
要访问你的调试日志,请到filezilla并导航到/wp-content/文件夹。滚动直到你找到debug.log文件。在它上面点击右键,然后点击查看/编辑。
清理你的缓存
修复wordpress死亡白屏的另一个解决方案是清除你的缓存。有三种方法可以实现它。通过使用一个缓存插件,在浏览器中,或者通过清除服务器端的缓存。无论你选择哪种方式,在排除故障的过程中都应该考虑清除你的缓存。
什么是缓存?
缓存的工作原理是将文件的副本存储在一个临时位置,这样就可以更快地访问它们,从而加快加载时间。为了最好地解释什么是缓存,让我们用一个现实世界的例子来说明它是如何工作的。
比方说,你正在做晚饭。你的炉子和你的冰箱隔着一个房间。如果你每次需要某种原料时都要跑到冰箱里去,那就会拖慢整个过程,可能会激怒你要做饭的人。想象一下,你把做晚餐所需的所有材料都放在炉子旁边的台子上。由于所有的东西都离你最近,晚餐上桌所需的时间就会减少,因此让你的人更高兴。
这就是缓存的工作方式。我们也有一个完整的分解过程,你可以查看一下。
清除浏览器缓存
有时,清除浏览器中的缓存就能解决wsod的问题。这是一个简单的,但经常被忽视的解决方案,当你排除你的网站上可能有的任何问题。在这个例子中,我们将使用chrome浏览器。在mac上,当从前端查看你的网站时,点击左上角的chrome,然后选择清除浏览数据。(对于windows用户,你可以进入省略号菜单,选择设置,进入隐私和安全,然后清除浏览数据)。
当弹出窗口时,从时间范围下拉菜单中选择所有时间,然后确保浏览历史、cookies和其他网站数据以及缓存的图像和文件被选中。最后,点击 "清除数据 "按钮。这将清除你所有的浏览历史、cookies、以及存储的图像和文件,而不会重新设置你可能有的任何存储密码。
接下来,打开一个隐私窗口,输入你网站的url。如果你的网站是可见的,你已经解决了你的问题。如果不是,尝试使用一个缓存插件来清除你的wordpress网站的缓存。
使用缓存插件
如果你能进入你的wp-admin面板,并且使用了一个缓存插件,如wp rocket、w3 total cache或其他,可能会通过清除你的缓存来解决wordpress的死亡白屏问题。在这个例子中,我们将使用w3 total cache。
在wp-admin仪表板上导航到性能。接下来,点击常规设置。在这里,你可以清除页面、javascript和css、数据库、对象、浏览器和cdn(如果你有启用的话)的缓存。当你准备好清除你的缓存时,点击你想清除的每个部分的 "保存设置和清除缓存 "按钮。
重复上述步骤,查看你的网站,检查你的问题是否已经解决。
清除wordpress主机缓存
大多数wordpress主机供应商包括清除服务器缓存的能力。flywheel、cloudways、pressable和siteground等公司都提供这种服务。清除你的服务器的缓存可以在几个简单的点击中为你解决问题。
例如,在flywheel中清除缓存是通过点击flywheel仪表板中的高级标签,然后点击冲洗缓存按钮来完成的。
在wp引擎中,清除您的缓存也同样简单。从你的网站列表中,点击你需要清除缓存的网站。接下来,点击缓存。最后,点击清除所有缓存按钮。
不管你用哪个供应商的主机,清除你的wordpress缓存有可能是一个简单的任务,你只需几个步骤就可以自己完成。
修复长篇博客文章
现在在某些情况下,除了这里和那里的一个文章之外,你的网站的大部分内容都可以正常显示。我们对这个问题也有一个修正。要应用这个修复方法,你需要返回到filezilla,编辑你的wp-config.php文件。正如我们之前提到的,在对文件进行任何编辑之前,将文件下载到你的本地机器上是一个好的做法。
我们将使用的代码将告诉wordpress增加你网站的php文本处理限制。字符数的限制根据你的主机的服务器的配置而变化,所以我们想在这里放一个大的数字来覆盖我们的基础。也就是说,我们不希望增加太多限制。
下面代码中的第一行增加了递归限制。递归是php中一个自相调用的过程。必须有一个结束函数,否则递归会永远地调用自己,直到服务器的内存耗尽。如果你在一个长文章或页面上看到死亡白屏,很可能是你的递归限制设置得太低。
第二行允许提高pcre的回溯限制。回溯基本上是一种用于解决问题的php算法。它将通过可能的解决方案直到找到正确的解决方案--基于编程的解决方案。把这个数字设置得太低可能会导致问题无法解决,这可能会造成讨厌的白屏。与递归限制类似,设置一个高的回溯限制有可能耗尽你的系统内存。
执行修复
一旦你把你的wp-config.php文件下载到你的机器上,右键点击它并选择查看/编辑。下一步是输入这两行代码。我们建议对你的代码进行注释,以帮助区分文件中标准代码和自定义代码的区别。
//* sorry, i'm long-winded *//ini_set('pcre.recursion_limit',20000000);ini_set('pcre.backtrack_limit',10000000);
最后,点击 "保存 "来完成你的修改。一旦你刷新你的博客文章,你将有望发现你的博客文章已经准备好让全世界看到。
如果这一切都失败了,请联系你的主机商
如果你已经按照我们文章中的步骤进行了操作,你的wordpress死亡白屏问题很可能已经解决了。如果你还没解决的话,在这种情况下,尽快联系你的主机提供商将是一个好主意。大多数wordpress托管公司都在他们的计划中提供了出色的客户支持选项。cloudways和siteground都以拥有优秀的支持平台而闻名,并且很乐意帮助你解决最常见的wordpress问题。
最后总结
我们知道,wsod错误可能是可怕的和令人沮丧的,无论你的死亡白屏的原因是插件、主题、内存限制,还是缓存,我们已经列出了一些可能的解决方案来解决它。通过使用ftp,几行php,以及新发现的故障排除技能,你有工具让你的网站启动和运行,这样你就不用担心了。