如何修复WordPress网站的500内部服务器错误
在信息化的网络世界,对于我们大多数人,无论是开发人员,设计师还是用户,都会碰到过网站打不开的情况。对WordPress网站所有者来说,WordPress错误不管大小,都是不利于网站优化的。而500内部服务器错误非常严重,它会完全停止所有进程,并导致整个站点瘫痪。因此,如果我们想解决它,首先要更了解它的含义。
在本文中,我将介绍如何识别问题以及如何解决该问题的基础知识。在开始之前,向您介绍各种存在的站点错误以及它们可能意味着什么。
常见的HTTP状态和错误代码
当前,存在HTTP状态和错误列表,可以访问它们以更好地排除故障。这些错误通常分为几种类型。因此,为简化起见,我们将介绍您在WordPress网站会发现的最重要的错误和信息状态代码。
100x响应(状态)
这种响应类型是由网络服务器直接给出的。根据您的Web服务器,响应可以由Apache,nginx或公司其他Web服务器给出,这种类型的响应与错误无关。
它们通常用于指示已建立连接。它们是连接的状态响应代码。
100 Continue:
此临时响应表示到目前为止一切正常,客户端应继续该请求,如果请求已完成,则忽略该响应。
101 Switching Protocol:
发送此代码是为了响应Upgrade来自客户端的请求标头,并指示服务器要切换到的协议。
102 Processing(WebDAV):
此代码表明服务器已接收并正在处理请求,但是尚无响应。
103 Early Hints
此状态代码主要用于Link标头,以便用户代理在服务器准备响应时开始预加载资源。
200x响应(成功)
此类响应始终表示成功,这意味着服务器已成功与您建立连接,已正确提供了所要求的资源或已建立了代理连接。
最常见的成功代码称为200 OK。如果您使用的是WordPress速度测试工具,可以在Pingdom Tools上查看相关示例。
300x响应(重定向)
如果给定的链接正在重定向,则始终引用这些代码。300状态码表示重定向成功,不视为错误。
假设您有一个SSL(HTTPS)站点,并且还可以直接访问HTTP(非安全),并且想将所有人重定向到站点的HTTPS版本。您可以为所有来自HTTP的请求创建重定向到HTTPS。如果您不小心尝试通过HTTP进入站点,则浏览器将收到300响应,指示已重定向到HTTPS版本。
您可能熟悉的常见示例是SEO的重定向,也许您已经删除了旧帖子或页面,借助Yoast SEO插件,您可以301将其重定向到更新的,更相关的页面。或使用307临时重定向(如果您正在进行更新)并将用户引导到其他页面上。
400x响应(客户端错误)
这些类型的错误涉及您的浏览器中的问题。通常,它无法加载某些资源(最常见的是404错误),这些是不被认为是严重的错误代码。
如果您尝试访问站点上不存在的图像,可能会显示相同的错误。例如,您可能想使用410重定向来告诉搜索引擎该内容已被永久删除,如果您是出于法律原因(例如DMCA请求)使某个页面不可用,则可以使用451重定向。
500x响应(服务器错误)
500服务器错误,这些重要的错误始终与服务器本身有关。服务器错误很重要,它们可以使您的网站崩溃。在这些错误中,最重要的是:
- 503服务不可用 ( 503 Service unavailable )
- 502错误的网关错误 ( 502 bad gateway error )
- 500内部服务器错误 ( 500 internal server error )
503服务不可用 503 Service unavailable
最不严重的是503 Service unavailable服务不可用。如果出现此错误,则说明您在Web服务器上存在资源问题。简而言之,看到此错误,需明白该错误是暂时的,并且与流量过多直接相关,这会使CPU过载。每当CPU和Web服务器本身由于达到100%的CPU使用率而无法处理更多的传入连接时,您都会看到此错误弹出窗口。
您可以通过切换到更好的Web服务器(例如,从Apache到Nginx)或在您的站点上实现WordPress缓存插件来解决此问题。
502错误的网关 502 bad gateway error
如果您遇到此错误,则最有可能的原因是您做了某件事而做错了。通常当人们尝试调整Apache和PHP配置或尝试优化nginx时,就会发生这种情况。502 bad gateway error错误是网关的一个错误,几乎总是在PHP FPM(快速过程管理器)失去连接时发生。可能是因为调整了错误的设置,或者是因为进程崩溃了。这导致Web服务器使用错误的网关进行响应。
解决此错误的最简单方法是仔细检查您的PHP-FPM配置,因为这是导致此错误的最可能原因。
500内部服务器错误 500 internal server error
500个内部服务器错误在所有中错误中更为严重,因为这样的错误,如果您没有足够的知识来处理它,那将非常痛苦,因为它会使您的整个网站瘫痪。
如何修复WordPress网站的500内部服务器错误
500错误按照问题类型和工作方式,为您提供错误列表。
- 通过将较旧的站点迁移到较新的主机
- apache配置中的.htaccess中存在错误
- PHP代码执行中的错误
还有其他一些不太常见的情况,它们可能会引发500个内部服务器错误,但是为了本文的简单性和可用性,我将重点介绍这三种情况。
1、将较旧的站点迁移到较新的主机
有几种方法可以显示此错误,但是几乎总是与绑定到您的Web服务器的PHP版本有关。如果当前站点或插件不支持当前版本,则较新的PHP版本会立即产生500个内部服务器错误。
例如,当您将站点从具有较旧PHP版本的中等托管迁移到仅接受较新版本(7.0及更高版本)的较新托管时,此错误就是经典错误。如果您的站点最近未更新,则可能是旧的插件引起了问题。我称此为“迁移内部服务器错误”,因为在您迁移网站时几乎总是会发生此错误。
解决方案
当您尝试将WordPress网站迁移到新主机时,解决此错误的最佳方法是制作插件和网站主题的完整副本。完成此操作后,从您的站点中删除所有插件,然后重试。如果错误消失了,则该错误是由主机上的较新版本的PHP生成的,只是拒绝在您的旧插件上执行代码。通过一次重新上传一个插件,您可以轻松地找出导致此问题的插件。
同样的事情也适用于您的主题。由于主题可以并且确实在functions.php,single和page.php文件中实现了额外的PHP代码。
一旦迁移到使用较新版本的PHP的主机上,没有更新的较旧主题很可能会破坏您的网站,这种情况很不幸,因为解决此问题的唯一方法是更改主题并重建您的网站。这是最坏的情况。
关于迁移网站,可参考Duplicator使用教程-备份导入WordPress网站完整数据
2、.htaccess Apache配置错误
如果在配置时遇到500内部服务器错误,例如缓存插件或与SEO优化插件相关的任何插件,则需要检查该插件是否在.htaccess文件中添加了额外的代码。
由于可以通过配置.htaccess文件中的功能(几乎总是隐藏的)来实时修改apache,因此错误的配置可能会破坏您的站点。
解决方案
修复它的方法是通过FTP访问您的站点并修改.htaccess文件,或者通过直接编辑。
如果您不知道如何还原插件所做的事情,并且需要再次创建站点,请复制现有内容作为文本文件。将此保存为备份。然后,将整个.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
如果您不知道它是否与.htaccess文件有关,或者在未触摸任何插件的情况下开始显示此错误,请放心使用。只需复制.htaccess的内容并复制上面的代码即可尝试进行诊断。如果仍然不能解决问题,请保留.htaccess不变,然后尝试下一个建议。
3、PHP代码执行错误
这类错误比您想象的要常见,并且通常在插件执行无效代码时发生。也许您正在尝试运行一个旧插件,该插件仅设计为与PHP 7.0或更高版本一起使用,最高支持PHP 5.4或5.6。不推荐使用的功能和无效功能将创建内部服务器错误,只能通过启用WP Debug模式来诊断。
WordPress调试模式将为您提供有关停止执行所引发的错误的大量详细信息。我们启用它的方法是将站点根文件夹中wp-config.php文件中wp_debug的值从“false”更改为“true”。
如果您使用的是Plesk或cPanel,则可以通过使用文件资源管理器简单地更改该值并编辑wp-config.php来实现。
编辑完文件后,您将能够看到正在生成的实际错误,该错误停止了执行。该错误还将说明发生此错误的路径和文件,因此很容易猜测是什么插件引起了该错误。通过禁用它,我们可以跳过此错误,然后根据情况更新或删除插件。
解决方案
500内部服务器错误的绝大多数实例都涉及较旧的主题版本或插件。通过将主题切换为任何标准的WP主题,您将可以重新获得对网站的访问权限。禁用有冲突的插件也将返回您对仪表板的访问权限。
如果您碰巧遇到的情况是您的主题是造成网站中断的原因,则解决该问题的最佳方法是从主题文件夹wp-content/themes/yourtheme中创建该主题的zip文件,然后将其从中删除您的网站。这将消除该错误,以便您可以重新访问您的网站。然后,您可以重新上传并更新它,而无需激活它。您可以使用插件执行相同的操作。
总结
WordPress 500内部服务器错误在大多数情况下,只需删除/更新站点中冲突的部分,就可以轻松地诊断和修复它们。尽管在某些情况下这些错误会超出正常范围(例如,在开发插件时)。
对于绝大多数人来说,遵循上述建议应该可以解决您的问题。请记住,wp-debug是您最好的朋友。
Claude、Netflix、Midjourney、ChatGPT Plus、PS、Disney、Youtube、Office 365、多邻国Plus账号购买,ChatGPT API购买,优惠码XDBK,用户购买的时候输入优惠码可以打95折