使用技巧

如何修复WordPress中的HTTP 503服务不可用错误

在WordPress网站上遇到错误可能会令人生畏。但是,大多数错误都会为您提供一些线索,这些错误可以帮助您解决问题。遗憾的是,503错误不是很有礼貌,并且不会给你提供太多信息。

它有助于理解WordPress中503错误的最常见原因。之后,在对错误进行故障排除时,您需要有条不紊,这意味着需要执行几个步骤才能找到根本原因。

在本文中,我们将介绍503错误是什么以及它通常如何显示。然后,我们将引导您完成六个步骤以对其进行故障排除。我们开始吧!

你厌倦了缓慢的WordPress主机和可怕的支持吗?我们在Kinsta做不同的事情。

查看我们的托管计划

  • 什么是503错误?
  • 如何修复WordPress中的503错误

什么是503错误?

遇到503错误时,表示相关服务器不可用。这可能是因为它太忙了,或者它处于维护状态。与其他类似的错误代码不同,503表示您的网站已联机并正在运行,但目前无法访问。

令人烦恼的是,这个特殊的错误是它几乎没有给你任何信息。大多数情况下,它只显示“服务暂时不可用”消息。这相当于通过电话打电话给餐馆,只是让他们告诉你他们已经关闭,但拒绝让他们知道什么时候他们会再次打开。

如果幸运的话,将会出现503错误代码,因为您的WordPress网站正在维护中。当您更新插件,主题或核心软件时,WordPress会非常简短地将您的网站设置为维护模式:

503 WordPress中的错误

维护模式

通常,此超时非常简短,没有人会注意到它。但是,在503错误仍然存​​在的情况下,您将面临更大的问题需要处理。毕竟,用户不仅无法访问您的网站,而且您也将失去对WordPress管理区域的访问权限。这意味着您无法以任何方式更新您的网站,并且为了对其进行故障排除,您需要深入了解其文件。

503错误变体

503错误可以通过很多方式显示出来。但是,几乎每个变体都伴随着503代码,因此很容易识别。

以下是您可能遇到的一些变体,具体取决于您的服务器配置和浏览器:

  • 503服务不可用
  • 503服务暂时不可用
  • HTTP服务器错误503
  • HTTP错误503
  • 错误503服务不可用

无论您遇到的代码是什么样子,都意味着您需要在它对用户产生负面影响之前快速开始工作。

如何解决WordPress中的503错误(6个步骤)

由于您经常无法确定在任何给定情况下导致503错误的原因,因此您需要有条不紊地对其进行故障排除。以下六个部分分别涵盖了一个潜在的解决方案,旨在解决不同的潜在根本原因。

完成每个步骤后,请花点时间返回到您的网站,看看503错误是否消失。如果是,您已成功解决了问题。如果没有,请继续执行该过程的下一步。

1.暂时停用WordPress插件

WordPress中503错误的最常见原因之一是插件兼容性问题。要确定是否发生了这种情况,您需要禁用所有网站的插件。

由于503错误阻止您访问WordPress管理区域,因此您需要使用FTP客户端执行此步骤。如果您没有设置,我们建议使用FileZilla。

FTP客户端准备就绪后,通过它连接到您的网站并导航到您的WordPress根文件夹。如果您找不到它,通常称为public_html,html,public,www或您网站的名称。如果您是Kinsta客户端,则它是您的公用文件夹。

WordPress根文件夹SFTP

WordPress根文件夹SFTP

打开该文件夹,然后导航到wp-content目录。在里面,您将看到一个名为plugins的文件夹,其中包含您站点上安装的每个插件(活动和非活动)的各个子目录。

您现在要做的是右键单击插件文件夹,然后将其重命名为其他内容。我们建议使用plugins.old或plugins.deactivated,以便日后轻松识别。

WordPress插件文件夹已重命名

WordPress插件文件夹已重命名

WordPress现在无法找到任何插件。当发生这种情况时,它会自动禁用这些插件。

现在,尝试访问您的WordPress仪表板。如果503错误消失了,那么你可以假设你的一个插件是罪魁祸首。你所要做的就是找出哪一个有问题。

返回到wp-content目录,并正确重命名原始插件文件夹。然后,您需要逐个禁用每个插件,直到找到罪魁祸首。

为此,请打开wp-content / plugins目录。在里面,你会找到每个插件的一个文件夹。您要遵循的流程与以前大致相同:

  1. 从第一个文件夹开始,并将其重命名为您喜欢的任何内容。
  2. 检查您的网站,看看错误是否消失。
  3. 如果不是,请将上一步中的插件文件夹恢复为原始名称。
  4. 转到列表中的下一个插件,重复上述步骤。

如果你有很多插件,这个过程可能需要一段时间,但是依次检查每个插件是至关重要的。如果您在任何时候识别出导致错误的插件,您可以将其卸载或用其他工具替换它。

如果在没有找到解决方案的情况下完成这些步骤,您可以继续进行下一阶段的故障排除。

2.停用您的WordPress主题

既然你已经排除了插件作为503错误的原因,那么现在是时候对你的活动主题做同样的事了。实际上,您的主题也可能会产生兼容性问题。

不幸的是,该过程与上述不同。如果只是重命名主题文件夹,WordPress将不会恢复为默认主题,最终会出现“主题目录”主题名称“不存在”之类的错误。或者如果您尝试重命名整个主题目录文件夹,最终出现“错误:主题目录为空或不存在。请检查你的安装。“

主题目录不存在错误

主题目录不存在错误

因此,您需要通过登录phpMyAdmin来访问您的WordPress数据库。如果您是Kinsta客户端,可以在MyKinsta仪表板的“信息”部分找到它。

MyKinsta phpMyAdmin

MyKinsta phpMyAdmin

单击“wp_options”表,然后单击“搜索”选项卡。您需要在“option_name”下搜索模板。

phpMyAdmin wp_options表

phpMyAdmin wp_options表

在“option_value”列下,您将看到主题的当前名称。将其更改为默认主题之一,例如“twentynineteen”。

wp_options模板名称

wp_options模板名称

再次检查您的网站,看看是否修复了错误。如果是这样,它只是意味着它是您的WordPress主题的问题,您可能想尝试重新安装它或恢复到最近的备份。

3.暂时禁用内容分发网络(CDN)

有时,503错误将显示不是因为您的网站出现问题,而是因为您的内容交付网络(CDN)。如果您正在使用CDN,可以通过快速方法确定是否会暂时禁用CDN。

每个CDN都应包含一些使您能够暂停其服务的功能。如果您使用的是Kinsta,则可以通过导航到MyKinsta仪表板内的CDN→“禁用CDN”来禁用Kinsta CDN:

MyKinsta CDN启用/禁用选项

MyKinsta CDN启用/禁用选项

您需要遵循的流程可能会有所不同,具体取决于您使用的CDN。众所周知,Cloudflare会导致503错误。如果您找不到暂停选项的选项,请查看您的服务知识库,其中通常包含详细说明。

如果您不使用CDN或发现暂停您的服务对您的问题没有帮助,那么还有一些其他问题需要尝试。请记住在继续之前重新激活您的CDN。

4.限制WordPress的“Heartbeat”API

WordPress Heartbeat是一个内置于WordPress中的API,该平台用于自动保存内容,向您显示插件通知,让您知道其他人何时正在处理您尝试访问的帖子等等。

就像常规心跳一样,API在后台以高频率工作,因此它不会遗漏任何内容。如您所想,此API会占用服务器资源。通常,这不是问题,但在某些情况下,如果您的服务器无法处理负载,可能会导致503错误。

确定Heartbeat API是否是问题的核心的最快方法是暂时禁用它。为此,请再次通过FTP连接到您的WordPress网站,然后打开当前的主题文件夹并在以下位置查找functions.php文件:

WordPress主题functions.php文件

WordPress主题functions.php文件

右键单击该文件,然后选择“查看/编辑”选项,该选项将使用本地文本编辑器将其打开。一旦打开,您需要在以下内容中添加以下代码段:

add_action('init','stop_heartbeat',1); function stop_heartbeat(){wp_deregister_script('heartbeat'); }

这三行代码告诉WordPress禁用Heartbeat API。将更改保存到functions.php文件,关闭它,然后再次尝试访问您的网站。

挣扎着停机和WordPress问题? Kinsta是托管解决方案,旨在为您节省时间!看看我们的功能

如果503错误消失,您将知道API是问题所在。但是,完全禁用它会删除许多有用的功能。相反,我们建议您“减慢”心跳,以免造成问题。

最简单的方法是安装Heartbeat Control插件。激活插件并导航到“设置”>“心跳控制”部分。查找“修改心跳”选项,并将频率降至最低可能的数字:

心跳控制插件频率

心跳控制插件频率

将更改保存到您的设置并返回到您稍后调整的functions.php文件。要使上述更改生效,您需要删除之前添加的代码字符串并将更改保存到文件中。

在此阶段,如果Heartbeat API出现问题,则应该消除503错误。如果不是,那么是时候尝试不同的东西了。

5.增加服务器的资源

如果到目前为止所有尝试修复它仍然发生503错误,那么问题很可能是由于缺少服务器资源。也就是说,您需要升级您的托管计划,看看是否能解决问题。如果你使用廉价的WordPress主机,尤其如此,因为它们往往会限制资源。我们不会在Kinsta这样做。

但是,升级您的计划是一个重大决定。聪明的举措是首先联系您的网络托管支持服务,并与他们讨论503错误,以及您迄今为止尝试解决它的步骤。支持团队应该能够帮助您解决问题,并建议您是否需要升级计划。

在Kinsta,我们的支持团队非常乐意为您服务。我们甚至可以暂时启用New Relic,看看我们是否可以将问题查明到导致问题的网站上的问题。

6.检查您的日志并启用WP_DEBUG

您还应该利用错误日志。如果您是Kinsta客户端,则可以在MyKinsta仪表板中轻松查看日志查看器中的错误。这可以帮助您快速缩小问题范围,特别是如果它是由您网站上的插件产生的。

检查503错误的错误日志

检查503错误的错误日志

如果您的主机没有日志记录工具,您还可以将以下代码添加到wp-config.php文件以启用日志记录:

define('WP_DEBUG',true); define('WP_DEBUG_LOG',true); define('WP_DEBUG_DISPLAY',false);

日志通常位于/ wp-content目录中。在其中,查找名为debug.log的文件并将其打开。

其他人,比如Kinsta,可能会有一个名为“logs”的专用文件夹。

WordPress错误日志文件夹(SFTP)

WordPress错误日志文件夹(SFTP)

解释您的调试日志可能有点令人生畏,但它并不像您想象的那样难以阅读。简而言之,日志包含按时间顺序在您的网站上弹出的每个错误。它显示了导致每个错误的文件,以及涉及哪些特定代码行。

请注意:您不会在日志中找到对503错误的直接引用。即便如此,如果所有其他方法都失败了,它可以通过向您显示导致问题的文件来指向正确的方向。这样,你就会知道接下来要把重点放在哪里。正如我们在上一步中提到的,如果您需要进一步的帮助来解决此错误,现在是与您的托管服务提供商联系的好时机。

您还可以检查Apache和Nginx中的日志文件,这些文件通常位于此处:

  • 阿帕奇:/var/log/apache2/error.log
  • Nginx的:/var/log/nginx/error.log

如果您是Kinsta客户端,您还可以利用我们的分析工具来分析503错误的总数,并查看它们发生的频率和时间。如果这是一个持续存在的问题,或者可能已解决的问题,这可以帮助您进行故障排除。

如果由于致命的PHP错误而显示503错误,您还可以尝试启用PHP错误报告。只需将以下代码添加到抛出错误的文件中即可。通常,您可以在Google Chrome DevTools的控制台标签中缩小文件范围。

ini_set('display_errors',1); ini_set('display_startup_errors',1);使用error_reporting(E_ALL);

您可能还需要使用以下内容修改php.ini文件:

display_errors = on Summary

如果您很幸运,只有当您将网站置于维护模式时,才会显示503错误。但是,如果它没有出现警告,那么你将不得不卷起袖子进行一些故障排除。

要了解503错误的根本原因,您需要按照以下步骤进行修复:

  • 暂时停用WordPress插件。
  • 停用您的WordPress主题。
  • 禁用您的CDN。
  • 限制WordPress Heartbeat API。
  • 增加服务器资源。
  • 查看日志并启用WP_DEBUG。

你有没有遇到过WordPress中的503错误?在下面的评论部分与我们分享您的经验!