如何修复WordPress 503服务不可用中HTTP服务不可用的问题
错误类型: HTTP错误 错误名称: HTTP服务不可用 英文名称: HTTP Error 503 错误描述: 遇到503错误时,表示相关服务器不可用。 这可能是因为服务器繁忙了,或者它处于维护状态。 与其他类似的错误代码不同,503表示您的网站已联机并正在运行,但目前无法访问。 错误变体: 503 Service Unavailable503 Service Temporarily UnavailableHTTP Server Error 503Error 503 Service Unavailable 更多信息
WordPress网站URL访问遇到错误是站长们很头疼的事情。网上一些常规报错可以找到相应的原因和解决方法。可惜503服务不可用让人看着有点迷茫,又不会反馈太多信息,让很多站长无从下手。
这篇文章将有助于理解WordPress中503服务不可用的最常见原因。之后,在排除错误时,您需要有条不紊地执行几个步骤来找到根本原因。
在本文中,我们将介绍什么是503服务不可用,以及它通常是如何显示的。然后,我们将通过六个步骤来排除故障。
关于503错误?
当遇到503服务不可用时,表示相关服务器不可用。这可能是因为服务器正忙,或者正在维护中。与其他类似的错误代码不同,503表示您的网站在线并正在运行,但目前无法访问。
令人担忧的是,这个特别的错误,几乎没有给你任何信息。在大多数情况下,它只显示消息“服务暂时不可用”。就像打电话给餐厅,他们只是告诉你目前不接客,却拒绝告诉你什么时候再接单。
如果你幸运的话,503服务不可用代码是因为你的WordPress网站正在维护中。当您更新插件、主题或核心软件时,WordPress会在短时间内将您的网站设置为维护模式:
WordPress维护模式
通常,这个超时时间很短,没有人会注意到。但是503服务不可用可能还会有其他情况,你会面临更大的问题去处理。毕竟,用户不仅无法访问你的网站,你也将无法访问WordPress管理后台。这意味着你不能以任何方式更新你的网站,为了排除故障,你需要深入了解它的文件。
503服务不可用变体
503服务不可用可以以多种方式显示。但是,几乎每个变体都附有503代码,因此很容易识别。
根据您的服务器配置和浏览器,以下是您可能会遇到的一些变化:
503服务不可用
503服务暂时不可用
HTTP服务器错误503
HTTP错误503
错误503服务不可用
无论遇到什么样的错误码,都意味着需要在对用户造成负面影响之前迅速处理。
如何修复WordPress的503服务不可用
由于您通常无法确定在任何给定情况下503服务不可用的原因,因此您需要一步一步地排除故障。以下六个步骤涵盖了解决不同错误原因的解决方案。
完成每个步骤后,请花点时间返回您的网站,查看503服务不可用是否消失。如果是,你已经成功解决了问题。如果没有,请继续该过程的下一步。
1.暂时禁用WordPress插件
WordPress中503服务不可用的一个最常见的原因是插件兼容性。要确定是否发生了这种情况,您需要禁用所有网站的插件。
因为503服务不可用阻止你访问WordPress管理后台,你需要使用FTP客户端来执行这个步骤。如果没有安装相应的工具,我们推荐使用FileZilla。
当FTP客户端准备好了,通过它连接到你的网站并导航到你的WordPress根文件夹。如果找不到,一般叫public_html,html,public,www或者你的网站名称。一般路径是/home/wwwroot/www . your domain . com/WP-content,如下图所示:
WordPress插件FTP目录
打开文件夹,然后导航到wp-content目录。在里面,你会看到一个名为plugins的文件夹,它包含了你的站点上安装的每个插件(活动的和不活动的)的不同子目录。
你现在要做的就是右键单击插件文件夹,并将其重命名为其他名称。我们建议使用plugins.old或plugins.deactivated,以便于将来识别。
WordPress插件文件夹重命名
WordPress现在找不到任何插件。当这种情况发生时,它会自动禁用这些插件。
现在,试着进入你的WordPress仪表盘。如果503服务不可用消失了,那么您可以假设其中一个插件是罪魁祸首。你要做的就是找出有问题的插件。
回到wp-content目录,正确地重命名原始插件文件夹。然后,您需要逐个禁用每个插件,直到找到罪魁祸首。
为此,请打开wp-content/plugins目录。在里面,你会发现每个插件都有一个文件夹。您要遵循的流程与前面的步骤大致相同:
从第一个文件夹开始,根据自己的喜好将其重命名。
检查您的网站,看看错误是否消失。
如果没有,请将上一步中的插件文件夹恢复为其原始名称。
转到列表中的下一个插件,重复上述步骤。
如果你有很多插件,这个过程可能需要一段时间,但是依次检查每个插件是必要的。如果您在任何时候发现导致错误的插件,您可以卸载它或用其他工具替换它。
如果您无法通过完成这些步骤找到解决方案,您可以继续下一个故障诊断步骤。
2.停用WordPress主题
现在你已经排除了插件出现在503服务不可用的原因,是时候对你的WordPress当前使用的主题做同样的事情了。事实上,你的主题也可能导致兼容性问题。
可惜过程和上面不一样。如果只是重命名主题文件夹,WordPress不会恢复到默认主题,最终会出现“主题目录”“主题名称不存在”等错误。或者,如果您尝试重命名整个主题目录文件夹,最终会出现“错误:主题目录是空或不存在。请检查您的安装。
主题目录中没有错误提示。
因此,您需要通过登录phpMyAdmin来访问您的WordPress数据库。
单击wp_options表,然后单击搜索选项卡。您需要在“选项名称”下搜索模板。
数据库的Wp_options表
在“option_value”列下,您将看到主题的当前名称。将其更改为默认主题之一,如“twenty 19”。
Wp_options主题名称
再次检查您的网站,看看错误是否已被修复。如果修复了,说明你的WordPress主题有问题。您可能想尝试重新安装它或恢复到最新的备份。
3.暂时禁用CDN(内容分发网络)
不同的CDN服务商,这个区块的流程可能不一样,取决于你用的CDN。众所周知,Cloudflare会导致503服务不可用。如果您找不到暂停选项的选项,请检查您的服务知识库,其中通常包含详细的说明。
如果你不使用CDN或者发现暂停服务对你的问题没有帮助,那么我们需要继续尝试其他方法。请记住在继续之前重新启用您的CDN。
4.限制WordPress的“心跳”API
WordPress Heartbeat是WordPress内置的一个API。该平台用于自动保存内容,显示插件通知,提醒你其他人正在处理你试图访问的帖子,等等。
就像有规律的心跳一样,API在后台高频工作,不会漏掉什么。正如您所料,这个API将占用服务器资源。通常,这不是问题,但在某些情况下,如果您的服务器无法处理负载,可能会导致503服务不可用。
确定Heartbeat API是否是问题核心的最快方法是暂时禁用它。要做到这一点,请再次通过FTP连接到你的WordPress网站,然后打开当前的主题文件夹,在下面的位置寻找functions.php文件:
带有WordPress主题的Functions.php文件
右键单击该文件,然后选择“查看/编辑”选项,这将使用本地文本编辑器打开它。打开后,您需要添加以下代码片段:
add_action( ‘init’, ‘stop_heartbeat’, 1 );function stop_heartbeat() {wp_deregister_script(‘heartbeat’);}
这三行代码告诉WordPress禁用Heartbeat API。保存对functions.php文件的更改,关闭它,然后再次尝试访问您的网站。
如果503服务不可用消失,那么这个API就是问题所在。然而,完全禁用它将使WordPress的许多有用的功能不可用。相反,我们建议您降低WordPress的心跳频率,以避免引起问题。
最简单的方法是安装心跳控制插件。启用插件并导航至设置>心跳控制。寻找“修改心跳”选项,并将频率降低到尽可能多的数字:
心跳控制插件频率设置
保存对设置的更改,并将其返回到functions.php文件。为了使上述更改生效,您需要删除在以前的functions.php文件中添加的代码,并将更改保存到文件中。
在这个阶段,如果Heartbeat API有问题,那么您应该已经解决了503服务不可用。如果没有,那么继续尝试不同的方法。
5.增加服务器资源
如果到目前为止所有的修复仍然无法解决503服务不可用,那么问题很可能是由于服务器资源不足。也就是说,你需要升级你的服务器,看看它是否能解决这个问题。如果你使用廉价的WordPress主机,它们往往会限制资源并导致503错误。
然而,升级服务器是一项重大决策。明智的做法是首先联系您的服务器提供商,并与他们讨论不可用的503服务以及迄今为止您尝试解决该问题的步骤。支持团队应该能够帮助您解决问题,并建议您是否需要升级服务器。
6.检查日志并打开WP_DEBUG
您还应该利用错误日志。如果你的网站服务器是LNMP搭建的,可以通过网站服务器/home/wwwlogs路径快速找到网站访问错误日志(一般以nginx_error.log或error.log命名)。这可以帮助您快速缩小问题范围,尤其是如果问题是由您网站上的插件产生的。
检查错误日志中的503服务不可用。
如果您的主机没有日志记录工具,您也可以将以下代码添加到wp-config.php文件中以启用日志记录:
define( ‘WP_DEBUG’, true );define( ‘WP_DEBUG_LOG’, true );define( ‘WP_DEBUG_DISPLAY’, false );
调试日志通常位于/wp-content目录中。在其中,找到名为debug.log的文件并打开它。
还有一些服务器提供商可能有一个名为“logs”的专用文件夹。
WordPress错误日志文件夹(SFTP)
看调试日志可能会让很多站长望而却步,但是读起来并没有你想象的那么难。简而言之,日志包含了你的网站上按时间顺序弹出的每一个错误。它显示了导致每个错误的文件,以及涉及的具体代码行。
注意:您不会在日志中找到对不可用的503服务的直接引用。即便如此,如果所有其他方法都失败了,它可以通过向您显示导致问题的文件来指出正确的方向。这样你就知道下一步重点在哪里了。正如我们在上一步中提到的,如果您需要进一步的帮助来解决这个错误,现在是时候联系您的服务器提供商,请他们帮助解决这个问题。或者找个懂服务器运维的朋友。
您还可以检查Apache和Nginx中的日志文件,它们通常位于以下位置:
Apache:/var/log/Apache 2/error . log
Nginx: /var/log/nginx/error.log
如果503服务不可用是由致命的PHP错误引起的,您也可以尝试启用PHP错误报告。只需将以下代码添加到错误文件中。一般来说,你可以在谷歌Chrome DevTools的控制台标签中缩小文件范围。
ini_set(‘display_errors’, 1);ini_set(‘display_startup_errors’, 1);error_reporting(E_ALL);
您可能还需要修改php.ini文件,如下所示:
display_errors = on
总结
通常,只有当您将网站置于维护模式时,才会显示503服务不可用。但是,如果不是这个原因,那么你就要卷起袖子进行故障排除了。
要了解503服务不可用的根本原因,您需要按照以下步骤进行修复:
暂时禁用WordPress插件。
停用您正在使用的WordPress主题。
禁用网站的CDN服务。
限制WordPress的心跳API。
增加服务器资源。
检查日志并启用WP_DEBUG。
你遇到过WordPress中503服务不可用的情况吗?在下面留下评论和我们分享你的经验吧!