wordpress知识库
网站首页 > 知识库 > wordpress知识 >

修复wordpress中的503错误

2018/04/20

wordpress中的503错误是什么?

当您的Web服务器由于某种原因不可用时,会显示503服务不可用错误。不幸的是,该错误不会具体告诉您出了什么问题,这意味着修复错误可能需要一些时间。

根据托管设置和Web浏览器,您可能会看到此错误的以下情况之一:

  • 503服务暂时不可用
  • HTTP服务器错误503
  • HTTP错误503
  • 错误503服务不可用
  • 由于维护停机或容量问题,服务器暂时无法为您的请求提供服务。请稍后再试。

当出现503错误时,您的整个网站将不可用,包括wordpress管理员。 

是什么导致wordpress中的503错误?

503错误可能是由服务器维护、DDoS攻击、代码片段、wordpress插件或主题中的错误代码引起的;或服务器上的流量很大,特别是当您使用资源有限的共享主机时。

如果503错误是由维护、DDoS攻击或流量激增引起的,它可能会在短时间内自行解决。如果它是由一段错误的代码引起的,它可能会再次出现,直到您解决问题。

如何修复wordpress中的503错误

在开始实施以下步骤之前,需要检查几件事。

首先,您是否一直在您的网站上运行更新?当您的网站处于维护模式时,可能会显示503错误。等待几分钟以完成更新,然后刷新浏览器。

其次,与您的主机核实您的服务器是否没有中断,或者正在进行计划内维护。查看电子邮件收件箱,了解您是否收到了问题通知。

WP Engine服务状态页面。

如果您没有运行更新,并且您的主机没有指示其服务器有问题,您可以开始以下故障排除步骤。

停用插件

编码错误的插件可能是wordpress中503错误的根源,所以需要禁用所有插件。

由于无法访问wp-admin,因此需要使用FTP客户端访问plugins目录(或cPanel文件管理器等工具)。

使用FTP连接到您的主目录。主目录通常称为以下目录之一:

  • public_html
  • wwwroot
  • [html]
  • 网站的名称

在主目录中,导航到该目录并找到该目录。wp-contentplugins

Web服务器上的wordpress插件目录。

右键单击此目录,然后使用重命名功能将其重命名为。plugins_old

重命名plugins目录以测试wordpress中的503错误。

现在您已经更改了目录名称,您的所有插件都将被停用。检查您的网站,查看503服务不可用错误是否仍然存在。

如果错误消失了,很可能是其中的一个插件导致的503错误。

要确定有问题的插件,请按照下列步骤操作:

  1. 将plugins_old目录改回plugins。
  2. 导航到plugins文件夹。
  3. 从列表中的第一个插件开始,然后重命名插件文件夹,例如,将antispam-bee更改为antispam-bee-test。
  4. 检查您的网站是否存在503错误。如果出现,您就知道是哪个插件导致了错误。
测试各个插件以找出导致wordpress中503错误的插件。

现在,需要停用该插件并寻找替代方案。

切换到默认主题

503错误的另一个可能来源是您的主题。要测试这一点,您可以将您的网站切换到wordpress加载的默认主题之一,例如Twenty Twenty Three。

不能使用与插件相同的技巧并重命名主题文件夹。如果你这样做,wordpress会抛出一个错误,说.The theme directory "[theme-name]" does not exist

相反,您需要使用phpMyAdmin访问wordpress数据库,并更改那里的活动主题。

注意 – 我们假设您的网站上仍然安装了默认的Twenty Twenty-Three主题。如果您删除了默认主题,您可能需要先使用FTP安装它——您可以手动将主题文件夹上传到您网站的wp-content/themes文件夹

通过您的托管控制面板登录phpMyAdmin,然后查找表格。根据您的主机,它可能具有不同的前缀–例如。wp_optionswp_wpcz_options

单击搜索链接,然后在表格中搜索option_name字段中的单词。template

wp_options表格中搜索类似模板option_name。

你应该有一个结果。双击option_value(在此示例中为genesis)并将主题重命名为twentytwentythree。

选项名称模板的搜索结果。

完成后,它应该是什么样子:

将option_value重命名为twentytwentythree。

对option_name重复相同的步骤。stylesheet

现在您已经更新了活动主题,访问网站的前端,查看503服务不可用错误是否仍然存在。

如果错误消失,则很可能是主题问题所在。

如果可以选择永久更改主题,请随时这样做。否则,请联系您的主题提供商并向他们报告503错误。

最近可能有主题更新导致了错误,因此您可以恢复到主题的早期版本。

禁用内容分发网络(如果您使用的是内容分发网络)

如果未使用CDN,请跳过此步骤。如果你是,请继续阅读。

有时CDN可能是wordpress中503错误的根源。若要测试这一点,CDN应具有暂停服务的方法。在Cloudflare上,您可以在“概述”屏幕右侧的“快速操作”菜单的“高级操作”部分找到此选项(向下滚动以查看)。

暂停Cloudflare on Site以检查它是否导致wordpress中的503错误。

如果暂停CDN解决了问题,您可能不想长期禁用CDN,因此请联系您的提供商寻求帮助。

停用WORDPRESS REST API

wordpress REST API控制着wordpress上的几个基本功能。例如,以下操作受检测信号控制:

  • 自动保存文章
  • 锁定编辑器以防止两个用户同时编辑同一文章
  • 仪表盘通知

检测信号API将请求从客户端发送到服务器,并使用AJAX进行通信。使用的文件是/wp-admin/admin-ajax.php。这会导致对服务器的大量请求,如果您使用共享主机并且资源有限,这可能是一个问题。

要查看wordpress REST API是否导致wordpress中的503错误,您可以通过在活动主题的functions.php文件中添加一些代码来暂时禁用它。

使用FTP编辑器访问主题目录。右键单击您的functions.php文件进行编辑(您可能希望先进行备份)。

如何编辑主题的functions.php文件以检查心跳API是否导致wordpress中的503错误。

在初始代码后添加以下代码

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

保存对文件所做的更改,然后再次尝试访问您的网站,看看503错误是否仍然存在。如果它消失了,就是REST API导致的。

但是禁用REST API会停止许多有用的功能,因此最好限制REST API。您可以使用Heartbeat Control插件来执行此操作。先删除代码以禁用functions.php中的REST API。

启用WP_DEBUG模式

调试模式内置于wordpress中,作为排除错误的一种方式。默认情况下,它未启用,因此需要一些代码来激活它。

使用FTP客户端访问wp-config.php文件。编辑它并向其添加以下代码行:

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

保存并重新上传文件。

现在在wp-content目录中查找名为debug.log的文件。这将记录在您的站点上发现的任何错误。日志文件会告诉您哪个文件导致了每个错误,以及负责的代码行。debug.log文件不会提示导致wordpress中出现503错误的原因,但它会提供下一步该去哪里的线索。

还可以查找Web服务器的调试日志,通常在此处找到:

  • apache:/var/log/apache2/error.log
  • Nginx的: /var/log/nginx/error.log

如果需要,请与托管服务提供商联系,以获取有关解释日志文件的更多帮助。