如何修复 WordPress 500 内部服务器错误

我们大多数人,无论是开发人员、设计师还是最终用户,在我们的一生中都不得不忍受至少一次。 也就是说,获取内部服务器错误并尝试修复它的痛苦过程。 许多人不想知道更多——他们只想修复它。 但如果你不尝试至少去理解它,你注定会更频繁地遭受这种命运。 500 内部服务器错误非常重要,因为它会完全停止所有进程并可能导致整个站点崩溃。 因此,如果我们想要摆脱它,我们首先需要更好地理解它的含义。

在本文中,我将介绍此错误的含义、如何识别问题以及如何解决问题的基础知识。 但在开始之前,我想向您介绍存在的各种 http(站点)错误以及它们可能意味着什么。 如果你愿意,你可以跳到 如何修复您的 WordPress 500 错误.

常见的 HTTP 状态和错误代码

重要的是——我将解释这些错误的真正含义。 目前有一个状态列表和 HTTP 错误 可以访问以更好地解决问题。 这些错误通常分为类型。 因此,为了简而言之,我们将介绍您在使用 WordPress 网站时会发现的最重要的错误和信息状态代码。

100 倍响应(状态)

这种类型的响应是由网络服务器直接给出的。 根据您的托管公司,响应可以由 Apache、nginx 或公司使用的任何其他网络服务器提供。 这种类型的回应 与错误无关。 它们通常用于指示连接到位。 它们是连接的状态响应代码。

200x 响应(成功)

成功的人就是我所说的。 这种类型的响应总是表示 成功。 这意味着服务器已成功与您建立连接,请求的资源已正确提供或已建立代理连接。

最常见的成功代码被称为 200 好。 如果您使用的是 WordPress 速度测试工具,比如在 Pingdom 工具上,并且您正在尝试找出 FTTB(首次到字节),则可以看到这方面的示例。 200 OK 响应总是给予第一个请求。

300x 响应(重定向)

重定向的家伙。 如果给定链接进入重定向,则始终会引用这些代码。 300 状态代码表示重定向成功,并且, 不认为是错误。

假设您有一个 SSL (HTTPS) 站点并且您还可以直接访问 HTTP(非安全)并且您希望将所有人重定向到您站点的 HTTPS 版本。 您可以为所有来自 HTTP 的请求创建重定向以转到 HTTPS。 如果您不小心尝试通过 HTTP 进入您的站点,您的浏览器将收到一个 300 响应,指示重定向到 HTTPS 版本。

简单的 WooCommerce 技巧:针对缺货产品的 Yoast SEO 重定向

您可能熟悉的另一个常见示例是 SEO 的现场重定向。 也许您删除了旧帖子或页面。 借助插件,例如 酵母搜索引擎优化 您可以 301 将这些重定向到更新、更相关的页面。 或者,如果您正在进行更新并希望暂时将用户定向到其他页面,请使用 307 临时重定向。

400x 响应(客户端错误)

著名的客户端错误。 这些类型的错误涉及您的浏览器中的问题。 通常,它无法加载某个资产(最常见的是 404 错误)。 这些都是 不被认为是严重的错误代码。

如果您尝试访问站点上不存在的图像,可能会显示相同的错误。 例如,您可能希望使用 410 重定向告诉搜索引擎内容已被永久删除,或者如果您出于法律原因(例如 DMCA 请求)使页面不可用则使用 451。

500x 响应(服务器错误)

现在我们已经到达了我们的主角。 500 个错误。 如您所见,这些都是重要的错误,并且始终与服务器本身有关。 服务器错误很重要,因为它们可以有效地 碰撞 你的网页。 在这些错误中,最重要的是:

  • 503 服务不可用
  • 502 错误网关错误
  • 500 内部服务器错误

让我们按重要性顺序探索其中的 3 个。

503服务不可用

最不严重的是503服务不可用。 如果出现此错误,则表示网络服务器存在资源问题。 几乎所有的时间它都出现在 你的服务器超载了。 简而言之,如果您看到此错误,就知道 这是暂时的 它直接关系到 流量太大 这是 使 CPU 过载。 每当 CPU 和网络服务器本身因为已达到 100% 的 CPU 使用率而无法处理更多传入连接时,您将看到此错误弹出窗口。

您可以通过切换到更好的网络服务器(例如从 Apache 到 Nginx)或在您的站点上实施 WordPress 缓存插件来解决此问题。

502错误的网关

这就是我所说的错误配置错误。 这个错误不会无缘无故出现。 如果您遇到此错误,最可能的原因是 你做了某事,但你做错了。 当人们尝试调整 Apache 和 PHP 配置或尝试优化 nginx 时,通常会发生这种情况。 坏网关是一个几乎总是在 PHP FPM(快速进程管理器)失去连接时发生的错误。 要么是因为调整了错误的设置,要么是因为进程崩溃了。 这导致网络服务器响应 错误的网关。

修复此错误的最简单方法是仔细检查您的 PHP-FPM 配置,因为这是导致此错误的最可能原因。 这种情况在 Nginx 端比在 Apache 端更常见,并且几乎不会在 cPanel 或 Plesk 提供的托管服务上发生。 最后两个面板具有防止错误配置错误的保护措施。 但是,在管理您自己的 VPS 时,它确实经常发生。

寻求更多帮助? 按照我们的指南了解如何修复 502 错误网关错误。

500内部服务器错误

错误的大坏蛋。 500 内部服务器错误是所有错误中最严重的,主要是因为这是一个 一般错误。 如果您没有足够的知识来处理它,那将是一个真正的痛苦,因为它会使您的整个网站瘫痪。 502 错误网关错误也会使您的网站崩溃,但它更容易诊断和修复。 如前所述,它几乎总是与 FPM 配置相关。

500 内部服务器错误的原因及其修复方法

关于 500 错误,首先要了解的是,它可能是由许多不同的因素引起的,这些因素几乎总是与代码执行失败有关。 我不会尝试一次诊断所有问题,而是会根据问题类型和您正在做的事情给您一个错误列表。

  • 通过将旧站点迁移到较新的主机
  • apache 配置中的 .htaccess 错误
  • PHP代码执行错误

还有其他不太常见的情况会引发 500 内部服务器错误,但为了本文的简单性和可用性,我将重点关注这三种情况。

1. 将旧站点迁移到新主机

有多种方式可以显示此错误,但几乎总是与绑定到您的网络服务器的 PHP 版本有关。 如果当前站点或插件不支持当前版本,较新的 PHP 版本会立即生成 500 内部服务器错误。

此错误很常见,例如,当您将站点从具有较旧 PHP 版本的普通主机迁移到仅接受较新版本(7.0 及更高版本)的较新主机时。 如果您的网站最近没有更新,则可能是旧插件导致了问题。 我称之为“迁移内部服务器错误”,因为它几乎总是在您迁移站点时发生。

解决方案

当您如此努力地将您的 WordPress 网站迁移到新主机时,解决这个可怕错误的最佳方法是制作您的完整副本 插件和您网站的主题。 完成后,请 删除所有插件 从您的网站,然后重试。 如果错误消失,几乎可以肯定错误是由您主机上的较新版本的 PHP 生成的,它只是简单地拒绝在您的旧插件上执行代码。 通过一次重新上传一个插件,您可以轻松找出导致问题的插件。

将在 PHP 5.4 和 5.6 上运行的旧站点迁移到使用 PHP 7.0、7.1 或 7.2 的较新主机时,几乎总是会出现此错误。

同样的事情适用于你的主题。 由于主题可以并且确实在 functions.php、single 和 page.php 中实现了额外的 PHP 代码 文件。 一旦迁移到使用较新版本的 PHP 的主机,没有更新的旧主题很可能会破坏您的站点,这种情况很不幸,因为解决此问题的唯一方法是更改​​主题并重建您的站点。 这是最坏的情况。

  如何在 WordPress 中创建动态滑块

2..htaccess Apache配置错误

假设您正在配置一个插件,突然一切都崩溃了。 如果您在配置时遇到 500 内部服务器错误,例如缓存插件或任何与优化相关的插件,您需要检查插件是否向您的 .htaccess 文件添加了额外的代码。

由于可以修改apache 实时 通过在 .htaccess 文件(几乎总是隐藏的)中配置功能,错误的配置可能会破坏您的站点。

解决方案

修复它的方法是通过 FTP 访问您的站点并修改您的 .htaccess 文件或直接编辑,例如使用 cPanel 或 Plesk 上的文件浏览器。

如果您不知道如何恢复插件所做的工作并且您需要重新启动您的网站,请将现有内容复制为文本文件。 将其保存为备份。 然后用下面的代码替换整个.htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

这是 默认 WordPress .htaccess 文件。 它应该适用于任何网站。 所以,如果你很绝望,不知道要删除哪一部分,只需删除所有内容并粘贴此代码。它会立即拯救你。 您可以稍后删除该插件或尝试重新配置它。 您现在知道了一种避免这种灾难性错误的方法。 至少如果它与 .htaccess 相关。

如果您不知道它是否与 .htaccess 相关,或者此错误在您未接触任何插件的情况下开始出现,请谨慎行事。 只需复制 .htaccess 的内容并复制上面的代码即可尝试诊断。 如果这不能解决问题,请保持 .htaccess 不变,然后尝试下一个建议。

3.PHP代码执行错误

这些类型的错误比您想象的更常见,如果插件正在执行无效代码,它们通常会发生。 执行无效代码的最常见方式是当您尝试执行已弃用的指令时。 也许您正在尝试运行一个旧插件,该插件仅设计用于 PHP 5.4 或 5.6 以及 PHP 7.0 或更新版本。 弃用和无效的功能 将创建一个只能由以下人员诊断的内部服务器错误 启用 WP 调试模式。

启用 wp_debug

WordPress 调试模式将为您提供有关引发停止执行的错误的详细信息。 我们启用它的方法是将值从 “假”变“真” 在文件内的 wp_debug 上 wp-config.php 在您网站的根文件夹中。

如果您使用的是 Plesk 或 cPanel,您只需使用文件资源管理器更改该值并编辑 wp-config.php. 你也可以关注这个 调试指南 通过 Blogvault 获取更详细的步骤。

编辑文件后,您将能够看到正在生成的导致执行停止的实际错误。 该错误还将说明发生这种情况的路径和文件,因此很容易猜出是什么插件 造成了。 经过 禁用它 我们可以跳过错误,稍后根据情况更新插件或删除它。

解决方案

绝大多数 500 内部服务器错误实例涉及 较旧的主题版本或插件. 通过将您的主题切换为任何标准 WP 主题,您将能够重新获得对您网站的访问权限。 禁用冲突的插件也将返回您对仪表板的访问权限。 如果你碰巧遇到你的主题导致网站崩溃的情况,最好的解决方法是从主题文件夹中创建一个所述主题的 zip 文件 wp-内容/主题/你的主题 然后将其从您的站点中删除。 这将消除错误,以便您可以重新访问您的站点。 然后您可以重新上传并更新它而无需激活它。 你可以用插件做同样的事情。

500 个内部服务器错误的最常见情况 可以通过更新修复。 如果上述插件/主题没有可用的更新,您可以尝试切换到旧的 PHP 版本。 但要知道这是一个短暂的解决方法。 较新版本的 PHP 变得稳定,而较旧版本会定期弃用。 迟早你的网站 肯定会停止工作。 最好的方法始终是更新或删除/替换有问题的插件。

永远记住,预防和更新比以后尝试进行损害控制要好。

总结我们的 WordPress 500 内部服务器错误指南

WordPress 500 内部服务器错误可能是一个真正的痛苦。 但在大多数情况下,只需删除/更新站点的冲突部分,即可轻松诊断和修复它们。 尽管在某些情况下这些错误会超出规范(例如当您正在开发插件时),但这超出了本文的目的。

对于绝大多数人来说,遵循上述建议应该可以解决您的问题。 请记住,wp-debug 是您最好的朋友,请始终仔细执行这些步骤。 您将立即使您的网站恢复在线。

还有其他问题吗? 或者处理 WordPress 500 内部服务器错误的技巧? 让我知道!

类似文章