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

温馨提示:注册会员付费购买资源可永久免费下载更新版本

错误类型: HTTP错误 错误名称: 500内部服务器错误 英文名称: 500 Internal Server Error 错误描述: WordPress中的500内部服务器错误可能由多种原因引起。如果您遇到这种情况,很有可能是以下一个(或多个)因素导致了问题。

可怕的500内部服务器错误(500内部服务器错误)。它似乎总是在最不合适的时候出现,你突然想办法让你的WordPress网站重新上线。相信我们,我们都经历过。您可能已经看到的具有类似行为的其他错误包括建立数据库连接的错误和可怕的死亡白屏。但是从你的网站瘫痪的那一刻起,你就会失去访客和客户。更不用说这对你的品牌很不利。

今天,我们将深入探讨500个内部服务器错误,并通过一些方法指导您快速恢复网站在线。阅读下面的更多信息,找出导致此错误的原因,以及您可以做些什么来防止它在未来发生。

500内部服务器错误是什么?

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

500内部服务器错误(最常见的原因):

WordPress中的500内部服务器错误可能是由多种原因造成的。如果您遇到这种情况,很可能是以下一个(或多个)因素导致了该问题:

浏览器缓存。

数据库登录凭据不正确。

数据库损坏。

WordPress安装中的文件已损坏。

您的数据库服务器有问题。

损坏的WordPress核心文件。

第三方插件和主题的问题。

PHP超时或第三方插件的致命PHP错误。

错误的文件和文件夹权限。

服务器上耗尽的PHP内存限制。

一个腐败的。htaccess文件。

和CGI Perl脚本错误。

500内部服务器错误是什么?

IETF将500个内部服务器错误定义为:

状态代码50(内部服务器错误)表示服务器遇到意外情况,无法完成请求。

当您访问网站时,您的浏览器会向托管该网站的服务器发送请求。服务器接受这个请求,处理它,然后发送回请求的资源(PHP、HTML、CSS等。)以及HTTP头。HTTP还包括他们所谓的HTTP状态代码。状态代码是通知您请求状态的一种方式。可能是200状态码,表示“一切正常”,也可能是500状态码,表示有问题。

有许多不同类型的500状态错误代码(501、502、503、504/500等。),所有的意思都不一样。在这种情况下,500内部服务器错误表示服务器遇到了阻止其完成请求的意外情况(RFC7231,第6.6.1节)。

WordPress网站遇到500内部服务器错误

00内部服务器错误变体

由于Web服务器、操作系统和浏览器的不同,500内部服务器错误可能会以许多不同的方式出现。但是他们都在传达同样的东西。以下只是您可能在网上看到的许多不同变体中的几个:

” 500内部服务器错误”

” HTTP 500 “

“内部服务器错误”

” HTTP 500内部服务器错误”

“500错误”

” HTTP错误500 “

“500–内部服务器错误”

“500内部服务器错误。很抱歉出现了问题。”

“500.这是一个错误。有一个错误。请稍后再试。我们就知道这么多。”

“网站无法显示页面HTTP 500 . “

“目前无法处理这个请求。HTTP错误500。

您可能还会看到以下附加消息:

服务器遇到内部错误或配置错误,无法完成您的请求。请联系服务器管理员[email protected],告诉他们错误发生的时间,以及您可能采取的任何可能导致错误的措施。有关此错误的更多信息可能会在服务器错误日志中提供。

内部服务器错误

其他时候,你可能只会看到空白屏。在处理500内部服务器错误时,这在Firefox、Safari等浏览器中其实很常见。

Firefox中的500内部服务器错误

大品牌甚至可能有自己定制的500内部服务器错误信息,比如Airbnb的这条。

Airbnb 500内部服务器错误

这是readme的另一个creative 500服务器错误示例。

readme网站500的内部服务器出错

即使是强大的YouTube也无法避免500个内部服务器错误。

YouTube上的500内部服务器错误

如果是IIS 7.0 (Windows)或更高版本的服务器,它们有额外的HTTP状态代码来更准确地指出500错误的原因:

50.0–出现模块或ISAPI错误。

50.11–web服务器上的应用程序正在关闭。

50.12–应用程序正忙于在Web服务器上重新启动。

00.13–网络服务器太忙。

50.15–不允许直接请求global.asax。

50.19–无效的配置数据。

00.21–模块未被识别。

00.22–ASP.NET HTTP模块配置不适用于托管管道模式。

00.23–ASP.NET httphandlers配置不适用于托管管道模式。

00.24–ASP.NET模拟配置不适用于管理管道模式。

00.50–在RQ_BEGIN_REQUEST通知处理期间出现重写错误。出现配置或入站规则执行错误。

00.51–在GL_PRE_BEGIN_REQUEST通知处理过程中出现重写错误。出现全局配置或全局规则执行错误。

00.52–在RQ_SEND_RESPONSE通知处理过程中出现重写错误。执行出站规则。

00.53–在RQ_RELEASE_REQUEST_STATE通知处理期间出现重写错误。出现出站规则执行错误。此规则被配置为在输出用户缓存更新之前执行。00.100–内部ASP错误。

50错误对SEO的影响

与503服务不可用不同,后者用于WordPress维护模式,并告诉谷歌稍后检查。如果不立即修复,500错误可能会对SEO产生负面影响。如果你的网站只关闭了10分钟就被抓取了很多次,爬虫只会从缓存中获取页面。或者谷歌甚至没有机会在备份之前重新获取它。在这种情况下,你一点问题都没有。

但如果网站关闭时间较长,比如超过6个小时,那么谷歌可能会将500错误视为需要解决的网站级问题。这可能会影响你的排名。如果你担心重复500个错误,你应该找出为什么会发生这些错误。以下解决方案会有所帮助。

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

当你在WordPress网站上看到500内部服务器错误,你应该从哪里开始排除故障?有时你甚至不知道从哪里开始。通常500个错误是在服务器本身,但是根据我们的经验,这些错误是由两个原因造成的。第一个是用户错误(客户端问题),第二个是服务器问题。因此,我们将深入探讨这两个问题。

检查这些常见原因和修复500个内部服务器错误的方法,并立即恢复运行。

1.尝试重新加载页面。

这对某些人来说似乎有点显而易见,但当你遇到500内部服务器错误时,你应该尝试的一个最简单也是最重要的事情是等待一分钟左右,然后重新加载页面(F5或Ctrl+F5)。可能是主机或者服务器过载了,站点会马上恢复。在等待期间,您也可以快速尝试不同的浏览器来解决问题。

另一件事你可以做的是粘贴网站到downforeveryoneorjustme.com。网站会告诉你网站是否已经关闭,或者是否有问题给你。像这样的工具检查从服务器返回的HTTP状态代码。如果不是200“一切正常”,那么就会返回向下的指示。

Downforeveryoneorjustme网站

我们还注意到,有时这种情况会在你更新WordPress网站上的插件或主题后立即发生。这通常发生在没有正确设置的主机上。发生的情况是,他们稍后会遇到一个临时超时。然而,事情通常会在几秒钟内自行解决,所以你只需要刷新。

2.清除浏览器缓存

在深入调试站点之前,清除浏览器缓存始终是另一个很好的故障排除步骤。以下是如何在各种浏览器中清除缓存的说明:

如何强制刷新所有浏览器的单个页面

如何清除谷歌Chrome的浏览器缓存

如何清除Mozilla Firefox的浏览器缓存

如何清除Safari的浏览器缓存

如何清除Internet Explorer的浏览器缓存

如何清除微软Edge的浏览器缓存

如何清除Opera的浏览器缓存

3.检查您的服务器日志。

您还应该利用您的错误日志。如果您是Pagoda Panel的客户,您可以在Pagoda Bread的仪表板安全管理中轻松检查网络日志管理中的错误。这可以帮助您快速缩小问题范围,尤其是如果问题是由您网站上的插件引起的。

检查错误日志中的500个内部服务器错误。

如果你的主机没有日志记录工具,你也可以通过添加下面的代码到wp-config.php文件来启用日志记录来启用WordPress调试模式:

define( ‘WP_DEBUG’, true );define( ‘WP_DEBUG_LOG’, true );define( ‘WP_DEBUG_DISPLAY’, false );

该日志通常位于/wp-content目录中。

WordPress错误日志文件夹(SFTP)

您还可以检查Apache和Nginx中的日志文件,它们通常位于以下位置:

Apache:/var/log/Apache 2/error . log

Nginx: /var/log/nginx/error.log

如果由于致命的PHP错误而显示500错误,您也可以尝试启用PHP错误报告。只需将以下代码添加到导致错误的文件中。一般来说,你可以在谷歌Chrome DevTools的控制台标签页缩小文件范围。

ini_set(‘display_errors’, 1);ini_set(‘display_startup_errors’, 1);error_reporting(E_ALL);

您可能还需要修改php.ini文件,如下所示:

display_errors = on

4.建立数据库连接时出错。

00内部服务器错误也可能是由数据库连接错误引起的。根据浏览器的不同,您可能会看到不同的错误。但是无论在你的服务器日志中,都会生成一个500的HTTP状态码。

下面是一个类似浏览器的“建立数据库连接出错”消息的例子。整个页面是空白色的,因为无法检索数据来呈现页面,因为连接工作不正常。这不仅会破坏你网站的前端,还会阻止你访问WordPress仪表盘。

数据库连接错误示例

那么究竟为什么会发生这种情况呢?嗯,这里有一些常见的原因。

最常见的问题是您的数据库登录凭据不正确。你的WordPress站点使用单独的登录信息来连接它的MySQL数据库。

您的WordPress数据库已损坏。有这么多带主题的活动部件,插件和用户不断地删除和安装它们,有时数据库会被损坏。这可能是由于表丢失或个别损坏,或者某些信息可能被意外删除。

您的WordPress安装中可能有损坏的文件。有时这甚至是因为黑客而发生的。

您的数据库服务器有问题。Web端的很多东西可能都是错的,比如数据库因为流量高峰而过载,或者因为并发连接太多而没有反应。这对于共享主机来说实际上很常见,因为它们为同一服务器上的许多用户使用相同的资源。

查看我们关于如何修复WordPress网站建立数据库连接错误的深入文章。

5.检查你的插件和主题

第三方插件和主题很容易导致500内部服务器错误。很多时候,在安装新内容或运行更新后,您会立即看到一个错误。这就是为什么我们总是建议使用暂存环境来更新或者至少逐个运行更新的原因之一。否则,如果你遇到500内部服务器错误,你会突然争先恐后地找出是哪个错误造成的。

解决这个问题的几种方法是停用所有插件。记住,如果你只是停用插件,你不会丢失任何数据。如果您仍然可以访问您的管理员,一个快捷的方法是浏览到“插件”,并从批处理操作菜单中选择“停用”。这将禁用您的所有插件。

停用所有插件

如果这解决了问题,您将需要找到罪魁祸首。开始逐个激活它们,每次激活后重新加载站点。当你看到500内部服务器错误返回,你发现行为不端的插件。然后,你可以联系插件开发者寻求帮助,或者在WordPress插件库中发布技术支持消息。

如果你不能登录到WordPress管理面板,你可以通过FTP访问你的服务器,并将你的插件文件夹重命名为类似plugins_old的名字。然后再次检查你的网站。如果成功了,那么你需要一个接一个的测试每个插件。将你的插件文件夹重新命名为“插件”,然后逐个重命名每个插件文件夹,直到找到为止。您也可以尝试先在临时网站上复制此内容。

重命名插件文件夹

总是确保你的插件、主题和WordPress核心是最新的。并检查以确保您运行的是受支持的PHP版本。如果发现与插件中的错误代码有冲突,您可能需要请技术人员帮助解决问题。

6.重新安装WordPress核心文件

有时WordPress核心文件可能会损坏,尤其是在旧网站上。在不影响插件或主题的情况下,重新上传WordPress核心其实很容易。我们有一个深入的指南,里面有5种不同的重新安装WordPress的方法。当然,在继续之前一定要做好备份。跳到以下部分之一:

如何在保留现有内容的同时从WordPress仪表盘重新安装WordPress

如何通过FTP手动重新安装WordPress,同时保留现有内容

如何在保留现有内容的同时通过WP-CLI手动重新安装WordPress

7.错误的权限

服务器上文件或文件夹的错误权限也可能导致500内部服务器错误。以下是一些关于WordPress中文件和文件夹权限的典型权限建议:

所有文件都应该是644(-RW-R–R –)或640。

所有目录都应该是755 (drwxr-xr-x)或750。

不应该给任何目录777,即使是上传的目录。

增强:wp-config.php也可以设置为440或400,以防止服务器上的其他用户读取它。

更深入的解释,请参考WordPress Codex关于更改文件权限的文章。

您可以使用FTP客户端轻松检查您的文件权限(如下所示)。你也可以联系你的WordPress主机支持团队,让他们快速获得文件夹和文件的GREP文件权限,以确保它们设置正确。

文件权限SFTP

8.PHP内存限制

用完服务器上的PHP内存限制也可能导致500个内部服务器错误。可以尝试提高限额。请按照下面的说明更改cPanel、Apache、php.ini文件和wp-config.php文件中的这一限制。

在cPanel中增加PHP内存限制

如果您在使用cPanel的主机上运行,您可以很容易地从UI中更改该设置。在“软件”下,点击“选择PHP版本”。

选择PHP版本选择PHP版本

点击“切换到PHP选项”。

文件权限SFTP

然后,您可以单击memory_limit属性并更改其值。然后点击“保存”。

在cPanel中增加PHP内存限制

在Apache中增加PHP内存限制

的。htaccess文件是一个特殊的隐藏文件,它包含可以用来修改服务器行为的各种设置,一直到目录的特定级别。首先通过FTP或者SSH登录你的站点,检查你的根目录看看有没有。htaccess文件在那里。

。htaccess文件

如果是这样,您可以编辑该文件,添加必要的代码来增加PHP内存限制。大概设置在64M或以下,可以尝试增加这个值。

php_value memory_limit 128M

在php.ini文件中增加PHP内存限制

如果上面的方法对你不起作用,你可以试着编辑你的php.ini文件。通过FTP或SSH登录到您的站点,转到站点的根目录,打开或创建一个php.ini文件。

Php.ini文件

如果文件已经存在,请搜索三个设置,并在必要时进行修改。如果您刚刚创建了该文件,或者找不到设置,您可以粘贴以下代码。当然,您可以根据需要修改这些值。

memory_limit = 128M

一些共享主机可能还要求您在。htaccess文件来使上面的php.ini文件设置生效。为此,请编辑。htaccess也位于站点的根目录中,并将以下代码添加到文件的顶部:

suPHP_ConfigPath /home/yourusername/public_html

如果上述方法对您不起作用,可能是您的主机锁定了全局设置,并将其配置为使用user.ini文件。要编辑您的. user.ini文件,请通过FTP或SSH登录到您的站点,转到您站点的根目录,打开或创建一个. user.ini文件。然后,您可以粘贴以下代码:

memory_limit = 128M

增加wp-config.php的PHP内存限制

最后一个选项,如果其他方法都失败了,可以试一试。首先,通过FTP或SSH登录到您的站点,然后找到您的wp-config.php文件,它通常位于您站点的根目录中。

Wp-config.php文件

将以下代码添加到wp-config.php文件的顶部:

define(‘WP_MEMORY_LIMIT’, ‘128M’);

您还可以询问您的主机是否遇到了内存限制。您还可以使用New Relic和其他故障排除方法来帮助客户缩小可能耗尽其局限性的插件、查询或脚本的范围。你也可以使用你自己定制的新遗物钥匙。

用新遗物调试

9.9的问题。。htaccess文件

如果您使用的是运行Apache的WordPress主机,那么您的。htaccess文件有问题或已损坏。按照这些步骤从头创建一个新的。

首先,通过FTP或SSH登录到您的站点,并重命名您的。htaccess文件到。htaccess_old。

重命名。htaccess文件

通常,要重新创建这个文件,只需要在WordPress中重新保存固定链接即可。然而,如果你遇到500内部服务器错误,你可能无法访问你的WordPress管理员,所以这不是一个选项。因此,您可以创建新的。htaccess文件并输入以下内容。然后上传到你的服务器。

# BEGIN WordPressRewriteEngine OnRewriteBase /RewriteRule ^index.php$ – [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]# END WordPress

更多例子,请看WordPress Codex,比如multisite的default。htaccess文件。

10.CGI/Perl脚本中的编码或语法错误

CGI和Perl中的错误导致的500个错误比以前少了很多。虽然还是值得一提,特别是对于使用cPanel的人来说,那里还是有很多一键CGI脚本在使用。正如AEM在堆栈溢出上所说:

CGI已经被各种Web编程技术取代,包括PHP,各种Apache扩展(如mod_perl),各种风格的Java和框架(包括Java EE,Struts,Spring等。)、基于Python的框架(如Django、Ruby on Rails等。),其他Ruby框架和各种微软技术。

以下是使用CGI脚本时的一些提示:

编辑时,请始终使用纯文本编辑器,如Atom、Sublime或Notepad++。这确保它们保持ASCII格式。

确保chmod 755的正确权限用于CGI脚本和目录。

以ASCII模式(可以在FTP编辑器中选择)将CGI脚本上传到服务器上的cgi-bin目录。

确认脚本所需的Perl模块已安装并受支持。

1.服务器问题(请咨询您的主机)

最后,由于PHP超时或第三方插件的致命PHP错误也可能导致500内部服务器错误,您可以随时检查您的WordPress主机。有时候,如果没有专家,这些错误可能很难解决。下面是一些在服务器上触发500 HTTP状态码的常见错误的例子,可能会让你感到困惑。

PHP message: PHP Fatal error: Uncaught Error: Call to undefined function mysql_error()…PHP message: PHP Fatal error: Uncaught Error: Cannot use object of type WP_Error as array in /www/folder/web/shared/content/plugins/plugin/functions.php:525

PHP超时也可能由于缺少PHP工作人员而发生,尽管通常会导致504错误而不是500错误。这些决定了您的站点在给定时间可以处理的并发请求的数量。简而言之,你的网站的每个未缓存的请求都是由PHP Worker处理的。

当PHP工作人员已经在站点上忙碌时,他们开始构建队列。一旦达到PHP工作线程的限制,队列将开始推出旧的请求,这可能导致500个错误或不完整的请求。

监控您的网站

如果您担心您的网站将来会出现这类错误,您还可以使用类似updown.io的工具进行监控,并在错误发生时立即通知您。它会定期向您选择的URL发送HTTP HEAD请求。你可以简单地使用你的主页。此工具允许您设置以下检查频率:

15秒

30秒

1分钟

两分钟

5分钟

十分钟

如果你的网站失败了,它会给你发一封邮件。下面是一个例子。

00电子邮件错误通知

如果您试图调试有问题的插件或在共享主机上,这将会使服务器过度拥挤,这一点尤其有用。这可以让你证明你的网站实际上关闭的频率(即使是在半夜)。

总结

500个内部服务器错误总是令人沮丧,但我希望现在你知道一些其他方法来解决这些错误,以快速让您的网站恢复运行。请记住,这些类型的错误通常是由第三方插件,致命的PHP错误,数据库连接问题。htaccess文件或PHP内存限制问题,有时PHP超时。

声明:

1,本站分享的资源来源于用户上传或网络分享,如有侵权请联系站长。

2,本站软件分享目的仅供大家学习和交流,请不要用于商业用途,下载后请于24小时后删除。

3,如果你也有好的建站资源,可以投稿到本站。

4,本站提供的所有资源不包含技术服务请大家谅解!

5,如有链接无法下载,请联系站长!

6,特别声明:仅供参考学习,不提供技术支持,建议购买正版!如果发布资源侵犯了您的利益请留言告知!


创网站长资源网 » 如何修复WordPress网站500的内部服务器错误

发表回复