http500内部服务器错误似乎总是出现在最不合时宜的时间,你突然想知道如何让你的WordPress网站重新上线。

今天我将深入研究http500内部服务器错误,并引导您完成一些方法,让您的网站快速恢复在线状态。

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

当您访问网站时,您的浏览器会将请求发送到托管该网站的服务器。服务器接受此请求,对其进行处理,并将请求的资源(PHP,HTML,CSS等)与HTTP标头一起发回。HTTP还包括他们称之为HTTP状态代码的内容。状态代码是一种通知您有关请求状态的方法。它可能是200状态代码,表示“一切正常”或500状态代码,这意味着出现了问题。

有很多不同类型的500状态错误代码(500,501,502,503,504等),都意味着不同的东西。在这种情况下,http500内部服务器错误指示表示服务器遇到意外情况,导致其无法履行请求。

http500内部服务器错误变体

由于各种Web服务器,操作系统和浏览器,http500内部服务器错误可以以多种不同方式呈现。但他们都在沟通同样的事情。以下是您可能在网络上看到的众多不同变体中的几种:
“500内部服务器错误”
“HTTP 500”
“内部服务器错误”
“HTTP 500 – 内部服务器错误”
“500错误”
“500内部服务器错误”
“500内部服务器错误。抱歉,出了一些问题。”
“500。有一个错误。请稍后再试。”
“该网站无法显示该页面 – HTTP 500。”
一个空白的白色屏幕
您可能还会看到此消息:

内部服务器错误

服务器遇到内部错误或配置错误,无法完成您的请求。请联系服务器管理员[email protected]并告知他们错误发生的时间,以及可能导致错误的任何操作。服务器错误日志中可能提供了有关此错误的更多信息。
内部服务器错误
较大的品牌甚至可能有自己的自定义500内部服务器错误消息,例如来自Airbnb的这一消息。

Airbnb 500内部服务器错误
这是自述文件中的另一个创意500服务器错误示例。
自述500内部服务器错误

http500内部服务器错误对SEO的影响

与503错误(用于WordPress维护模式并告诉百度稍后再回来查看)不同,如果不立即修复,则500错误会对SEO产生负面影响。如果您的网站仅停机了10分钟,并且它被抓取的次数很多次,则抓取工具只会从缓存中获取页面。或者百度可能甚至没有机会在它恢复之前重新抓取它。在这种情况下,完全没问题。
但是,如果网站长时间停机(例如6个小时以上),那么百度可能会将500错误视为需要解决的网站级问题。这可能会影响您的排名。如果你担心重复500错误,你应该弄清楚它们为什么会开始发生。下面的一些解决方案可以提供帮助。

如何修复http500内部服务器错误?

当您在WordPress网站上看到500内部服务器错误时,应该从哪里开始进行故障排除?有时你可能甚至不知道从哪里开始。通常500错误在服务器本身上,但根据我们的经验,这些错误源于两件事,第一件是 用户错误(客户端问题),第二件是服务器出现问题。所以我们将深入研究两者。
查看这些常见原因以及修复500内部服务器错误的方法,并立即恢复运行。

1.尝试重新加载页面

这对某些人来说可能看起来有点明显,但遇到500内部服务器错误时应该尝试的最简单的事情之一就是等待一分钟左右然后重新加载页面(F5或Ctrl + F5)。可能是主机或服务器只是过载而网站将立即回来。在您等待的同时,您还可以快速尝试使用其他浏览器来排除问题。
您可以做的另一件事是将网站粘贴到 downforeveryoneorjustme.com。本网站将告诉您网站是否已关闭或您是否有问题。像这样的工具会检查从服务器返回的HTTP状态代码。如果它不是200“一切都好”,那么它将返回一个向下指示。


我们还注意到,有时这会在您更新 WordPress网站上的插件或主题后立即发生。通常,这是在未正确设置的主机上。发生的事情是他们之后经历了临时超时。然而,事情通常会在几秒钟内自行解决,因此您需要做的就是刷新。

2.清除浏览器缓存

在深入调试您的网站之前,清除浏览器缓存始终是另一个很好的故障排除步骤。

3.检查服务器日志

您还应该利用错误日志。检查错误日志中是否存在http500内部服务器错误
如果您的主机没有日志记录工具,您还可以将以下代码添加到wp-config.php文件以启用日志记录:

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

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

WordPress错误日志文件夹
您还可以检查Apache和NGINX中的日志文件,这些文件通常位于此处:
Apache: /var/log/apache2/error.log
NGINX: /var/log/nginx/error.log
如果由于致命的PHP错误而显示500错误,您还可以尝试启用PHP错误报告。只需将以下代码添加到抛出错误的文件中即可。通常,您可以在Google Chrome DevTools的控制台选项卡中缩小文件范围。

ini_set('display_errors', 1);ini_set('display_startup_errors', 1);error_reporting(E_ALL);

您可能还需要使用以下内容修改php.ini文件:

display_errors = on
4.建立数据库连接时出错

数据库连接错误也可能导致http500内部服务器错误。根据您的浏览器,您可能会看到不同的错误。但无论您的服务器日志如何,两者都将生成500 HTTP状态代码。
下面是一个“建立数据库连接错误”消息的示例,看起来像您的浏览器。整个页面为空白,因为无法检索数据以呈现页面,因为连接无法正常工作。这不仅会破坏您网站的前端,还会阻止您访问WordPress信息中心。

建立数据库连接时出错的示例
那么为什么会发生这种情况呢?以下是一些常见的原因。
最常见的问题是您的数据库登录凭据不正确。您的WordPress站点使用单独的登录信息连接到其MySQL数据库。
您的数据库已损坏。由于有许多移动部件,主题,插件和用户不断删除和安装它们,有时数据库会被破坏。这可能是由于丢失或单独损坏的表,或者某些信息被意外删除。
您的WordPress安装中可能有损坏的文件。有时甚至可能由于黑客而发生这种情况。
数据库服务器的问题。Web主机端可能存在许多问题,例如数据库因流量峰值过载或者来自太多并发连接而无响应。这实际上与共享主机相当普遍,因为它们为同一服务器上的许多用户使用相同的资源。

5.检查您的插件和主题

第三方插件和主题很容易导致500内部服务器错误,从滑块插件到广告旋转插件。很多时候,您应该在安装新内容或运行更新后立即看到错误。这就是我们始终建议将登台环境用于更新或至少逐个运行更新的原因之一。否则,如果您遇到500内部服务器错误,您突然争先恐后地找出导致它的原因。
解决这个问题的一些方法是停用所有插件。请记住,如果您只是停用插件,则不会丢失任何数据。如果仍然可以访问管理员,快速执行此操作的方法是浏览到“插件”并从批量操作菜单中选择“停用”。这将禁用所有插件。
如果这解决了问题,你需要找到罪魁祸首。开始逐个激活它们,每次激活后重新加载站点。当您看到500内部服务器错误返回时,您发现了行为错误的插件。然后,您可以联系插件开发人员以获取帮助,或在WordPress存储库中发布支持服务单。
如果您无法访问管理员,您可以FTP到您的服务器并将您的插件文件夹重命名为plugins_old。然后再次检查您的网站。如果它有效,那么您将需要逐个测试每个插件。将您的插件文件夹重命名为“plugins”,然后将其中的每个插件文件夹逐个重命名,直到找到它为止。您还可以尝试首先在暂存站点上复制此操作。
重命名插件文件夹
始终确保您的插件,主题和WordPress核心是最新的。并检查以确保您运行的是受支持的PHP版本。如果它与插件中的错误代码冲突,您可能需要引入一个 WordPress开发人员 来解决问题。

6.重新安装WordPress Core

有时,WordPress核心文件可能会损坏,尤其是在旧网站上。实际上很容易重新上传WordPress的核心,而不会影响你的插件或主题。

7.权限错误

服务器上的文件或文件夹的权限错误也可能导致500内部服务器错误。以下是WordPress中文件和文件夹权限的一些典型权限建议:
所有文件应为644(-rw-r-r-)或640。
所有目录应为755(drwxr-xr-x)或750。
不应该给777目录,甚至上传目录。
强化:wp-config.php也可以设置为440或400,以防止服务器上的其他用户读取它。

文件权限

8. PHP内存限制

在服务器上耗尽PHP内存限制也可能导致500内部服务器错误。您可以尝试增加限制。

增加阿里云中的PHP内存限制

如果您在使用阿里云的主机上运行,则可以从UI轻松更改此设置。编辑php.ini 在php.ini中,找到“memory_limit”这一项,如果没有,你可以在文件的尾部自己增加这个参数。memory_limit = 128M ; 可以将128M改为任何你想设置的值

增加Apache中的PHP内存限制

.htaccess文件是一个特殊的隐藏文件,其中包含可用于修改服务器行为的各种设置,直到特定于目录的级别。首先 通过FTP 或SSH 登录您的站点,查看您的根目录,看看是否有.htaccess文件。

.htaccess文件
如果有,您可以编辑该文件以添加必要的代码以增加上载限制。最有可能设置为64M或更低,您可以尝试增加此值。

php_value memory_limit 128M
增加php.ini文件中的PHP内存限制

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

php.ini文件
如果文件已存在,请搜索三个设置并在必要时进行修改。如果您刚刚创建了该文件,或者无法找到设置,则可以粘贴以下代码。您可以修改当然值以满足您的需求。
memory_limit = 128M
某些共享主机可能还需要您在.htaccess文件中添加suPHP指令才能使上述php.ini文件设置生效。要执行此操作,请编辑.htaccess位于站点根目录的文件,并在文件顶部添加以下代码:

<IfModule mod_suphp.c> suPHP_ConfigPath /home/yourusername/public_html</IfModule>

如果以上内容对您不起作用,则可能是您的主机已锁定全局设置,而是将其配置为使用.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');
9. .htaccess文件出现问题

如果您使用的是运行Apache的WordPress主机,则很可能是您的.htaccess文件出现问题或已损坏。按照以下步骤从头开始重新创建一个新步骤。
首先, 通过FTP 或SSH 登录您的站点,并将您的.htaccess文件重命名为.htaccess_old。

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

# BEGIN WordPress<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule># END WordPress
10. CGI / Perl脚本中的编码或语法错误

由CGI和Perl中的错误引起的500个错误比以前少得多,对于那些使用cPanel的用户,其中仍然使用了大量的一键式CGI脚本。
CGI已经被各种各样的Web编程技术所取代,包括PHP,各种Apache扩展,如mod_perl,各种风格的Java和框架,包括Java EE,Struts,Spring等,基于Python的框架,如Django,Ruby on Rails和许多其他Ruby框架和各种Microsoft技术。
以下是使用CGI脚本时的一些提示:
编辑时,始终使用纯文本编辑器,如Atom,Sublime或Notepad ++。这可确保它们保持ASCII格式。
确保在CGI脚本和目录上使用chmod 755的正确权限。
将您的CGI脚本以ASCII模式(可以在FTP编辑器中选择)上传到服务器上的cgi-bin目录中。
确认已安装并支持脚本所需的Perl模块。

11.服务器问题(与主机核实)

最后,因为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_Errorasarrayin/www/folder/web/shared/content/plugins/plugin/functions.php:525

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

结论

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