分类: 学习

  • 如何解决Cloudflare加速网站出现Error 520未知错误

    错误类型:
    服务器错误
    错误名称:
    Cloudflare 520错误
    英文名称:
    Error 520
    错误描述:
    当您网站的访问者在他们的浏览器中看到Error 520时,这意味着Cloudflare正在发送消息,因为您的服务器返回了一个空的、未知的或意外的响应。

    如何解决Cloudflare加速网站出现Error 520未知错误

    当您网站的访问者在他们的浏览器中看到Error 520时,这意味着Cloudflare正在发送消息,因为您的服务器返回了一个空的、未知的或意外的响应。

    Error 520可以通过首先进行故障排除来找到原因,然后按照这些步骤进行修复。

    1. 对Error 520进行故障排除
    2. Error 520的常见原因
    3. 再次启用Cloudflare
    4. 如果其他方法都失败了怎么办

    对Error 520进行故障排除

    由于Error 520是由于您的服务器出现问题而出现的,您可以通过查看错误日志来解决该问题。

    网站Error 520的示例

    网站Error 520的示例

    禁用Cloudflare

    在开始故障排除之前,有必要禁用Cloudflare。这有助于隔离问题,确保可以在不影响Cloudflare的情况下复制问题。

    第1步:首先登录Cloudflare。然后,在列表中找到您的站点并单击它。

    单击您列出的站点

    单击您列出的站点

    第2步:接下来,单击DNS选项卡,然后单击表中Proxy status部分下的橙色云。您会知道Cloudflare已被禁用,因为云会变成灰色。

    单击橙色云以禁用Cloudflare

    单击橙色云以禁用Cloudflare

    暂停Cloudflare

    或者,您可以选择在登录后暂停Cloudflare。

    第1步:从列表中单击您连接的站点。

    登录后从列表中单击您的站点

    登录后从列表中单击您的站点

    第2步:然后,向下滚动,直到在侧栏中看到“Advanced Actions”部分。单击在站点上Pause Cloudflare on Site链接。

    单击链接以暂停Cloudflare

    单击链接以暂停Cloudflare

    第3步:页面上将显示一个弹出窗口,要求您确认要暂停Cloudflare。继续并单击“Confirm按钮。

    单击确认以暂停Cloudflare

    单击确认以暂停Cloudflare

    进入开发模式

    如果您不想暂停或禁用Cloudflare,您可以保持运行,但将其置于开发模式,以便您仍然可以对Error 520进行故障排除。

    第1步:登录Cloudflare后,单击页面顶部的Caching选项卡。

    转到缓存选项卡 转到缓存选项卡

    第2步:接下来,向下滚动到“Development Mode部分,然后单击“Off切换按钮,切换至“On”。

    通过单击切换按钮打开开发模式

    通过单击切换按钮打开开发模式

    检查服务器的错误日志

    现在您已禁用、暂停或将Cloudflare置于开发模式,您可以通过检查服务器的错误日志来解决Error 520。

    查找错误日志的方式因主机而异,因此如果您不确定在哪里可以找到错误日志,请与您的主机联系。

    如果您的托管服务提供商使用cPanel,您可以按照以下步骤操作。

    第1步:登录cPanel并在仪表板中,转到“Metrics部分。然后,单击Errors按钮。

    单击Metrics下的Errors按钮

    单击Metrics下的Errors按钮

    第2步:错误日志页面按时间倒序显示错误以及最多300条最新消息。如果您或您的主机调整了设置,错误日志可能会显示更多消息。

    查看cPanel的错误日志以解决Error 520

    查看cPanel的错误日志以解决Error 520

    使用宝塔面板检查Error 520日志

    如果您使用宝塔面板管理WordPress网站,您可以按照以下步骤检查您的错误日志。

    第1步:登录宝塔面板并单击左侧菜单中的安全管理-Web日志管理

    宝塔日志管理

    宝塔日志管理

    第2步:下载nginx_error.log文件,使用文本编辑器打开将会会显示错误日志。如果您没有看到任何列出的内容,那是因为您的网站上没有发生错误。

    如何解释错误日志

    错误日志中的每条消息都有一个结构。如果您理解它,您就可以解释出现的错误消息。

    [Fri Oct 11 17:00:30 2019] [error] [client 123.4.56.7] error description: /path/to/file/with/error
    [Fri Oct 11 17:00:30 2019] [error] [client 123.4.56.7] error description: /path/to/file/with/error
    [Fri Oct 11 17:00:30 2019] [error] [client 123.4.56.7] error description: /path/to/file/with/error

    消息的日期和时间首先列出,然后是LogLevel指令,它告诉您消息的严重性级别。

    接下来是客户端的IP地址。这就是让这个问题出现的人。

    最后,将显示实际消息,其中可能包含受影响文件的路径。

    以下是可能在错误日志消息中列出的LogLevel严重性级别:

    • Emerg – 这让您知道问题是紧急情况并且服务器不可用。
    • Alert – 如果您看到此级别,应立即采取行动。
    • Crit – 这表示危急情况。
    • Error– 这意味着发生了错误。
    • Warn– 具有此级别的消息是关于需要您注意但不重要的问题的警告。
    • Notice– 这意味着您的服务器是正常的,但有关于您的服务器可用状况的重要详细信息。
    • Info– 此级别提供一般信息。
    • Debug– 这些消息包含启用调试时的详细信息。

    使用cURL命令对错误520进行故障排除

    您还可以使用cURL命令通过针对源服务器进行测试来解决错误520。

    curl -vso /dev/null –user-agent “Mozilla 5.0” -H “Host: your-site.com” http://123.45.6.789/wp-login.php
    curl -vso /dev/null –user-agent “Mozilla 5.0” -H “Host: your-site.com” http://123.45.6.789/wp-login.php
    curl -vso /dev/null --user-agent "Mozilla 5.0" -H "Host: your-site.com" http://123.45.6.789/wp-login.php

    请务必将“you-site.com”更改为您的实际域。您还需要使用您站点的IP地址更新“123.45.6.789”。如果您更改了登录页面,您还应该更改“wp-login.php”部分。

    成功的响应标头类似于以下示例:

    * Hostname was NOT found in DNS cache
    * Trying 123.45.6.789…
    * Connected to 123.45.6.789 (123.45.6.789) port 80 (#0)
    > GET /login HTTP/1.1
    > User-Agent: Mozilla 5.0
    > Accept: */*
    > Host: your-site.com
    >
    < HTTP/1.1 200 OK
    < Content-Type: text/html
    < Date: Day, DD, Month Year Hour:Minute:Second Timezone
    { [12345 bytes data]
    * Connection #0 to host 123.45.6.789 left intact
    * Hostname was NOT found in DNS cache
    * Trying 123.45.6.789…
    * Connected to 123.45.6.789 (123.45.6.789) port 80 (#0)
    > GET /login HTTP/1.1
    > User-Agent: Mozilla 5.0
    > Accept: */*
    > Host: your-site.com
    >
    < HTTP/1.1 200 OK
    < Content-Type: text/html
    < Date: Day, DD, Month Year Hour:Minute:Second Timezone
    { [12345 bytes data]
    * Connection #0 to host 123.45.6.789 left intact
    * Hostname was NOT found in DNS cache
    *   Trying 123.45.6.789...
    * Connected to 123.45.6.789 (123.45.6.789) port 80 (#0)
    > GET /login HTTP/1.1
    > User-Agent: Mozilla 5.0
    > Accept: */*
    > Host: your-site.com
    >
    < HTTP/1.1 200 OK
    < Content-Type: text/html
    < Date: Day, DD, Month Year Hour:Minute:Second Timezone
    { [12345 bytes data]
    * Connection #0 to host 123.45.6.789 left intact
    

    如果您看到类似的内容,则表示一切正常,并且访问该站点时没有出现错误520响应。

    另一方面,如果您看到类似于以下示例的响应标头,则表示在Cloudflare处于活动状态时发生了520错误:

    * Hostname was NOT found in DNS cache
    * Trying 123.45.6.789…
    * Connected to 123.45.6.789 (123.45.6.789) port 80 (#0)
    > GET /login HTTP/1.1
    > User-Agent: Mozilla 5.0
    > Accept: */*
    > Host: your-site.com
    >
    * Empty reply from server
    * Connection #0 to host 123.45.6.789 left intact
    * Hostname was NOT found in DNS cache
    * Trying 123.45.6.789…
    * Connected to 123.45.6.789 (123.45.6.789) port 80 (#0)
    > GET /login HTTP/1.1
    > User-Agent: Mozilla 5.0
    > Accept: */*
    > Host: your-site.com
    >
    * Empty reply from server
    * Connection #0 to host 123.45.6.789 left intact
    * Hostname was NOT found in DNS cache
    *   Trying 123.45.6.789...
    * Connected to 123.45.6.789 (123.45.6.789) port 80 (#0)
    > GET /login HTTP/1.1
    > User-Agent: Mozilla 5.0
    > Accept: */*
    > Host: your-site.com
    >
    * Empty reply from server
    * Connection #0 to host 123.45.6.789 left intact

    如何生成HAR文件

    HAR是一个HTTP存档文件。它包含发送到源服务器以及通过Cloudflare的请求的档案。

    它可以帮助您进行故障排除,因为当它用作代理时,它会比较来自源服务器和Cloudflare的响应标头。

    如果这就是错误520出现的原因,它还用于确认标题太大。

    您可以通过以下步骤使用浏览器创建HAR文件:

    Chrome

    第1步:打开浏览器并右键单击该页面。然后,选择Inspect

    在Chrome中右键单击并选择检查

    在Chrome中右键单击并选择检查

    第2步:面板打开后,单击“网络”选项卡并确保面板左侧顶部有一个红色圆圈按钮。如果它是灰色的,请单击它。

    确保“网络”选项卡上的录制按钮为红色

    确保“网络”选项卡上的录制按钮为红色

    第3步:选中记录按钮旁边的保留日志选项,然后单击清除按钮。

    选择保留日志的选项,然后单击以清除以前的消息

    选择保留日志的选项,然后单击以清除以前的消息

    第4步:加载出现错误520的页面。然后,右键单击Chrome开发人员工具的消息区域中的任意位置。

    选择Save as HAR with Content并将文件保存到您的计算机。

    将HAR文件保存到您的计算机

    将HAR文件保存到您的计算机

    火狐

    第1步:打开Firefox并右键单击页面上的任意位置。然后,选择Inspect Element

    右键单击页面后选择检查元素

    右键单击页面后选择检查元素

    第2步:转到“网络”选项卡并访问出现 520 错误的页面。右键单击面板中的消息并选择Save All as HAR选项。

    将文件保存到您的计算机。

    右键单击并选择保存HAR文件

    右键单击并选择保存HAR文件

    Edge 

    第1步:打开Edge浏览器并右键单击该页面。从列表中选择检查

    在浏览器中右键单击后选择检查

    在浏览器中右键单击后选择检查

    第2步:转到“网络”选项卡并确保圆形记录按钮为红色。如果不是,请单击它。检查保留日志选项,然后清除当前消息的图标。

    单击以保留日志并清除旧消息

    单击以保留日志并清除旧消息

    第3步:转到您遇到错误520的页面。然后,右键单击开发人员工具面板中的消息,并选择“将所有内容另存为HAR”选项。

    将文件保存到您的计算机。

    Safari

    第1步:打开Safari并右键单击Windows的页面或按键盘上的CMD并单击Mac。从列表中选择检查元素

    右键单击页面后选择检查元素选项

    右键单击页面后选择检查元素选项

    第2步:转到网络选项卡。选中“保留日志”选项,然后转到出现错误520问题的页面。

    在“网络”选项卡上选中保留日志的选项

    在“网络”选项卡上选中保留日志的选项

    第3步:单击导出按钮并将HAR文件保存到您的计算机。

    导出HAR文件

    导出HAR文件

    解决错误520的常见原因

    现在您有了错误日志,请搜索它,看看您是否注意到以下任何一个问题。然后,按照以下步骤解决问题。

    源服务器PHP应用程序崩溃

    导致错误520的一个常见问题是PHP应用程序之一在您的服务器上崩溃。重新启动PHP将修复错误。

    使用SSH,您可以为Apache服务器输入以下命令:

    apache2ctl restart
    apache2ctl restart
    apache2ctl restart

    对于Nginx服务器,您可以使用以下命令重新启动PHP:

    service nginx restart
    service nginx restart
    service nginx restart

    Cloudflare IP地址未列入白名单

    可能发生520错误的另一个原因是Cloudflare的IP地址未列入白名单。您可以将它们列入白名单,但托管服务提供商之间的步骤有所不同。

    如果您不确定如何将IP列入白名单,请联系您的主机,尤其是当您没有找到任何设置时。

    TCP空闲超时少于300秒

    传输控制协议 (TCP) 也可能是错误520的原因。

    TCP是一种标准协议,用于建立和维护网络连接。如果TCP设置在300秒内超时,可能会导致520错误弹出。

    您可以使用CLI命令更改TCP服务超时:

    set service Service-HTTP-1 -svrTimeout 500
    set service Service-HTTP-1 -svrTimeout 500
    set service Service-HTTP-1 -svrTimeout 500

    标题超过8KB

    此问题通常是由于cookie过多或cookie过大造成的。您在故障排除过程中下载的HAR文件将显示这是否是问题所在。

    Cloudflare有可用于标头8KB的限制。

    如果您编写的插件需要太多cookie或cookie中有太多数据,请尝试减少它们。或者,如果您使用了很多都需要cookie的插件,请删除其中的一些。

    来自您的服务器的空响应

    当您的站点缺少HTTP状态代码或响应正文时会出现此问题。要解决此问题,请确保为您站点的域正确设置DNS

    检查您的设置所涉及的步骤取决于您的DNS主机。如果您的托管计划捆绑了DNS,请咨询您的托管服务提供商。

    请务必注意,如果您更新了DNS设置,您的站点可能需要长达72小时才能传播。这意味着您的网站最多可能有三天不可用。

    更改DNS设置后,您需要清除站点的缓存。如果您的WordPress站点上安装了缓存插件,并且不确定如何从插件设置中清除站点缓存,则可以查看其文档。

    您还可以通过您的托管服务提供商清除您网站的缓存。如果您需要知道如何为您的网站执行此操作,请务必与他们联系。

    如果您更新了DNS设置,您的站点再次可用,您清除了站点的缓存,但仍然遇到错误520,请重新启动服务器。

    缺少响应头

    根据Mozilla的说法

    “响应标头是一个HTTP标头,可以在HTTP响应中使用,并且与消息的内容无关。响应标头,如Age,Location或Server ,用于提供更详细的响应上下文。”

    丢失响应头的原因有很多。

    解决此问题的最佳选择是使用Fiddler之类的调试工具来调试问题并准确查看问题所在,以便您可以修复它。

    服务器未返回正确的HTTP错误响应

    当您的服务器发送无效的错误响应时,它可能会导致 520 错误。这意味着该消息不符合HTTP响应代码的标准列表

    它是由您的服务器引起的,也可能是您服务器上的某些内容,例如 PHP 应用程序或 WordPress 网站上使用的插件。

    如果您找不到错误代码的来源来修复它,请尝试联系支持以获得进一步的帮助。

    再次启用Cloudflare

    检查您是否再次收到错误消息。如果这样做,请禁用Cloudflare并继续进行故障排除。

    如果520 error已解决,请再次启用Cloudflare。

    第1步:为此,请登录Cloudflare,如果您通过将帐户中的云变为灰色来禁用Cloudflare,请首先从列表中选择您的站点。

    选择要启用Cloudflare的站点

    选择要启用Cloudflare的站点

    第2步:单击DNS选项卡,然后单击灰色云以重新启用Cloudflare。

    单击灰色的云以启用Cloudflare

    单击灰色的云以启用Cloudflare

    暂停后恢复Cloudflare

    第1步:如果您之前暂停了Cloudflare,请通过登录Cloudflare 并单击仪表板中列出的站点来恢复它。

    选择您需要恢复Cloudflare 的站点

    选择您需要恢复Cloudflare的站点

    第2步:然后,转到“Overview”选项卡并向下滚动到页面底部,直到您在页面右侧的侧栏中看到“Advanced Actions”部分。

    单击Enable Cloudflare on Site链接。

    再次单击启用Cloudflare的链接

    再次单击启用Cloudflare的链接

    关闭开发模式

    第1步:如果您之前已开启Cloudflare的开发模式,您可以通过登录将其关闭。然后,单击页面上列出的您的站点。

    选择您的网站

    选择您的网站

    第2步:接下来,转到Caching选项卡。

    单击Caching选项卡

    单击Caching选项卡

    第3步:向下滚动到“Development Mode部分,然后单击当前设置为“On”的切换按钮。

    单击切换以禁用开发模式

    单击切换以禁用开发模式

    如果其他方法都失败了怎么办

    如果您仍然看到问题,请联系Cloudflare支持。

    向他们提供以下详细信息:

    • 发生错误时所请求资源的完整URL。
    • Cloudflare的Ray ID,来自您看到error 520消息的页面。
    • http://your-site.com/cdn-cgi/trace的输出,但请务必将“your-site.com”替换为您的实际域名。
    • 两个HAR文件:一个来自为您的站点启用Cloudflare时的文件,另一个来自您禁用Cloudflare时的文件。

    小结

    error 520似乎令人困惑,尤其是因为它是Cloudflare错误。但是,这与导致Cloudflare无法连接的服务器错误有关。

    上述步骤是最常见的错误520原因的解决方案。如果您在尝试后仍然遇到问题,您可能需要联系Cloudflare或您的托管支持。

    注:如果您使用了百度云加速等类似的CDN服务,同样有可能出现error 520。您可以依据上述的解决方案作为参考,进行故障排查及修复。

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

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

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

    可怕的500内部服务器错误(500 Internal Server Error)。它似乎总是在最不合时宜的时候出现,而您突然之间争先恐后地想办法让您的WordPress网站重新上线。相信我们,我们都去过那里。您可能还见过的其他行为类似的错误包括建立数据库连接错误和可怕的死亡白屏。但是从您的网站出现故障的那一刻起,您就会失去访问者和客户。更不用说它看起来对您的品牌不利。

    今天,我们将深入探讨500内部服务器错误,并引导您通过一些方法让您的网站快速恢复在线。阅读下面的更多信息,了解导致此错误的原因以及您可以采取哪些措施来防止将来出现此错误。

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

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

    • 浏览器缓存。
    • 数据库登录凭据不正确。
    • 损坏的数据库。
    • WordPress安装中的文件损坏。
    • 您的数据库服务器的问题。
    • 损坏的WordPress核心文件。
    • 第三方插件和主题的问题。
    • 第三方插件的PHP超时或致命的PHP错误。
    • 错误的文件和文件夹权限。
    • 您的服务器上已用尽的PHP内存限制
    • 损坏的.htaccess 文件。
    • CGI和 Perl脚本错误。

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

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

    500(内部服务器错误)状态代码表示服务器遇到了阻止其完成请求的意外情况。

    当您访问网站时,您的浏览器会向托管该网站的服务器发送请求。服务器接受此请求,对其进行处理,然后将请求的资源(PHP、HTML、CSS 等)连同HTTP标头一起发回。HTTP还包括他们所谓的HTTP状态代码。状态代码是一种通知您请求状态的方式。它可能是200状态代码,表示“一切正常”或500状态代码,表示出现问题。

    有很多不同类型的500个状态错误代码(500的501502503504等),都意味着不同的东西。在这种情况下,500内部服务器错误表示服务器遇到了阻止其完成请求的意外情况 RFC7231,第 6.6.1 节)。

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

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

    500内部服务器错误变体

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

      • “500 Internal Server Error”
      • “HTTP 500”
      • “Internal Server Error”
      • “HTTP 500 – Internal Server Error”
      • “500 Error”
      • “HTTP Error 500”
      • “500 – Internal Server Error”
      • “500 Internal Server Error. Sorry something went wrong.”
      • “500. That’s an error. There was an error. Please try again later. That’s all we know.”
      • “The website cannot display the page – HTTP 500.”
      • “Is currently unable to handle this request. HTTP ERROR 500.”

    您可能还会看到此消息随附:

    服务器遇到内部错误或配置错误,无法完成您的请求。请联系服务器管理员webmaster@domain.com并告知他们错误发生的时间,以及您可能执行的任何可能导致错误的操作。服务器错误日志中可能提供有关此错误的更多信息。

    内部服务器错误

    内部服务器错误

    其他时候,您可能只会看到一个空白的白色屏幕。在处理500内部服务器错误时,这实际上在Firefox和Safari等浏览器中很常见。

    Firefox中的500内部服务器错误

    Firefox中的500内部服务器错误

    大品牌甚至可能有自己的自定义500内部服务器错误消息,例如来自Airbnb的这条消息。

    Airbnb 500内部服务器错误

    Airbnb 500内部服务器错误

    这是来自readme的另一个创造性的500服务器错误示例。

    readme网站500内部服务器错误

    readme网站500内部服务器错误

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

    YouTube上的500内部服务器错误

    YouTube上的500内部服务器错误

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

    • 500.0 – 发生模块或ISAPI错误。
    • 500.11 – Web服务器上的应用程序正在关闭。
    • 500.12 – 应用程序正忙于在Web服务器上重新启动。
    • 500.13 – Web服务器太忙。
    • 500.15 – 不允许直接请求global.asax。
    • 500.19 – 配置数据无效。
    • 500.21 – 无法识别模块。
    • 500.22 – ASP.NET httpModules配置不适用于托管管道模式。
    • 500.23 – ASP.NET httpHandlers配置不适用于托管管道模式。
    • 500.24 – ASP.NET模拟配置不适用于托管管道模式。
    • 500.50 – 在RQ_BEGIN_REQUEST通知处理期间发生重写错误。发生配置或入站规则执行错误。
    • 500.51 – 在GL_PRE_BEGIN_REQUEST通知处理期间发生重写错误。发生全局配置或全局规则执行错误。
    • 500.52 – 在RQ_SEND_RESPONSE通知处理期间发生重写错误。发生出站规则执行。
    • 500.53 – 在RQ_RELEASE_REQUEST_STATE通知处理期间发生重写错误。发生出站规则执行错误。该规则配置为在输出用户缓存更新之前执行。500.100 – 内部ASP错误。

    500错误对SEO的影响

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

    但是,如果站点长时间关闭,例如6个小时以上,那么Google可能会将500错误视为需要解决的站点级别问题。这可能会影响您的排名。如果您担心重复500错误,您应该弄清楚为什么会发生这些错误。下面的一些解决方案可以提供帮助。

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

    当您在WordPress网站上看到500内部服务器错误时,您应该从哪里开始进行故障排除?有时您甚至可能不知道从哪里开始。通常500错误是在服务器本身,但根据我们的经验,这些错误源于两件事,第一是用户错误(客户端问题),第二是服务器有问题。所以我们将深入探讨两者。

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

    1. 尝试重新加载页面

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

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

    downforeveryoneorjustme网站

    downforeveryoneorjustme网站

     

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

    2. 清除浏览器缓存

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

    3. 检查您的服务器日志

    您还应该利用您的错误日志。如果您是宝塔面板客户,则可以在宝塔面包你仪表盘的安全管理中的Web日志管理轻松查看错误。这可以帮助您快速缩小问题的范围,特别是如果它是由您网站上的插件引起的。

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

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

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

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

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

    WordPress错误日志文件夹 (SFTP)

    WordPress错误日志文件夹 (SFTP)

    您还可以查看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);
    ini_set(‘display_errors’, 1);
    ini_set(‘display_startup_errors’, 1);
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);

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

    display_errors = on
    display_errors = on
    display_errors = on

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

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

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

    建立数据库连接错误示例

    建立数据库连接错误示例

    那么究竟为什么会发生这种情况呢?好吧,以下是一些常见的原因。

    • 最常见的问题是您的 数据库登录凭据不正确。您的 WordPress 站点使用单独的登录信息连接到其MySQL数据库
    • 您的WordPress数据库已损坏。有这么多带有主题、插件和用户不断删除和安装它们的活动部件,有时数据库会损坏。这可能是由于表丢失或个别损坏,或者某些信息可能被意外删除。
    • 您的WordPress安装中可能有损坏的文件。由于黑客,有时甚至会发生这种情况。
    • 您的数据库服务器的问题。Web主机端的许多事情可能是错误的,例如数据库因流量高峰而过载或因并发连接过多而无响应。这实际上对于共享主机很常见,因为它们为同一服务器上的许多用户使用相同的资源。

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

    5. 检查你的插件和主题

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

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

    停用所有插件

    停用所有插件

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

    如果您无法登录WordPress管理盘,您可以通过FTP进入您的服务器并将您的插件文件夹重命名为 plugins_old 之类的名称。然后再次检查您的网站。如果它有效,那么您将需要一个一个地测试每个插件。将您的插件文件夹重命名回“plugins”,然后将每个插件文件夹一一重命名,直到找到为止。您也可以先尝试在临时站点上复制此内容。

    重命名插件文件夹

    重命名插件文件夹

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

    6. 重新安装WordPress核心

    有时WordPress核心文件可能会损坏,尤其是在旧站点上。在不影响插件或主题的情况下重新上传WordPress核心实际上很容易。我们有一个深入的指南,其中包含5种不同的方法来重新安装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

    文件权限SFTP

    8. PHP内存限制

    耗尽服务器上的PHP内存限制也可能导致500内部服务器错误。您可以尝试增加限制。请按照以下说明更改cPanel、Apache、php.ini文件和wp-config.php文件中的此限制。

    增加cPanel中的PHP内存限制

    如果您在使用cPanel的主机上运行,​​则可以从 UI 轻松更改此设置。在“软件”下单击“选择PHP版本”。

    如何修复WordPress网站500内部服务器错误-1 选择PHP版本

    单击“切换到PHP选项”。

    文件权限SFTP

    文件权限SFTP

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

    增加cPanel中的PHP内存限制

    增加cPanel中的PHP内存限制

    增加Apache中的PHP内存限制

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

    .htaccess文件

    .htaccess文件

    如果有,您可以编辑该文件以添加必要的代码以增加PHP内存限制。很可能设置在64M或以下,您可以尝试增加此值。

    php_value memory_limit 128M
    php_value memory_limit 128M
    php_value memory_limit 128M

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

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

    php.ini文件

    php.ini文件

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

    memory_limit = 128M
    memory_limit = 128M
    memory_limit = 128M

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

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

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

    memory_limit = 128M
    memory_limit = 128M
    memory_limit = 128M

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

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

    wp-config.php文件

    wp-config.php文件

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

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

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

    使用New Relic调试

    使用New Relic调试

    9. .htaccess文件的问题

    如果您使用的是运行Apache的WordPress主机,则很可能您的.htaccess文件有问题或已损坏。按照以下步骤从头开始重新创建一个新的。

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

    重命名 .htaccess文件

    重命名 .htaccess文件

    通常要重新创建此文件,您只需在WordPress中重新保存固定链接即可。但是,如果您遇到500内部服务器错误,您很可能无法访问您的WordPress管理员,因此这不是一个选项。因此,您可以创建一个新.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
    # 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
    # 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 Codex,例如multisite的默认.htaccess文件。

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

    由CGI和Perl中的错误引起的500错误比以前少了很多。虽然还是值得一提的,尤其是对于那些使用cPanel的人来说,那里还有很多一键CGI脚本还在使用。正如Stack Overflow上的AEM所说

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

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

    • 编辑时,始终使用纯文本编辑器,例如Atom、Sublime或Notepad++。这确保它们保持ASCII格式。
    • 确保chmod 755的正确权限用于CGI脚本和目录。
    • 将ASCII模式的CGI脚本(可以在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_Error as array in /www/folder/web/shared/content/plugins/plugin/functions.php:525
    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 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分钟
    • 2分钟
    • 5分钟
    • 10分钟

    如果您的网站出现故障,它会向您发送一封电子邮件。下面是一个例子。

     

    500错误的电子邮件通知

    500错误的电子邮件通知

    如果您正在尝试调试有问题的插件或在共享主机上,这些主机往往会使服务器过度拥挤,这将特别有用。这可以让您证明您的网站实际上可能关闭的频率(即使是在半夜)。

    小结

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

  • 如何对WordPress数据库问题进行故障排除和修复

    错误类型:
    数据库错误
    错误名称:
    建立数据库连接时出错
    英文名称:
    Error establishing a database connection
    错误描述:
    “建立数据库连接错误消息”可能是您在WordPress网站上看到的最常见的错误消息之一。

    如何对WordPress数据库问题进行故障排除和修复

    不得不对WordPress数据库进行故障排除和修复是我们许多人在某个时候都会遇到的事情。

    如果您看到一条错误消息,告诉您无法连接到数据库或者某些文件已损坏,那么很有可能是您的WordPress数据库出现问题。

    但是如何修复WordPress数据库呢?

    在本文中,我们将向您展示如何诊断WordPress数据库的问题以及如何修复它们。您还将学习如何防止您的WordPress数据库问题在未来再次发生。

    1. 如何知道WordPress数据库是否需要修复
    2. 需要修复数据库的6个常见原因
    3. 如何修复WordPress数据库
    4. 如何优化您的WordPress数据库

    如何知道WordPress数据库是否需要修复

    作为WordPress用户,您可能会遇到一些WordPress错误。运行一个网站而不偶尔遇到问题几乎是不可能的。但是你怎么知道是数据库的问题呢?

    以下是一些线索,可以告诉您您的数据库有问题:

    “建立数据库连接错误消息”可能是您在WordPress网站上看到的最常见的错误消息之一。当代码出现问题时,这几乎和所谓的死亡白屏一样可怕。

    建立数据库连接时出错

    建立数据库连接时出错

    不过,修复它可能非常简单。

    在我们讨论解决问题可能需要的各种方法之前,让我们先看看数据库问题的原因

    需要修复数据库的6个常见原因

    以下是数据库问题的一些最常见原因。对于某些情况,您会看到特定的警告消息。对于其他人,您将获得通用的建立数据库连接消息。

    让我们来看看最常见的场景,然后看看如何修复您的WordPress数据库。

    1. 不正确的数据库凭据

    这可能是WordPress数据库连接问题的最常见原因,幸运的是,它最容易修复。

    如果您不想自己编辑代码,您只需要对wp-config.php文件进行简单的修改或使用插件进行修复

    2. 连接问题

    无法访问数据库的原因之一是连接到服务器的问题。如果您使用的是廉价主机,您可能会发现您的服务器很慢或没有响应。一个好的托管服务提供商将为您提供正常运行时间保证,这意味着这不应该是您问题的原因。

    但是值得与您的托管服务提供商核实服务器上是否存在任何问题。

    3. 超出PHP内存限制

    这是一个错误,根据我的经验,当您将媒体上传到您的网站时,这种错误最常出现。

    这意味着您已经超出了为您的站点设置的内存限制。修复它需要编辑一些代码、通过您的托管服务提供商更改一些设置或使用插件。

    4. 损坏的数据库表

    如果您的数据库表已损坏,则需要清理数据库。如果您的凭据正确,连接没有问题,并且您没有超出PHP内存限制,那么下一个最有可能的罪魁祸首是数据库损坏

    您可以在phpMyAdmin中修复损坏的数据库表

    5.损坏的文件

    如果WordPress安装中的文件已损坏,这可能会导致数据库出现问题。这可能是由于文件已损坏的插件存在问题,或者是您的开发人员之一进行了编辑。

    我们很快就会看看您可以使用哪些选项来修复损坏的文件

    6. 你的网站或数据库被黑了

    我们特意把这个留到最后,因为它最有可能吓到您:您的WordPress网站或数据库可能已被黑客入侵。但是,如果您的数据库由于黑客攻击而出现问题,修复它并不像您想象的那么困难。

    您可以从托管公司获得帮助,也可以自行修复。

    现在,是时候开始修复一些数据库了!

    如何修复WordPress数据库

    既然您现在知道数据库问题的常见原因,您就会问这个问题:如何修复我的WordPress数据库?

    您需要采取的具体步骤取决于问题的性质。让我们先完成最简单的步骤,因为它们将解决最常见的问题。

    如果您已经确定您的数据库遇到了更严重的问题,请跳至本节的相关部分。

    1. 从备份开始
    2. 如何使用数据库日志文件诊断WordPress数据库错误
    3. 如何编辑您的WordPress数据库凭据
    4. 如何使用WP_ALLOW_REPAIR修复WordPress数据库
    5. 如何在phpMyAdmin中修复WordPress数据库
    6. 如何通过WP-CLI修复WordPress数据库
    7. 如何增加PHP内存限制
    8. 如何使用数据库修复插件修复WordPress数据库

    从备份开始

    无论您将采取何种步骤来修复您的数据库,您都应该始终从备份您的站点开始。

    使用备份插件或转到您的托管服务提供商界面并在那里进行手动备份。使用宝塔面板的站长们可以使用备份计划进行数据备份,但您也可以根据需要进行手动备份或增加频率。

    如何使用数据库日志文件诊断WordPress数据库错误

    第一步是查看错误日志并确定问题所在,你可以通过在wp-config.php中启用错误日志

    日志会告诉您网站上发生了什么以及发生了哪些错误。您可以使用这些来诊断数据库连接问题。

    完成后,请使用下面的相关修复程序。或者,如果您不能这样做,请按顺序完成这些修复,因为它们从最简单和最常见的开始。

    如何编辑您的WordPress数据库凭据

    建立数据库连接出错的最常见原因是不正确的数据库凭据。

    要编辑您的数据库凭据,请备份您的wp-config.php文件,然后打开原始文件。备份是必不可少的,以防你犯了一个让事情变得更糟的错误。

    您将在WordPress安装的根目录中找到wp-config.php文件。要访问它,您需要通过SFTP连接到您的站点。

    如果您的站点要正确连接到您的数据库,该文件包含需要正确的四条信息。这些是:

    • 数据库名称。
    • MySQL数据库用户名。
    • MySQL数据库密码。
    • MySQL主机名。

    在您的wp-config.php文件中,这四项信息将如下所示:

    // ** MySQL settings – You can get this info from your web host ** //
    /** The name of the database for WordPress */
    define(‘DB_NAME’, ‘xxxxxx’);
    /** MySQL database username */
    define(‘DB_USER’, ‘xxxxxx’);
    /** MySQL database password */
    define(‘DB_PASSWORD’, ‘xxxxxx’);
    /** MySQL hostname */
    define(‘DB_HOST’, ‘xxxxxx’);
    // ** MySQL settings – You can get this info from your web host ** //
    /** The name of the database for WordPress */
    define(‘DB_NAME’, ‘xxxxxx’);
    /** MySQL database username */
    define(‘DB_USER’, ‘xxxxxx’);
    /** MySQL database password */
    define(‘DB_PASSWORD’, ‘xxxxxx’);
    /** MySQL hostname */
    define(‘DB_HOST’, ‘xxxxxx’);
    // ** MySQL settings - You can get this info from your web host ** //
    /** The name of the database for WordPress */
    define('DB_NAME', 'xxxxxx');
    /** MySQL database username */
    define('DB_USER', 'xxxxxx');
    /** MySQL database password */
    define('DB_PASSWORD', 'xxxxxx');
    /** MySQL hostname */
    define('DB_HOST', 'xxxxxx');

    要找到正确的数据库凭据,您需要通过您的托管服务提供商检查您的管理屏幕,或者找到您在设置托管帐户时最初收到的电子邮件。

    您还可以在phpMyAdmin中找到您的数据库凭据,如果这是您从托管服务提供商处获得的界面,您可以通过cPanel访问该凭据。

    一旦您正确更新了数据库凭据,请保存您的“新”wp-config.php文件,将其关闭,然后再次尝试访问您的站点。

    如果您仍然无法访问数据库,请继续阅读以获取更多解决方案。

    如何使用WP_ALLOW_REPAIR修复WordPress数据库

    下一个选项是指示WordPress修复您的数据库的任何问题。您可以通过在wp-config.php文件中添加一行来完成此操作。

    打开文件,找到这一行:

    /* That’s all, stop editing! Happy blogging. */
    /* That’s all, stop editing! Happy blogging. */
    /* That's all, stop editing! Happy blogging. */

    在该行正上方添加此行:

    define (‘WP_ALLOW_REPAIR’, ‘true);
    define (‘WP_ALLOW_REPAIR’, ‘true’);
    define (‘WP_ALLOW_REPAIR’, ‘true’);

    现在,保存您的wp-config.php文件并关闭它。

    同样,请确保首先创建wp-config.php文件的备份副本,以防万一。

    下一步是访问数据库修复页面。您可以在http://your-site.com/wp-admin/maint/repair.php找到它。将your-site.com替换为您网站的域名。

    这将带您进入数据库修复页面:

    数据库修复页面

    数据库修复页面

    您在这里有两个选择:

    • 修复数据库(Repair the database)
    • 修复和优化数据库(Repair and optimize the database)

    如果您也选择对其进行优化,WordPress将遍历您的数据库表并对其进行优化,以使您的站点运行更高效。

    单击您想要的两个按钮中的任何一个,然后等待WordPress修复您的数据库。现在,您的网站应该可以正常工作了。

    完成后,不要忘记删除刚刚添加到wp-config.php文件的行。

    但是,如果这也不起作用怎么办?下一步是转到phpMyAdmin并尝试在那里修复您的数据库。

    如何在phpMyAdmin中修复WordPress数据库

    所以你已经尝试了上面的选项,但你的数据库仍然没有连接。让我们尝试通过phpMyAdmin修复它。

    您不习惯直接访问您的数据库,您可能更喜欢为此使用插件。本文稍后列出了一些可用于修复WordPress数据库的插件。

    您可以通过托管服务提供商的管理屏幕访问phpMyAdmin。在宝塔面板中,您可以通过数据库管理,选择需要修复数据库的站点,然后单击管理链接来访问它。

    在宝塔面板中访问phpMyAdmin

    在宝塔面板中访问phpMyAdmin

    登录phpMyAdmin后,从左侧的数据库列表中单击需要修复的数据库。数据库中的表将在右侧加载:

    phpMyAdmin中的数据库表

    phpMyAdmin中的数据库表

    向下滚动并勾选“Check All ”选项。然后,在“With selected框中,选择“Repair table”。

    在phpMyAdmin中修复数据库

    在phpMyAdmin中修复数据库

    然后系统将处理您的数据库表并进行修复。

    但是,如果这些选项之一不起作用或者您想以不同的方式访问您的站点怎么办?让我们尝试另一种方法。

    如何通过WP-CLI修复WordPress数据库

    如果您使用命令行访问WordPress安装,则可以使用WP-CLI修复数据库。

    为此,请使用wp db repair命令。这可能是修复数据库的最快方法。

    如何增加PHP内存限制

    如果由于超出PHP内存限制而在访问数据库时遇到问题,您可以采取措施增加此限制。

    在wp-config.php文件中,找到这一行:

    define( ‘WP_MEMORY_LIMIT’, 256M’ );
    define( ‘WP_MEMORY_LIMIT’, 256M’ );
    define( 'WP_MEMORY_LIMIT', 256M' );

    256M这个数值与您可以使用的内存量有关。如果它是一个较低的数字,请编辑它以使其更高。256M通常足以用于WordPress站点。请注意,您文件中的数字可能不同,因为它代表您站点的当前内存限制。您也可能根本找不到这条线。

    注:如果您的托管计划不允许您访问更多内存,则可能需要升级您的计划才能实现这一点。或者您可能更愿意切换到为您提供更多内存的提供商。

    如何使用数据库修复插件修复WordPress数据库

    如果您不习惯使用上述任何选项修复数据库,您可以使用数据库插件来修复它。这仅在您对您的网站具有管理员访问权限时才有效。

    可让您修复数据库的插件包括:

    如何优化您的WordPress数据库

    一旦您修复了数据库问题(或在它首先开发它们之前),最好采取措施避免将来出现问题。这里有一些提示,可帮助您管理WordPress数据库并保护它免受未来问题的影响。

    数据库优化插件

    如果您的托管服务提供商没有为您优化数据库,您可以使用插件来解决这个问题。执行此操作的插件包括:

    将MySQL索引添加到wp_options表

    将MySQL index添加到wp_options表(或从该表中删除它)可以加快数据库连接。使用本指南中的提示来确定哪个选项可以使您的网站运行得更快。

    数据库管理和安全良好实践

    管理数据库的良好做法类似于良好的WordPress网站管理:

    • 保持定期备份。如果您需要再次修复您的数据库,知道您有定期的自动备份将使您更轻松并让您安心。使用备份插件,或者,如果您使用宝塔面板,您可以设置定时备份计划,无需动动手指。
    • 确保您的数据库始终得到优化并确保其顺利运行。通过数据库优化插件或选择为您处理此问题的托管服务提供商来执行此操作。
    • 除非您信任收件人,否则切勿泄露您的数据库密码。需要数据库密码才能在站点上工作是不常见的,因此如果您被要求提供密码,请询问原因。
    • 如果其他人有权访问您的数据库,请在他们完成工作后更改凭据,然后更新wp-config.php文件。
    • 只为您的WordPress管理员、您的主机帐户和您的FTP/SFTP访问使用安全密码。在公共连接上时优先使用SFTP而不是FTP。
    • 如果您编写了一个向数据库添加表或记录的插件,请确保在删除插件时删除它们。
    • 采取措施确保您的网站安全并保护其免受黑客攻击。

    小结

    连接到 WordPress 数据库时出现问题令人头疼,而且可能令人生畏。但是,如果您按照上述步骤操作,您应该能够修复它并快速再次访问。

    确保您遵循指南以防止将来发生数据库问题,希望您不必再次修复数据库。

     

  • 如何修复WordPress网站504网关超时错误

    错误类型:
    HTTP错误
    错误名称:
    504网关超时错误
    英文名称:
    HTTP ERROR 504
    错误描述:
    在504网关超时错误是最常见的HTTP的一个5XX面临网站所有者和网站访问者的错误。
    错误变体:
    504 Gateway Timeout
    504 Gateway Timeout NGINX
    NGINX 504 Gateway Timeout
    Gateway Timeout Error
    Error 504
    HTTP Error 504
    HTTP Error 504 — Gateway Timeout
    HTTP 504
    504 Error
    Gateway Timeout (504)
    This page isn’t working — Domain took too long to respond
    504 Gateway Time-out — The server didn’t respond in time
    白屏
    更多信息

    如何修复WordPress网站504网关超时错误

    504网关超时错误是最常见的HTTP的一个5XX面临网站所有者和网站访问者的错误。对于许多WordPress博客和电子商务平台,了解如何修复此类服务器错误对于防止来之不易的访问者跳转到竞争对手网站至关重要。

    由于504 Gateway Timeout错误没有告诉您发生的原因,因此很难确定导致服务器超时的原因。本文将帮助您详细了解它,了解如何诊断其原因,然后修复它。

    在尝试了文章中提到的所有各种解决方案后,您的网站应该立即启动并运行。

    1. 什么是504网关超时错误?
    2. 如何修复504网关超时错误
    3. 其他HTTP错误,如504网关超时

    什么是504网关超时错误?

    每次您在浏览器中访问网站时,浏览器都会向托管该网站的Web服务器发送请求。服务器处理请求并使用请求的资源进行响应。

    HTTP请求和响应的工作原理

    HTTP请求和响应的工作原理

    服务器响应包括许多HTTP状态代码之一,以向浏览器指示响应的状态。但并非所有这些 HTTP 状态代码都是错误。例如,200 OK状态代码意味着服务器成功处理了请求并且“一切正常”。

    5XX类的HTTP状态代码表示什么的错误的服务器,该服务器是意识到这一点,并不能进行客户端的请求。因此,它们也称为服务器错误5xx状态代码。

    正式地,在5xx类下指定了五个状态代码(500501502503、 504 )。您也可能会遇到许多非官方代码(506 、 507 、 509520等)。

    IETF将504网关超时错误定义为:

    504(网关超时)状态代码表示服务器在充当网关或代理时,没有收到来自它需要访问以完成请求的上游服务器的及时响应。

    为了进一步简化,当两个服务器参与处理请求时会发生此错误。第一个服务器(通常是主服务器)超时,等待第二个服务器(上游服务器)的响应。

    504网关超时错误以各种形式表现出来。以下是它通常出现的一些方式:

    Chrome浏览器中的“HTTP ERROR 504”

    Chrome浏览器中的“HTTP ERROR 504”

    504 Gateway Timeout错误类似于502 Bad Gateway错误,表示第一台服务器收到了来自第二台服务器(上游服务器)的无效响应。

    Chrome DevTools中的“504 GATEWAY TIMEOUT”状态代码。

    Chrome DevTools中的“504 GATEWAY TIMEOUT”状态代码

    504网关超时错误的变体

    浏览器会在其中显示任何 504 Gateway Timeout 错误,就像任何其他错误一样。由于有各种操作系统、Web 服务器、浏览器和用户代理,因此它可以以多种方式显示。

    以下是您可能遇到的一些常见 504 错误消息变体:

    • 504 Gateway Timeout
    • 504 Gateway Timeout NGINX
    • NGINX 504 Gateway Timeout
    • Gateway Timeout Error
    • Error 504
    • HTTP Error 504
    • HTTP Error 504 — Gateway Timeout
    • HTTP 504
    • 504 Error
    • Gateway Timeout (504)
    • This page isn’t working — Domain took too long to respond
    • 504 Gateway Time-out — The server didn’t respond in time
    • 白屏

    以上所有错误响应,尽管措辞不同,都指向相同的504网关超时服务器错误。

    Web服务器和网站可以自定义向用户显示504网关超时错误的方式。其中一些可能很酷!这是平息访客失望的绝妙策略。

    GitHub的自定义HTTP 504错误页面

    GitHub的自定义HTTP 504错误页面

    504网关超时错误对SEO的影响

    所有5xx错误都会阻止网页加载,从而对用户体验不利。因此,像谷歌这样的搜索引擎会认真对待这些错误。如果错误持续很长时间,它甚至可能导致从搜索引擎结果中取消对网页的索引。

    例如,当Google蜘蛛偶然发现503 Service Unavailable错误时,他们会明白这是一个临时问题,因为它主要用于启用站点维护模式。因此,他们稍后会再次尝试抓取该页面。

    504网关超时错误不一定是暂时的,因为它可能是由多种原因造成的。如果您的网站仅关闭几分钟,并且蜘蛛程序每分钟都尝试多次抓取它,它们将尝试从缓存中提供该页面。他们甚至不会注意到它。

    但是,如果您的网站停机6个多小时或更长时间,那么Google会将504错误视为您需要尽快修复的严重网站范围问题。这会对您的SEO产生负面影响。

    在Google Search Console中查看抓取错误

    在Google Search Console中查看抓取错误

    Google Search Console是监控网站HTTP 5xx错误的最佳SEO工具之一。

    504网关超时错误原因

    由于504错误是由于服务器之间的超时造成的,因此问题可能不在于客户端的设备或互联网连接。这还包括您的设备和连接。

    504网关超时错误表示Web服务器等待来自另一台服务器的响应时间过长并且“超时”。此超时可能有多种原因:另一台服务器运行不正常、过载或关闭。

    另一个服务器不必总是在外部(例如CDN、API网关)。它也可以是主Web服务器(例如反向代理服务器、数据库服务器)内的类似服务器的实体。

    如何修复504网关超时错误

    如果不了解WordPress站点的确切详细信息,例如其服务器配置、托管计划、第三方插件及其吸引的流量,您可能会发现修复504网关超时错误令人沮丧和不知所措。

    由于涉及许多变量,我建议您首先修复客户端问题,这非常罕见,然后转向修复服务器端问题。他们通常是 504 错误的罪魁祸首。

    尝试重新加载网页

    遇到504网关超时错误时,您可以尝试的第一件事是等待几分钟,然后尝试重新加载页面。

    您可以按F5键盘快捷键在大多数浏览器中刷新/重新加载网页。要在重新加载之前删除页面的浏览器缓存,您可以改为按CTRL+F5快捷键组合。

    在Chrome浏览器中刷新网页

    在Chrome浏览器中刷新网页

    在此期间,您还可以尝试在不同的浏览器中加载该站点,以排除该问题。由于大多数504错误是由于服务器暂时过载造成的,因此使用此解决方案应该会让您的网站立即恢复。

    如果等待并重新加载站点不能解决504错误问题,您可以检查站点是否对所有人或只有您自己关闭。用于测试站点停机时间的两个有用的在线工具是Down for Everyone or Just MeIs It Down Right Now?

    测试wbolt.com在线状态

    测试wbolt.com在线状态

    重新启动您的网络设备

    有时,调制解调器或路由器等网络设备的问题可能会导致504网关超时错误。重新启动这些设备可以帮助您解决问题。

    虽然您可以按任意顺序关闭所有这些网络设备,但重新打开它们的顺序很重要。通常,按照从Internet服务提供商到您的主要客户端设备的连接顺序,从“由外到内”打开这些设备。

    检查您的代理设置

    代理服务器位于您的设备和互联网之间。它主要用于通过从网站和网络服务器(例如使用VPN)隐藏私人信息(例如设备位置)来增强在线隐私。

    虽然代理服务器很少会导致504错误,但错误的代理服务器设置有时可能是原因。您可以禁用代理服务器并尝试重新加载网页以查看它是否会修复错误。

    在Windows 10中更改“代理”设置

    在Windows 10中更改“代理”设置

    大多数客户端不使用代理服务,因此如果您确信不使用任何代理服务器,则可以跳过此步骤。但是,您可能在不知情的情况下进行了设置。我建议您检查设备和浏览器的代理设置以排除此原因。

    DNS问题

    服务器端或客户端(或两者)的DNS问题也可能导致504网关超时错误。

    服务器端DNS问题的最可能原因是FQDN(完全限定域名)未解析正确的IP地址或DNS服务器没有响应。通常,当您刚刚将WordPress站点迁移到新服务器或主机时,就会发生这种情况。因此,等待域的DNS记录完全传播很重要,这可能需要长达24小时。

    您可以使用whatsmydns.net DNS CheckerDNSMap等免费工具来查看您的DNS是否已传播到全球。

    在whatsmydns.net上检查您的域的DNS传播

    在whatsmydns.net上检查您的域的DNS传播

    要修复客户端DNS问题,您可以尝试刷新本地DNS缓存。这就像清除浏览器缓存一样,除了这里,您是从操作系统中清除DNS缓存。

    如果您使用的是Windows,则可以通过打开命令提示符并输入以下指令来刷新DNS缓存:

    ipconfig /flushdns
    ipconfig /flushdns
    ipconfig /flushdns

    在Windows中使用命令提示符刷新DNS缓存

    在Windows中使用命令提示符刷新DNS缓存

    如果有效,您应该会看到“Successfully flushed the DNS resolver Cache.”。

    对于最新的macOS版本,您可以打开终端并运行以下命令:

    sudo killall -HUP mDNSResponder
    sudo killall -HUP mDNSResponder
    sudo killall -HUP mDNSResponder

    该过程完成后,您将不会在 macOS 中看到任何通知,但您可以通过将命令附加到您的自定义消息来更改通知。

    sudo killall -HUP mDNSResponder; DNS Cache was cleared successfully
    sudo killall -HUP mDNSResponder; DNS Cache was cleared successfully
    sudo killall -HUP mDNSResponder; DNS Cache was cleared successfully

    如果您使用的是较旧的macOS版本,您需要输入的命令会根据您运行的macOS版本而有所不同。更详细的可以参考清除DNS缓存教程中的macOS部分

    如果您使用的是Linux操作系统,那么该过程与macOS非常相似,因为即使Linux也使用终端作为其命令行界面。由于有许多Linux发行版,您需要运行的确切命令可能因发行版而异。您可以查看DNS缓存指南以获取更多信息。

    最后,您可以临时更改您的客户端DNS服务器。默认情况下,您的ISP会自动为您分配DNS服务器。但是您可以暂时将这些更改为公共DNS IP。

    您可以试用的一些可靠DNS服务器是Google Public DNSCloudflare 1.1.1.1Quad9 DNSCisco OpenDNS

    在Windows 10中设置自定义DNS服务器

    在Windows 10中设置自定义DNS服务器

    暂时禁用您站点的CDN

    有时,问题也可能与您的内容交付网络 (CDN) 有关。如果站点的源服务器不可访问,大多数CDN将尝试从其缓存中提供完整的网页。

    但是大多数CDN默认不启用此功能,因为在大多数站点(例如WordPress管理仪表盘)上缓存动态资产很复杂。

    在Cloudflare中设置“缓存所有内容”页面规则

    在Cloudflare中设置“缓存所有内容”页面规则

    解决此问题的一种直接方法是暂时禁用您的CDN。例如,如果您使用免费的WordPress插件-CDN Enabler将您的站点资产链接到CDN URL,那么您可以停用该插件并测试重新加载您的站点。

    使用您可能用来连接到CDN的任何其他插件(例如WP Rocket、Breeze、W3 Total Cache)也是如此。

    如果您无法访问站点的管理仪表板,您可以通过SFTP重命名插件的文件夹名称来禁用该插件。

    通过重命名插件文件夹名称,通过SFTP禁用所有插件

    通过重命名插件文件夹名称,通过SFTP禁用所有插件

    像Cloudflare或Sucuri这样的CDN提供完整的代理服务,在它们的边缘服务器和你的源服务器之间有额外的防火墙。因此,您在使用它们时可能会更频繁地遇到HTTP 5xx错误。它们中的大多数缓存了您的源服务器返回的5xx错误,因此很容易对它们进行故障排除。

    Cloudflare的免费计划容易引发5xx错误。不幸的是,因为它是一个完整的代理服务,所以没有快速的方法来禁用它。但在你为此责怪Cloudflare之前,请了解Cloudflare显示了 504 Gateway Timeout错误的两种变体

    Cloudflare中的504网关超时(变体 1)

    当您站点的源服务器以标准HTTP 504响应进行响应时,Cloudflare将向您显示自定义504网关超时错误屏幕。

    Cloudflare的自定义错误504屏幕

    Cloudflare的自定义错误504屏幕

    在这里,问题在于您的Web服务器而不是Cloudflare。您可以尝试使用下面提到的其他解决方案来修复它,或者联系您的托管服务提供商的支持以获得技术帮助。

    Cloudflare的504网关超时(变体 2)

    如果Cloudflare导致504 Gateway Timeout错误,错误屏幕将提及“cloudflare”,这是当前所有Cloudflare资产的标准服务器名称。通常,错误屏幕将显示如下:

    Cloudflare导致的504网关超时错误屏幕

    Cloudflare导致的504网关超时错误屏幕

    由于Cloudflare本身没有响应,因此您不会在此处看到任何带有Cloudflare品牌的错误屏幕。

    最有可能的是,Cloudflare已经意识到这个问题并且正在着手修复。您可以通过查看Cloudflare系统状态网页来确认这一点。或者,您可以联系Cloudflare支持以更快地解决问题。

    在cloudflarestatus.com检查Cloudflare系统状态

    在cloudflarestatus.com检查Cloudflare系统状态

    由于大量上传,Cloudflare的504网关超时

    上传到站点的大小也可能是服务器超时的原因。Cloudflare将Free和Pro计划的上传文件大小(每个HTTP POST请求)限制为100MB。

    Cloudflare对各种计划的“最大上传大小”限制

    Cloudflare对各种计划的“最大上传大小”限制

    问题可能出在您的主机端或Cloudflare。您可以通过使用DNS主机文件绕过Cloudflare并再次尝试上传来找出确切原因。

    如果您将Cloudflare与WordPress一起使用,我建议您使用他们的免费插件从缓存中排除关键URL(例如WordPress管理仪表盘)。

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

    服务器问题是面临504网关超时错误的最常见原因之一。由于大多数WordPress站点都托管在Nginx或Apache网络服务器上,因此Nginx或Apache正在等待某物的响应并超时。

    大多数提供共享托管计划的 WordPress 主机都没有此功能。因此,与您的服务器托管在同一台服务器上的高流量站点也可能导致您的站点抛出504错误。

    过载的服务器并不是服务器超时的唯一原因。504错误可能有许多其他原因:

    缓慢的服务器基础设施

    您用来托管WordPress站点的服务器可能没有足够的资源来处理负载。这就像在十年前的PC上玩现代图形密集型视频游戏。

    服务器只是挂断了试图为网站提供服务。此问题的唯一解决方案是升级到具有更好基础架构的服务器。

    需要更多PHP worker

    PHP worker用于执行您的WordPress站点的代码。一个每月有50,000名访问者的电子商务网站比具有相同流量的简单博客需要更多的资源。如果所有服务器的PHP worker都忙,他们将建立一个队列。

    当队列过大时,服务器会忽略旧的请求,这可能会导致服务器抛出504网关错误。您可以向您的房东咨询有关增加PHP worker数量的问题。这将允许您的站点同时执行多个请求。

    防火墙问题

    您服务器的防火墙可能有一些错误或配置不正确。也许,它的一些规则会阻止服务器正确建立连接。要知道防火墙是否是罪魁祸首,您可以检查服务器的错误日志。

    网络连接问题

    代理服务器和Web服务器之间的连接问题可能会导致响应HTTP请求的延迟。如果您使用负载平衡器,它也可能存在网络连接问题。

    HTTP超时

    当Web服务器和客户端之间的连接保持打开时间过长时,可能会发生HTTP超时。对于WordPress站点,这通常发生在运行WordPress导入时。解决此问题的一种方法是切换到更快的Internet连接。

    您还可以使用支持WP-CLI的工具直接在服务器上运行脚本,完全绕过HTTP连接。例如,您可以使用wp import WP-CLI命令直接通过命令行界面运行WordPress Importer插件。

    重要提示: 504网关超时错误类似于503服务不可用错误502错误网关。但它们都是不同的。

    要自行监控站点的停机时间,您可以使用updown.io之类的工具。它会通过向其发送HTTP请求来定期检查您网站的状态(或任何URL)。您可以将检查频率设置为15秒到1小时。如果您的网站没有正确响应,它会通过电子邮件或短信通知您。

    使用updown.io轻松监控您的网站

    使用updown.io轻松监控您的网站

    您将通过updown.io的每个帐户获得大量免费积分,但如果您正在寻找更便宜的替代品,您可以查看WebGazerUptimeRobot。这两种工具都将帮助您每5分钟免费监控您网站的正常运行时间。对于大多数网站所有者来说,这已经足够了。

    WebGazer网站监控工具的仪表盘

    WebGazer网站监控工具的仪表盘

    监控您的网站将使您了解它的停机频率。如果您使用共享主机提供商,这将特别有用。大多数托管WordPress主机会自动为您处理此问题。因此,始终建议与他们一起去。

    垃圾邮件、机器人或DDoS攻击

    恶意攻击者可以通过发送过多和/或资源密集型请求来使您的Web服务器爬行。如果您的站点被机器人发送垃圾邮件或遭受DDoS攻击,它可能会使您的服务器不堪重负,并导致许多真正的用户出现 504 网关超时错误。

    您可以查看服务器流量和分析,看看是否可以发现站点流量中的任何不规则模式。如果您使用宝塔面板管理您的网站,您可以通过监控管理查看相关数据。

    宝塔面板监控管理界面

    宝塔面板监控管理界面

    最后,您可以使用WordPress安全插件通过发现和阻止令人担忧的流量/IP 来增强您网站的安全性。您也可以要求您的主机阻止某些IP。

    根据攻击的长度和规模,这可能是一个永无止境的将IP列入黑名单的过程,因为许多攻击者在被阻止后更改了他们的IP和代理地址。

    您可以使用Cloudflare或Sucuri等专用安全解决方案来保护您的站点免受DDoS攻击和垃圾邮件机器人的侵害。有关更多信息,您可以安装Sucuri以阻止DDoS攻击

    损坏的WordPress数据库

    有时,504网关超时错误可能是因为数据库损坏,尤其是在WordPress站点中。通常,这是由于损坏的数据库表或文件造成的。有时,它也可能是由严重的安全问题引起的,例如您的网站或数据库被黑客入侵。

    修复损坏的WordPress数据库取决于问题。WP-DBManager之类的插件可以轻松诊断数据库问题并修复它们。我建议您阅读关于修复WordPress数据库问题的详细教程。

    检查您网站的插件和主题

    大多数情况下,第三方插件和主题不会导致504错误。但是它们有可能导致服务器超时,通常是通过将插件/主题生成的许多未缓存请求排队。由于这会占用大量服务器的PHP worker,因此可能会导致504错误。

    这个问题的一个很好的例子是WooCommerce,这是一个安装插件,用于向WordPress网站添加电子商务功能。

    解决此问题的最简单方法是停用所有插件。请记住,如果您只是停用插件,您不会丢失任何数据。

    如果您可以访问管理仪表盘,则可以转到插件,从批量操作菜单中选择停用,选中所有插件,然后点击应用按钮。这将禁用您的所有插件。

    通过WP管理仪表盘停用所有WordPress插件

    通过WP管理仪表盘停用所有WordPress插件

    如果您无法访问您的管理后台,您可以使用之前描述的方法通过SFTP禁用插件。只需重命名主插件文件夹名称即可批量禁用所有插件。

    停用所有插件后,请检查您的网站是否正确加载。如果它有效,您必须激活每个插件,在启用每个插件后测试站点。

    最后,确保您的插件、主题和WordPress核心是最新的。另外,请确保您的服务器正在运行推荐的PHP版本

    如果您觉得这太过分了,您可以随时向您的服务器提供商寻求帮助。

    在最坏的情况下,例如低效查询或插件/主题中的错误代码,您可以聘请WordPress开发人员来解决问题。

    检查错误日志

    在对WordPress站点上的504错误进行故障排除和调试时,查看错误日志非常有用。这可以帮助您快速缩小网站上的问题,特别是如果它是由您网站上要求苛刻的插件引起的。

    您可以通过将以下代码添加到wp-config.php文件来启用WordPress调试模式

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

    WP_DEBUG不断启用或禁用WordPress的调试模式。它有两个可选的伴随常量,可以扩展其功能。WP_DEBUG_LOG常量指示将所有错误保存到目录/wp-content/中的debug.log文件中。如果您没有看到这个文件,您可以随时创建一个。

    WP_DEBUG_DISPLAY常量控制调试日志是否显示在HTML页面上。将此设置为false将隐藏所有错误,但您可以稍后查看错误,因为您也已将其定义WP_DEBUG_LOG为true。

    您还可以通过SFTP下载原始WordPress错误日志文件。通常,您可以在服务器根目录中名为“logs”的文件夹中找到错误日志。

    通过SFTP访问WordPress错误日志文件夹

    通过SFTP访问WordPress错误日志文件夹

    最后,您可以检查服务器日志文件。根据您用于托管WordPress站点的服务器,它们通常位于以下位置:

    • Apache: /var/log/apache2/error.log/
    • nginx: /var/log/nginx/error.log/

    更多信息可以参考ApacheNginx的日志相关文档。

    正确配置Apache或Nginx设置

    您可以编辑服务器配置文件以增加特定指令的资源限制。这可以帮助您解决504网关超时错误。

    对于Apache 网络服务器

    首先,将以下代码添加到您的httpd.conf

    TimeOut 600
    TimeOut 600
    TimeOut 600

    此设置定义了服务器在将其标记为网络超时问题之前等待特定请求的时间。它的默认值为60秒(Apache 2.4版本)。

    您只能在httpd.conf文件中添加此指令,而不能在.htaccess文件中添加。由于大多数共享主机提供商不允许你修改的httpd.conf文件,你可以尝试增加值LimitRequestBody指令在你的.htaccess文件来代替。

    然后将以下行添加到您的php.ini文件中:

    max_execution_time 300
    max_execution_time 300
    max_execution_time 300

    PHP的max_execution_time指令的默认值为30 秒。增加它将使您网站的PHP脚本运行更长时间。

    对于Nginx网络服务器

    如果您在Nginx+FastCGI进程管理器 (PHP-FPM) 上运行WordPress站点或使用Nginx作为Apache的反向代理,您可以调整服务器设置以帮助防止504网关超时错误。

    (1)Nginx+FastCGI (PHP-FPM)上的504网关超时错误

    首先,您必须编辑PHP-FPM池配置文件。您可以在Nginx服务器中的/etc/php7.4/fpm/pool.d/www.conf位置找到它(确切路径可能因PHP版本而异)。或者,您可以在终端中运行以下命令来编辑PHP-FPM池配置文件:

    sudo nano /etc/php/7.2/fpm/pool.d/www.conf
    sudo nano /etc/php/7.2/fpm/pool.d/www.conf
    sudo nano /etc/php/7.2/fpm/pool.d/www.conf

    接下来,设置以下指令:

    request_terminate_timeout = 300
    request_terminate_timeout = 300
    request_terminate_timeout = 300

    在此之后,您必须编辑您的php.ini文件。您可以在/etc/php.ini找到它。打开文件并将max_execution_time指令的值添加/更改为300秒。

    max_execution_time = 300
    max_execution_time = 300
    max_execution_time = 300

    最后,将以下代码添加到nginx.conf文件的位置块:

    location ~ .php$ {
    fastcgi_read_timeout 300;
    }
    location ~ .php$ {

    fastcgi_read_timeout 300;
    }
    location ~ .php$ {
    ...
    fastcgi_read_timeout 300;
    }

    重新加载Nginx和PHP-FPM以使更改生效。

    sudo service nginx reload
    sudo service php7.4-fpm reload
    sudo service nginx reload
    sudo service php7.4-fpm reload
    sudo service nginx reload
    sudo service php7.4-fpm reload

    重新加载PHP-FPM的确切代码将根据您的服务器上安装的PHP版本而有所不同。测试您的网站,看看它是否已解决问题。

    (2)Nginx代理上的504网关超时错误

    如果您使用Nginx作为Apache的反向代理服务器,那么您可以通过将以下指令添加到您的nginx.conf文件来使其对服务器超时更加宽容:

    proxy_connect_timeout 600;
    proxy_send_timeout 600;
    proxy_read_timeout 600;
    send_timeout 600;
    proxy_connect_timeout 600;
    proxy_send_timeout 600;
    proxy_read_timeout 600;
    send_timeout 600;
    proxy_connect_timeout 600;
    proxy_send_timeout 600;
    proxy_read_timeout 600;
    send_timeout 600;

    不要忘记在进行更改后重新加载Nginx。

    sudo service nginx reload
    sudo service nginx reload
    sudo service nginx reload

    其他HTTP错误,如504网关超时

    正如文章前面提到的,许多其他HTTP 5xx错误就像504网关超时错误一样。这是因为它们都发生在服务器端。这些错误包括:

    由于客户端问题导致的其他HTTP错误,例如404 Not Found错误,也类似于504错误。您可以参考HTTP状态代码列表以获取更多信息。

    小结

    由于多种原因,您的WordPress网站可能会受到504网关超时错误的影响。在本文中,您学习了如何对它们进行故障排除。通常,这些错误是由服务器端问题引起的,在这种情况下,您可以联系您的主机并快速解决问题。

    但是,您还必须了解,此错误可能是由于第三方插件、主题、服务、低效的数据库查询或其中两个或多个的组合造成的。如果您要最大限度地利用服务器资源(例如PHP worker),建议优化您的站点以提高性能。

    如果您仍然发现您的网站超时,那么您很可能需要升级您的托管计划或增加PHP worker的数量。我建议您仅在用尽本文中描述的所有其他解决方案后才考虑此选项。

  • 如何修复将图像上传到WordPress媒体库时提示HTTP Error

    错误类型:
    WP内部错误
    错误名称:
    HTTP错误
    英文名称:
    HTTP Error
    错误描述:
    当尝试使用内置媒体库工具上传图像或视频时出现问题时,会发生WordPress HTTP错误。不幸的是,与我们通常可以引用HTTP状态代码的浏览器错误不同,WordPress错误有时更难解决(特别是如果您不知道如何启用WordPress调试模式)。

    如何修复将图像上传到WordPress媒体库时提示HTTP Error

    与任何平台一样,总会有那些烦人的错误或问题,您必须学习如何解决。相信我们,我们几乎都见过他们!从死亡白屏数据库连接错误,WordPress肯定有它的怪癖。但我们仍然喜欢它!今天我们将深入探讨一种更常见的问题,即HTTP错误。用户在尝试将图像或视频上传到WordPress媒体库时通常会遇到这种情况。

    虽然HTTP错误通常很容易修复,但它可能会令人沮丧,因为它通常会中断您的工作流程。没有什么比花20分钟试图为您的博客文章找到完美图像更糟糕的了,您去上传它,然后砰,您突然遇到了一个非常模糊的错误。

    下面我们将探讨发生此错误的原因以及您可以采取哪些措施来快速解决该错误,以便您可以重新上传媒体。

    什么是HTTP Error?

    当尝试使用内置媒体库工具上传图像或视频时出现问题时,会发生WordPress HTTP错误。不幸的是,与我们通常可以引用HTTP状态代码的浏览器错误不同,WordPress错误有时更难解决(特别是如果您不知道如何启用WordPress调试模式)。

    非常含糊的“HTTP Error”绝对不能帮助您确定可能出错的地方,甚至无法确定从哪里开始查找。但那是因为失败可能有几个原因,而WordPress根本不知道为什么,所以它会吐出一条通用错误消息(如下所示)。

    上传图片时WordPress提示HTTP Error

    上传图片时WordPress提示HTTP Error

    如何修复WordPress网站HTTP Error

    根据我们的经验,WordPress HTTP错误通常源于两个方面:第一个是客户端或用户错误 (您的登录会话、文件名中的错误字符等),第二个是您的WordPress主机 (服务器问题、内存列表、第三方插件、共享主机限制资源等)。所以我们将深入探讨两者。

    以下是修复错误的一些建议和检查事项(按我们看到的最常见原因排序):

    1. 刷新页面
    2. 缩小或调整文件大小
    3. 重命名图像文件
    4. 暂时停用插件和主题
    5. 询问您的WordPress主机
    6. 增加PHP内存限制
    7. 检查上传文件夹权限
    8. 移至最新版本的PHP
    9. 修复Imagick和共享主机的性能问题
    10. 删除自定义媒体库路径
    11. 禁用mod_security
    12. 安装添加到服务器插件

    1.刷新页面

    遇到WordPress HTTP错误时,您应该做的第一件事就是在浏览器中刷新页面。听起来太容易了吧?嗯,实际上这是我们见过的最常见的修复方法。原因如下:

    首先,无论出于何种原因,您的浏览器可能暂时失去了与WordPress的连接,并且该过程根本无法完成。这可能是由于您的ISP、您的WordPress主机的临时故障等。如果您刷新页面并尝试再次上传,错误有时会自行解决。

    其次,我们还看到有时在刷新页面或从另一个选项卡返回WordPress编辑器后,它会突然将您踢出局。这很可能表明您的WordPress登录会话已过期。您应该会看到以下消息:

    您的会话已过期。请登录以从上次停止的地方继续。

    您的会话已过期

    您的会话已过期

    很自然地,您重新登录并尝试再次上传您的媒体。但是,发生HTTP错误。这是WordPress的一个怪癖。重新登录后,您实际上需要手动刷新您所在的页面。然后上传媒体将再次工作。

    2. 缩小或调整文件大小

    您可能需要编辑图像文件,这可能需要减小文件大小(KB或MB)或减小宽度/高度(像素)。我们建议查看我们关于如何优化图像的深入文章。当您的图像上传到媒体库时,您可以使用许多第三方图像优化插件来自动执行此操作(缩小和调整大小)。

    您可以使用Imagify,一款很不错的插件。但也有很多其他可选。只需确保无论您使用哪个插件,它们都是在自己的服务器上优化图像,而不是在本地。如果您在本地批量优化图像,这可能会严重损害您网站的性能。

    WordPress插件-Imagify

    WordPress插件-Imagify

    上传高分辨率图像是可以的,因为WordPress支持开箱即用的响应式图像。事实上,您可能希望图像在视网膜显示器上看起来清晰。但是,除非您的摄影师或企业需要高分辨率图像,否则一个好的经验法则是将最终图像大小保持在100KB 以下,并且不超过网站内容div宽度的两倍。

    此外,您可能必须使用PNG和JPG文件类型。有时一个可能比另一个大得多,这取决于它是什么类型的图像。

    根据您的WordPress主机的配置,您可能还需要考虑增加WordPress最大上传文件大小

    3.重命名图像文件

    尝试重命名图像文件永远不会有什么坏处。如果您尝试上传重复的文件名,WordPress应自动在末尾附加一个数字,但如果这不起作用,请尝试重命名您的文件。不幸的是,WordPress不允许您重命名已上传图像文件的文件,因此您需要在本地重命名并重新上传。

    当我们上传已经存在的图像时,我们通常会在末尾添加-1或-2(例如:image-file-1.png、image-file-2.png)。确保添加破折号,否则Google会将其视为一个词,这可能会影响您的SEO。

    此外,为安全起见,请避免上传文件名包含特殊字符的图像。这包括国际语言符号和字符,例如撇号。破折号没问题。建议一般情况下使用英语或者拼音作为文件名,而不是特殊字符。虽然WordPress在技术上可以支持这些,但还有很多其他问题可能会出现。

    重命名没有特殊字符的图像文件

    重命名没有特殊字符的图像文件

    4. 暂时停用插件和主题

    如果您遇到HTTP错误,请尝试停用插件,甚至将WordPress主题切换为默认主题,看看是否能解决问题,这总是一个好主意。一些典型的罪魁祸首包括图像优化插件(它们直接与媒体库相关联)和安全插件,如WordFence(这些插件有时过于严格)。或者您可以简单地删除您的WordPress主题。

    如果您不想影响您的实时站点,只需将您的实时站点克隆到临时环境即可。如果登台时也发生WordPress HTTP错误,那么您可以快速停用所有插件以开始缩小范围。

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

    停用所有插件

    停用所有插件

    如果这解决了问题,您将需要找到罪魁祸首。开始一一激活它们,然后尝试再次在媒体库中上传图像。当您看到HTTP错误返回时,您就发现了行为不端的插件。然后,您可以联系插件开发人员寻求帮助或在WordPress插件库中发布支持工单。

    如果您无法访问WordPress管理后台,您可以通过FTP进入您的服务器并将您的插件文件夹重命名为plugins_old. 然后再次检查您的网站。如果它有效,那么您将需要一个一个地测试每个插件。将您的插件文件夹重命名回plugins,然后将if it中的每个插件文件夹重命名,直到找到为止。您也可以先尝试在临时站点上复制此内容  。

    重命名插件文件夹

    重命名插件文件夹

    您的WordPress主题也是如此。通常主题不与媒体库相关联,但我们已经看到了一些奇怪的设置。尝试将您的主题切换到默认的二〇二二主题以查看它是否修复它永远不会有什么坏处。就像使用插件一样,您不必担心丢失当前的主题设置。所有这些都存储在WordPress数据库中。

    5. 询问您的WordPress主机

    如果您已经尝试了上述步骤但仍然收到WordPress HTTP错误,我们建议您在继续之前联系您的WordPress主机寻求帮助。许多额外的故障排除步骤都更高级一些,很多时候您可以要求您的主机为您执行或检查。

    6.增加PHP内存限制

    导致WordPress HTTP错误的另一个原因是您的服务器缺乏用于后台上传过程成功完成的可用内存。这是共享 WordPress 托管的一个非常常见的问题。要修复它,您需要增加PHP可以使用的内存量, 建议使用256 MB。

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

    您可以通过将以下代码添加到您的文件wp-config.php增加PHP内存限制。注意:这可能会被您的WordPress主机的服务器级规则覆盖。

    define( ‘WP_MEMORY_LIMIT’, ‘256M’ );
    define( ‘WP_MEMORY_LIMIT’, ‘256M’ );
    define( 'WP_MEMORY_LIMIT', '256M' );

    增加cPanel中的PHP内存限制

    如果您的主机使用cPanel,您可以在两个不同的方法增加PHP内存限制

    第一个是在软件部分下。单击“选择PHP版本”。单击“切换到PHP选项”。然后您可以单击“memory_limit”来更改其值。

    第二个也是也在软件部分下。单击“MultiPHP INI编辑器”工具。这允许您修改php.ini文件。只需向下滚动到显示“memory_limit”的位置并输入更高的值。

    增加cPanel中的PHP内存限制

    增加cPanel中的PHP内存限制

    使用php.ini增加PHP内存限制

    如果您不使用cPanel,您也可以php.ini直接编辑文件(如果您有访问权限)。为此, 请通过FTP或SSH登录到您的站点,转到站点的根目录并打开或创建一个php.ini文件。

    无法通过SSH连接?了解如何修复SSH“连接被拒绝”错误

    如果该文件已经存在,请搜索“memory_limit”设置并根据需要进行修改。

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

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

    使用 .htaccess增加PHP内存限制

    .htaccess文件是一个特殊的隐藏文件,其中包含可用于修改服务器行为的各种设置,一直到目录特定级别。如果您无权访问php.ini,我们建议您接下来尝试此操作。首先, 通过FTP或SSH登录您的站点,查看您的根目录,看看那里是否有.htaccess文件。

    如果有,您可以编辑该文件并修改“php_value memory_limit”值。

    7.检查上传文件夹权限

    通常,当出现文件夹权限错误时,您应该在WordPress中收到一条消息,说明它无法写入目录。然而,情况可能并非总是如此。如果WordPress网站被黑客入侵或感染了恶意软件,则权限可能会出现很多问题。

    您关心的主要文件夹是您的/wp-content/uploads文件夹,因为这是通过媒体库上传文件时存储的位置。

    根据WordPress Codex,所有目录都应该是755 (drwxr-xr-x) 或750。

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

    确保如果您手动更新此文件夹的权限,请同时选中“递归到子目录”选项以及“仅应用于目录”。

    WordPress上传目录权限

    WordPress上传目录权限

    8. 迁移到最新版本的PHP

    WordPress官方推荐PHP 7.3或更高版本。如果您没有运行它,那么您就低于CMS开发人员设定的最低要求。

    我们始终建议运行最新和受支持的PHP版本,因为它提供了更好的安全性和性能,包括错误修复和需要弃用的功能。

    我们已经看到旧版本的PHP导致各种错误,包括臭名昭著的WordPress HTTP错误。在宝塔面板,您只需在宝塔面板仪表盘左侧“网站”菜单,找到你需要切换PHP版本的网站,然后点击“设置”操作。

    宝塔面板网站管理

    宝塔面板网站管理

    在弹出窗口中,点击PHP版本,然后在PHP版本下拉菜单中选择你所需的版本即可。

    宝塔面板切换PHP版本

    宝塔面板切换PHP版本

    如果您的主机使用cPanel,他们可能已经为您提供了一个选项来更改您的PHP版本。只需登录cPanel,然后在“软件”类别下单击“选择PHP版本”。

    选择PHP版本

    选择PHP版本

    然后,您可以选择您的主机支持的可用PHP版本。

    cPanel中的PHP 7

    cPanel中的PHP 7

    9. 修复Imagick和共享主机的性能问题

    WordPress有两种不同的PHP模块用于图像处理:GD Library和Imagick (ImageMagick)。根据您的服务器上安装的内容,WordPress可能会使用任何一种。

    问题是共享的WordPress主机在幕后有很多隐藏的资源限制。这是他们在同一台机器上塞满这么多用户的唯一方法。人们遇到的一个常见问题是分配给Imagick (ImageMagick) 的资源太少。主机将限制使用多线程的能力,从而导致WordPress HTTP错误。

    您可以将以下代码添加到 的顶部.htaccess file,将线程限制值更改为更高的值。

    MAGICK_THREAD_LIMIT 1
    MAGICK_THREAD_LIMIT 1
    MAGICK_THREAD_LIMIT 1

    您的另一个选择是告诉WordPress使用GD库而不是Imagick。您只需将以下代码添加到您的主题functions.php文件即可。

    function wpb_image_editor_default_to_gd( $editors ) {
    $gd_editor = ‘WP_Image_Editor_GD’;
    $editors = array_diff( $editors, array( $gd_editor ) );
    array_unshift( $editors, $gd_editor );
    return $editors;
    }
    add_filter( ‘wp_image_editors’, ‘wpb_image_editor_default_to_gd’ );
    function wpb_image_editor_default_to_gd( $editors ) {
    $gd_editor = ‘WP_Image_Editor_GD’;
    $editors = array_diff( $editors, array( $gd_editor ) );
    array_unshift( $editors, $gd_editor );
    return $editors;
    }
    add_filter( ‘wp_image_editors’, ‘wpb_image_editor_default_to_gd’ );
    function wpb_image_editor_default_to_gd( $editors ) {
    $gd_editor = ‘WP_Image_Editor_GD’;
    $editors = array_diff( $editors, array( $gd_editor ) );
    array_unshift( $editors, $gd_editor );
    return $editors;
    }
    add_filter( ‘wp_image_editors’, ‘wpb_image_editor_default_to_gd’ );

    我们会直言不讳。如果您必须进行此类调整,则是时候迁移到新的WordPress主机了。而且在大多数情况下,您只受到PHP worker的限制。作为网站所有者,您不必担心这些类型的事情。

    10.删除自定义媒体库路径

    很可能是您的媒体库路径设置不正确。当用户将他们的本地开发站点迁移到生产时,我们通常会看到这一点。如果您查看WordPress仪表盘中“设置”下的“媒体”并看到列出的文件路径值,请继续删除它并单击“保存更改”。您希望将媒体存储在默认/wp-content/uploads文件夹中。

    下面是它通常的样子。如果您没有看到库路径,那么您在这里都很好。

    WordPress媒体设置

    WordPress媒体设置

    11. 禁用mod_security

    Mod_security是一个开源防火墙,有时可能会导致WordPress HTTP错误发生。您可以通过将以下代码添加到.htaccess文件顶部来禁用mod_security 。

    <IfModule mod_security.c>
    SecFilterEngine Off
    SecFilterScanPOST Off
    </IfModule>
    <IfModule mod_security.c>
    SecFilterEngine Off
    SecFilterScanPOST Off
    </IfModule>
    <IfModule mod_security.c> 
    SecFilterEngine Off 
    SecFilterScanPOST Off 
    </IfModule>

    如果您使用的是cPanel,您还可以通过单击“安全”部分中的“ModSecurity”来禁用它。

    cPanel ModSecurity

    cPanel ModSecurity

    然后将状态从“打开”切换到要禁用它的域旁边的“关闭”。

    禁用mod_security

    禁用mod_security

    我们始终建议使用企业级且价格合理的WAF,如Sucuri或Cloudflare。

    12.安装Add From Server插件

    最后但并非最不重要的一点是,如果您真的陷入困境并且似乎没有其他任何工作,您可以安装免费的Add From Server 插件。也许您正在等待WordPress主机或开发人员关于如何解决WordPress HTTP错误的响应。

    WordPress插件-Add From Server

    WordPress插件-Add From Server

    添加到服务器插件通常会让您绕过错误,并且可能是一个很好的临时修复,特别是如果您正处于重要事情的中间。它最初的开发目的是允许您通过SFTP添加非常大的文件。 重要提示:此插件不再维护或支持。使用风险自负。

    小结

    如您所见,有多种不同的方法可以修复WordPress HTTP错误。希望上述解决方案之一对您有用,并且您已经回到正轨并上传媒体。如果您一次又一次地继续收到此错误,则可能是时候考虑升级到更好的WordPress主机了。

  • 如何修复ERR_CONNECTION_TIMED_OUT错误

    错误类型:
    浏览器错误
    错误名称:
    连接超时错误
    英文名称:
    ERR_CONNECTION_TIMED_OUT
    错误描述:
    ERR_CONNECTION_TIMED_OUT错误通常意味着您的本地网络连接有问题。然而,情况并非总是如此。
    错误变体:
    The connection has timed out
    hmmm…can’t reach this page
    Safari Can’t Open the Page
    更多信息

    如何修复ERR_CONNECTION_TIMED_OUT错误

    您是否在浏览器中看到“ERR_CONNECTION_TIMED_OUT”错误?不是很有帮助的错误信息,是吗?如果您是 WordPress 的日常用户,那么了解此类常见错误总是有好处的,这些错误可能会阻止您访问您的网站。

    在今天的文章中,我们将深入探讨“ERR_CONNECTION_TIMED_OUT”错误,并检查您为什么会看到此错误以及您可以采取哪些措施来快速修复它。简而言之,它表明系统不可用,并且给定的连接时间已过,现在请求已超时。但这实际上意味着什么?

    1. 什么是ERR_CONNECTION_TIMED_OUT错误?
    2. 如何修复ERR_CONNECTION_TIMED_OUT错误

    什么是ERR_CONNECTION_TIMED_OUT错误?

    ERR_CONNECTION_TIMED_OUT错误通常意味着您的本地网络连接有问题。然而,情况并非总是如此。

    根据WordPress支持文档,当您的网站尝试做的事情超出您的服务器所能管理的范围时,会出现连接超时错误。这在内存限制受限的共享主机上尤为常见。

    当您访问一个网站但它没有加载时,您的浏览器会尝试大约30秒左右,直到它终止连接。之后它将返回一个“ERR_CONNECTION_TIMED_OUT”错误,表明存在通信问题。在Google Chrome中,您可能会看到“无法访问此网站。Domain.com的响应时间过长。”

    Chrome中的ERR_CONNECTION_TIMED_OUT错误

    Chrome中的ERR_CONNECTION_TIMED_OUT错误

    由于所有不同的Web 浏览器、操作系统和服务器,错误可能以多种不同的方式呈现。但它们中的大多数具有相同或相似的含义。“ERR_NETWORK_CHANGED”和“ERR_CONNECTION_REFUSED”是两个非常相关的错误,通常可以通过以下相同的故障排除步骤解决。

    出现在“无法访问此站点”下的另一个常见错误代码是DNS_PROBE_FINISHED_NXDOMAIN,这是一个DNS错误,本质上意味着请求的域不存在。

    以下是错误在不同浏览器中可能如何呈现的几个示例。

    火狐浏览器

    在Mozilla Firefox中,错误将显示为“连接已超时”。domain.com的服务器响应时间过长。

    Firefox中的ERR_CONNECTION_TIMED_OUT错误

    Firefox中的ERR_CONNECTION_TIMED_OUT错误

    微软Edge

    在Microsoft Edge中,错误将显示为“嗯……无法访问此页面。Domain.com花了太长时间进行响应。” 然而,在Edge中,它也包含“ERR_CONNECTION_TIMED_OUT”错误。

    Edge中的ERR_CONNECTION_TIMED_OUT错误

    Edge中的ERR_CONNECTION_TIMED_OUT错误

    Safari浏览器

    在Safari中,错误将显示为“Safari无法打开页面。Safari无法打开页面domain.com,因为该页面所在的服务器没有响应。”

    Safari中的ERR_CONNECTION_TIMED_OUT错误

    Safari中的ERR_CONNECTION_TIMED_OUT错误

    如何修复ERR_CONNECTION_TIMED_OUT错误

    如果您在WordPress网站上看到此错误,您应该从哪里开始进行故障排除?如果没有大量的上下文,有时甚至会令人沮丧和不知从何开始。通常,这些是客户端问题(网络连接或防火墙问题 )或托管站点的服务器问题(内存限制、执行时间等)。

    1. 检查您的连接

    Google Chrome、Firefox和Edge都建议您检查网络连接。虽然这听起来很明显,但它们都指向首先检查您的连接,因为这是导致错误的最常见原因之一。以下是我们推荐的几件事:

    • 重新启动您的家庭或办公室路由器。这只需要几分钟,解决的问题比很多人愿意承认的要多。要完全重启它,请断开电源,然后等待30秒再重新插入。
    • 检查您的wifi连接是否不良或速度较慢。这在繁忙的公共wifi热点(例如咖啡店或机场)上很常见。

    2. 暂时禁用防火墙和杀毒软件

    防火墙和防病毒软件旨在保护用户及其系统。他们会定期扫描您的设备并自动阻止任何可疑活动。但是,这种类型的安全有时会导致连接问题。

    这是因为防火墙通常会阻止它们不需要的页面或拒绝完全安全的内容。我们已经多次看到这种情况发生在像AVG这样的软件上。要检查您是否属于这种情况,请尝试禁用防火墙和防病毒程序。当然,只有在您确定要访问的站点是安全的情况下才建议这样做。

    此外,您应该只暂时禁用此类软件。在您完成检查以查看错误是否已解决后重新打开它,这样您就不会容易受到攻击。如果由于防火墙或防病毒软件而反复遇到错误,则可能需要考虑更改正在使用的内容。

    这些类型的工具还具有您可以填写的所谓“误报”报告。如果您100%肯定您访问的网站已被阻止并且不应该被阻止,则可以让软件开发人员知道。以下是一些快速链接:

    3. 禁用代理设置

    如果您使用代理服务,有时您可能会看到ERR_CONNECTION_TIMED_OUT错误。这通常很少见,尤其是在客户端。然而,一个人可能已经在你不知道的情况下被设置了。要禁用或检查以确保没有启用代理设置,请按照下列步骤操作。

    访问Chrome浏览器中的设置菜单。这将打开完整的选项菜单。在“系统”部分下(您需要单击底部的“高级”才能看到这一点),您应该会找到一个标题为“打开代理设置”的条目。通过选择它,您将进入相应的菜单:

    在Chrome中打开代理设置

    在Chrome中打开代理设置

    您的下一步取决于您当前使用的系统。Windows用户需要单击LAN设置并取消选中为LAN使用代理服务器选项。如果您是Mac用户,您应该立即在相关菜单中找到自己。然后,您必须取消选中所有可选择的代理协议并检查ERR_CONNECTION_TIMED_OUT消息是否已解决。

    在Mac上取消选中代理

    在Mac上取消选中代理

    如果您使用的是Windows,您将看到“局域网 (LAN) 设置”窗口出现。您需要确认未选中“为LAN使用代理服务器”选项。

    在Windows中禁用Chrome代理设置

    在Windows中禁用Chrome代理设置

    如果您使用的是ExpressVPN或TunnelBear等VPN,情况也是如此。确保您不是意外连接。

    4. 更改DNS服务器

    您可以尝试的下一件事是更改您的DNS服务器。默认情况下,DNS服务器由您的ISP自动分配。但是您可以尝试将这些临时更改为公共DNS服务器,例如Google或Cloudflare。

    • 有些人更喜欢 长期使用Google的公共DNS(8.8.8.8和8.8.4.4),因为它们有时更可靠。
    • Cloudflare还提供安全且快速的免费DNS(1.1.1.1和1.0.0.1),我们将在本示例中使用。如果你想使用谷歌的步骤是一样的,你只需用谷歌替换DNS服务器地址。

    提示:如果您已经在使用免费的DNS服务器并且遇到问题,删除它并默认返回到您的ISP的DNS服务器有时也可以解决问题。

    谷歌和Cloudflare并不是100%完美的,在一些情况下,我们注意到切换回来已经解决了这个问题。如果您在机场或咖啡店使用Wifi热点,则尤其如此。

    Windows

    在Windows中,只需按Windows徽标键和R打开命令提示符。然后键入“控制面板”并按Enter。

    运行控制面板窗口

    运行控制面板窗口

    单击“网络和Internet”,然后单击“网络和共享中心”。在左侧,单击“更改适配器设置”。

    更改适配器设置

    更改适配器设置

    右键单击您当前的连接,根据您的连接方式,这将是本地连接或无线网络连接。然后点击“属性”。

    无线连接属性

    无线连接属性

    选择 Internet 协议版本 4(或版本 6,如果需要)并单击“属性”。

    IPV 4属性

    IPV 4属性

    记下任何现有设置,以防您需要恢复。单击“使用以下DNS服务器地址”。输入以下内容,或用以下内容替换现有内容:

    对于 IPv4: 1.1.1.1 和 1.0.0.1;对于 IPv6: 2606:4700:4700::1111 和 2606:4700:4700::1001

    DNS服务器地址

    DNS服务器地址

    单击确定,然后关闭。重新启动浏览器。

    Mac电脑

    要在Mac上更改DNS服务器,请转到系统偏好设置…

    Mac系统偏好设置

    Mac系统偏好设置

    单击网络图标,然后单击“高级”。

    Mac网络高级设置

    Mac网络高级设置

    单击“DNS”选项卡。

    Mac DNS

    Mac DNS

    然后添加Cloudflare 的DNS服务器地址。

    对于 IPv4: 1.1.1.1 和 1.0.0.1;对于 IPv6: 2606:4700:4700::1111 和 2606:4700:4700::1001

    5.刷新/更新DNS

    您还可以尝试刷新本地DNS缓存。这类似于清除浏览器缓存。可能是您尝试访问的站点未解析为正确的IP地址。如果您刚刚将WordPress站点迁移到新主机,那么等待事情完全传播很重要。这有时可能需要长达24小时,但也可能只有几分钟。这取决于您的DNS提供商和您的DNS记录的TTL值。

    Windows

    在Windows中,只需打开命令提示符并输入以下内容:

    ipconfig /flushdns
    ipconfig /flushdns
    ipconfig /flushdns

    命令提示符 – 刷新DNS

    命令提示符 – 刷新DNS

    如果工作正常,您应该会看到“Successfully flushed the DNS resolver Cache”。

    Mac电脑

    对于macOS用户,您可以在终端中输入以下内容:

    dscacheutil -flushcache
    dscacheutil -flushcache
    dscacheutil -flushcache

    Mac刷新缓存

    Mac刷新缓存

    注意:Mac上没有成功消息。

    6. 检查您的主机文件

    每台计算机都有他们所谓的本地主机文件。这是一个包含映射到特定IP地址的手动DNS条目的文件。通常,仅当您想在将域切换到新主机之前预览DNS时才编辑此项 。或者,您可能有一个使用Vagrant或Docker之类的工具运行的本地开发站点。

    可以通过多种不同方式更改或编辑此文件。因此,检查以确保您尝试访问的网站不在那里总是很好的。只需按照以下步骤操作即可。

    Windows

    hosts文件通常需要额外的访问权限。因此,第一步是以管理员身份打开您的文本编辑器。只需单击您的开始菜单,搜索您的文本编辑器,右键单击它并选择“以管理员身份运行”。这可以在任何文本编辑器中完成,例如Notepad、Notepad++、Atom等。我们在下面的示例中使用Sublime。

    以管理员身份运行文本编辑器

    以管理员身份运行文本编辑器

    在文本编辑器中单击文件 → 打开并浏览到以下位置:

    C:WindowsSystem32driversetc
    C:WindowsSystem32driversetc
    C:WindowsSystem32driversetc

    单击主机文件并“打开”。

    打开主机文件

    打开主机文件

    仔细检查并确保您尝试访问的网站未在其中列出。如果是,请将其删除。

    Mac电脑

    要在Mac上检查您的主机文件,我们建议您使用Gas Mask。这是一个免费的应用程序,可以用作主机文件管理器、主机文件编辑器,并可以在它们之间切换。它使一切变得快速而简单!否则,您可以按照以下步骤在Mac上手动编辑主机文件。

    转到实用程序,然后单击“终端”。

    Mac实用程序终端

    Mac实用程序终端

    输入以下命令并按Enter(很可能还会提示您输入管理员密码)。

    sudo nano /private/etc/hosts
    sudo nano /private/etc/hosts
    sudo nano /private/etc/hosts

    仔细检查并确保您尝试访问的网站未列在您的主机文件中。如果是,请将其删除。

    在Mac上编辑主机文件

    在Mac上编辑主机文件

    7. 检查您的域的DNS

    您还应该验证您的域的DNS是否正确指向您的托管服务提供商。如果您最近将WordPress网站迁移到新主机,则可能是您计算机上的DNS缓存不正确。在这种情况下,上面的第5步应该可以解决这个问题。或者它可能只是为时过早,您需要等待几个小时才能让DNS完全传播。

    8.清除浏览器缓存

    Web浏览器将信息存储在计算机的缓存中。这包括您的浏览历史记录、保存的登录数据和 cookie——所有这些都被记录下来,以便在下次访问时更快地加载相关页面。

    尽管它们很有用,但缓存过时时可能会导致许多问题。幸运的是,通过清除缓存可以轻松解决此问题。

    但在此之前,您可以先在隐身模式下打开浏览器,轻松检查是否是浏览器缓存问题 。或者您可以尝试其他浏览器。如果您仍然看到错误,那么您需要继续清除缓存。

    在本例中,我们将使用Google Chrome。首先打开主菜单(在浏览器窗口的右上角)。从那里,选择更多工具:然后您可以单击清除浏览器数据。

    Chrome清除浏览数据

    Chrome清除浏览数据

    在结果页面上,您需要确保选择了所有列出的文件类别。如果不是,Chrome将无法清空整个缓存。相反,它只会删除最近的条目,这不会产生预期的效果:

    清除浏览数据

    清除浏览数据

    完成此过程的另一种方法是在地址栏中输入以下URL:

    chrome://settings/clearBrowserData
    chrome://settings/clearBrowserData
    chrome://settings/clearBrowserData
    

    生成的屏幕应授予您访问我们上面概述的相同选项的权限。这里有一些其他有用的链接,用于清除缓存。

    9. 查看最大执行时间

    我们将深入探讨的其余故障排除步骤与WordPress站点或服务器的配置有关,这些步骤可能有助于修复“ERR_CONNECTION_TIMED_OUT”错误。

    第一个是为您的站点设置的最长执行时间。在大多数服务器上,默认时间设置为30秒。这是允许PHP脚本运行的时间(在此之后它会超时)。在共享主机上,这通常设置为低或保留为默认值。

    由于php.ini文件位于您的服务器上,因此您无法从WordPress轻松修改它。要对此进行修改,我们建议您联系您的托管服务提供商,看看他们是否可以提供帮助。

    如果您想自己尝试修改,通常可以使用以下选项之一来完成。两者都取决于您的托管服务提供商如何配置他们的服务器。

    选项 1 – 修改php.ini文件中的最大执行时间

    如果您的主目录中有文件php.ini,请找到该max_execution_time参数并进行修改。例如,如果设置为30秒,您可以将其增加到300秒。

    max_execution_time = 300
    max_execution_time = 300
    max_execution_time = 300

    选项 2 – 修改 .htacess文件中的最大执行时间

    如果上述选项不起作用,您可以在.htaccess文件中更改它。就像php.ini文件一样,它通常位于您的主目录中。将以下内容放在.htaccess文件的顶部:

    php_value max_execution_time 300
    php_value max_execution_time 300
    php_value max_execution_time 300

    10. 暂时禁用你的插件

    与大多数WordPress错误一样,插件绝对是问题的根源。要确定这是否是正在发生的事情,您需要禁用您网站的所有插件。但是,如果您收到“ERR_CONNECTION_TIMED_OUT”错误,则意味着您无权访问WordPress管理后台。这意味着您需要通过SFTP访问您的站点服务器。我们建议使用FilZilla。

    一旦您的SFTP客户端准备就绪,通过它连接到您的网站并导航到您的WordPress根目录。如果您找不到它,它通常称为public_html、html、public、www或您网站的域名。

    SFTP访问WordPress根目录

    SFTP访问WordPress根目录

    打开该文件夹,然后导航到wp-content目录。在里面,您会看到一个名为plugins的文件夹 ,其中包含您站点上安装的每个插件(活动和非活动)的单独子目录。

    您现在要做的是右键单击插件文件夹,然后将其重命名为其他名称。我们推荐plugins.oldplugins.deactivated,以便您以后可以轻松识别。

    WordPress插件文件夹重命名

    WordPress插件文件夹重命名

    WordPress现在将无法找到您的任何插件。发生这种情况时,它会自动禁用这些插件。

    现在,尝试访问您的WordPress仪表盘。如果超时错误消失了,那么您可以假设您的插件之一是罪魁祸首。你所要做的就是找出谁有错。

    返回wp-content目录,并正确重命名您的原始插件文件夹。然后,您需要一个一个地禁用每个插件,直到找到罪魁祸首。

    为此,请打开wp-content/plugins目录。在里面,您会为每个插件找到一个文件夹。您将要遵循的过程与以前大致相同:

    1. 从第一个文件夹开始,并将其重命名为您喜欢的任何名称。
    2. 检查您的网站以查看错误是否消失。
    3. 如果不是,请将上一步中的插件文件夹恢复为其原始名称。
    4. 转到列表中的下一个插件,重复上述步骤。

    如果您有很多插件,此过程可能需要一段时间,但依次检查每个插件至关重要。如果您在任何时候确定导致错误的插件,您可以卸载它或用其他工具替换它。

    如果您在没有找到解决方案的情况下完成了这些步骤,则可以继续进行故障排除的下一阶段。

    11.暂时恢复默认主题

    现在您已经排除了您的插件导致超时错误的可能性,现在是时候对您的活动主题做同样的事情了。事实上,您的主题也可能造成兼容性问题。

    不幸的是,该过程与上述不同。如果简单地重命名主题文件夹,WordPress将不会恢复到默认主题,您最终会出现类似“主题目录是个空目录或主题目录不存在” 或者,如果您尝试重命名整个主题目录文件夹,最终会出现“错误:主题目录为空或不存在。请检查您的安装。”

    因此,您需要通过登录phpMyAdmin来访问您的WordPress数据库。

    单击“wp_options”表,然后单击“Search”选项卡。您需要在“option_name”下搜索template

    phpMyAdmin的wp_options表

    phpMyAdmin的wp_options表

    在“option_value”列下,您将看到主题的当前名称。将其更改为默认主题之一,例如“twentytwentyone”。

    wp_options模板名称

    wp_options模板名称

    再次检查您的网站,看看是否已修复错误。如果是这样,则仅表示您的WordPress主题有问题,您可能想尝试重新安装它或恢复到最近的备份。

    12.增加内存限制

    WP_MEMORY_LIMIT参数允许您指定PHP可以消耗的最大内存量。如果您使用共享主机,则很可能将其设置为较低的值,例如64M。

    您可以通过将以下内容添加到wp-config.php文件来增加内存限制。这必须放在代码包含的wp-settings.php的上方。

    define( ‘WP_MEMORY_LIMIT’, ‘256M’ );
    define( ‘WP_MEMORY_LIMIT’, ‘256M’ );
    define( 'WP_MEMORY_LIMIT', '256M' );

    wp-config.php中的WP_MEMORY_LIMIT

    wp-config.php中的WP_MEMORY_LIMIT

    不确定您当前的PHP内存限制设置为多少?如果您有权访问WordPress仪表盘并运行WordPress 5.2或更高版本,则可以在“站点健康”工具下看到PHP内存限制。

    WordPress网站健康PHP内存限制

    WordPress网站健康PHP内存限制

     

    小结

    排除连接和超时错误从来都不是一件有趣的事情,但希望您现在对工具带有了更多的了解,以帮助快速解决它。

    请务必记住,“ERR_CONNECTION_TIMED_OUT”错误是客户端问题(例如您的网络连接)或托管WordPress站点的服务器问题的结果。

  • 如何解决WordPress在裁剪您的图像时发生了错误

    错误类型:
    WP内部错误
    错误名称:
    在裁剪您的图像时发生了错误
    英文名称:
    There has been an error cropping your image
    错误描述:
    “在裁剪您的图像时发生了错误”主要是因为缺少php GD库 (图形绘制)。

    有时在上传之前编辑图像时,您会看到消息There has been an error cropping your image.。“在裁剪您的图像时发生了错误”主要是因为缺少php GD库 (图形绘制)

    今天让我们看看是什么导致了这个错误,以及应如何解决这个问题。

     

    图像裁剪错误看起来如何?

    WordPress提供建立网站、兴趣博客等的自由。因此它总是包含上传图像的功能。

    要在WordPress用户中上传图像,请使用“选择并裁剪”选项。然后调整裁剪选择,然后选择“裁剪图像”。当事情不起作用时,它会显示消息“There has been an error cropping your image。在这里,WordPress 的“媒体库”变灰并导致错误。

     

    导致错误的最常见原因是缺少PHP-GD库

     

    导致错误的最常见原因是缺少PHP-GD

    大多数情况下,当我们听到WordPress中的PHP时,我们首先想到的是HTML。但是PHP也用于创建和编辑图像文件。支持的图像格式包括GIF、PNG、JPEG、WBMP和XMP。通常,PHP允许将图像直接上传到浏览器中。而且,使图像函数工作的是GD库。

     

    如何修复WordPress图片裁剪错误

    我们现在知道错误的样子。让我们进一步了解如何修复图像裁剪错误。

    作为故障排除的第一步,我们检查服务器的PHP版本以及GD库。如果缺少GD库,我们安装它。但是,GD安装步骤因服务器类型而异。

    对于RedHat/CentOS主机,我们运行命令

    yum install php-gd
    yum install php-gd
     yum install php-gd

    或者,如果是Ubuntu服务器,GD安装使用

    apt-get install php-gd
    apt-get install php-gd
     apt-get install php-gd

    在这里,我们还要确保WordPress软件包的版本与主机的PHP版本相匹配。

    最后,要制作新安装的GD库,需要重启web服务器。我们在服务器中通过

    /etc/init.d/httpd restart
    /etc/init.d/httpd restart
    /etc/init.d/httpd restart

    修复错误后,在“媒体库”中,用户可以选择图像并“插入文章”,完美解决问题。

     

    WordPress上传图片

     

    小结

    总之,WordPress裁剪图像错误的主要原因将是服务器上缺少GD库。如果您也遭遇了此错误,则也可以参考上述步骤检查和修复图像上传错误。

  • 如何解决无法登入WordPress管理仪表盘的问题

    错误类型:
    WP内部错误
    错误名称:
    无法登入WordPress管理仪表盘
    英文名称:
    Locked out of wordpress admin
    错误描述:
    发生这种情况的原因有很多。您最近可能对WordPress代码进行了更改,您可能添加了新的插件或主题,或者您可能刚刚醒来发现此错误。

    如何解决无法登入WordPress管理仪表盘的问题

    无法登入WordPress管理仪表盘之外会引发各种恐慌。很少有WordPress问题比发现您无法登录WordPress管理后台更令人沮丧。

    这很像您在度过漫长的一天后回到家时发现钥匙丢了的感觉。你恐慌,然后你感到沮丧,最后,你开始寻找解决方案。

    如果您在这里,您可能已经处于第三个(寻求解决方案)点。很高兴,您可以采取一些非常简单的步骤来返回您的WordPress仪表盘。

    因此,您可能想要冷静下来,深吸一口气,敲打指关节,然后在我们向您展示如何成为一名WordPress锁匠大师时学习。

    还原备份或创建备份

    先说第一件事。根据您运行的WordPress站点的类型,恢复WordPress站点的备份以修复登录问题并快速恢复运行可能会更快。特别是如果您确切地知道问题何时开始发生。

    很多云服务器都提供自动备份任务,又或者您通过宝塔面板设置自动备份任务计划,在这种情况下,恢复WordPress网站是一件很容易的事情。如果您使用WordPress备份插件设置了每日自动备份,情况也是如此。

    使用宝塔恢复WordPress数据库备份

    使用宝塔恢复WordPress数据库备份

    如果您正在运行一个数据不断变化的网站,例如WooCommerce网站或具有大量评论的高流量博客,那么您需要继续执行以下步骤,以免丢失任何数据。

    由于接下来的步骤涉及更改数据库中的重要数据,我们建议在继续之前进行WordPress站点备份。由于您无法访问WordPress管理仪表盘,因此您必须手动执行此操作。

    大多数主机允许您从控制面板生成和下载站点和数据库的完整备份。您可能需要阅读您的网络托管服务商有关如何完成此操作的说明。在宝塔面板,您可以创建数据库备份,甚至可以下载完整的网站 (.zip) 备份。

    使用宝塔执行WordPress备份计划任务

    使用宝塔执行WordPress备份计划任务

    如果您使用的是cPanel,则可以在“Backup”工具或“Backup Wizard”下执行此操作。

    cPanel备份

    cPanel备份

    当您拥有可靠的备份时,请继续执行后续步骤以解决您的问题。

    为什么您无法登入WordPress管理仪表盘?

    您可能在想“为什么WordPress不让我登录?” 发生这种情况的原因有很多。您最近可能对WordPress代码进行了更改,您可能添加了新的插件或主题,或者您可能刚刚醒来发现此错误。

    如果您最近进行了导致此错误的更改,您应该非常清楚从哪里开始纠正问题。

    无论如何,本指南将带您了解可帮助您解决此问题的各种解决方案。解决方案根据您遇到的错误进行分组,因此您可能不必全部阅读。

    • 当您看到“This has been disabled”时:禁用登录或安全插件。
    • 当密码无效(并且密码恢复失败)时: 使用phpMyAdmin重置密码。
    • 当您失去管理员权限时: 创建一个新用户并分配管理员权限。
    • 当您因登录尝试次数过多而被锁定时:禁用安全插件。
    • 当您看到白屏死机时:解决死亡白屏的常见原因。
    • 当您看到“建立数据库连接时出错”时:修复数据库连接问题。
    • 当您看到“解析错误:语法错误”时: 检查是否有任何最近的代码更改。

    当您忘记自定义登录URL时

    一个常见的WordPress安全实践是将默认的管理员登录URL ( domain.com/wp-admin)更改为自定义的内容。这有助于防止黑客和机器人不断攻击您的登录URL以获取访问权限。

    但是,如果由于忘记了登录URL而无法登录WordPress管理员,则在尝试访问您的站点时,您可能会看到类似“此功能已被禁用”的消息。也许您将它作为已删除的书签,或者它仅存在于您的WordPress历史记录中并且您的缓存已被清除。

    这已被禁用

    这已被禁用

    无论wp-admin不工作的原因是什么,如果您使用的是WPS Hide Login或Perfmatters等插件,您可以禁用该插件以将其暂时恢复到原始登录URL。Wp-admin不工作?查看这些步骤,了解如何在无法访问wp-admin的情况下禁用WordPress插件

    当您的密码无效时(并且密码恢复失败)

    通常,如果您尝试登录仪表盘并收到“密码错误”消息,简单的解决方案是通过单击“丢失密码”链接来更改您的WordPress密码

    忘记密码

    忘记密码

    但是,在某些情况下,您可能会这样做但没有收到密码重置电子邮件,这可能是因为您的站点存在电子邮件问题。如果这是您的问题,您可以通过直接在数据库上重置密码来解决它。

    使用phpMyAdmin重置密码

    如果您是宝塔用户,可以通过登入宝塔面板,点击左侧“数据库”菜单,然后点击网站的数据库对应的“管理”操作即可进入phpMyAdmin。

    登录phpMyAdmin

    登录phpMyAdmin

    如果您使用带有cPanel的主机,您可以在“Databases”部分下找到您的phpMyAdmin链接。如果您没有cPanel登录详细信息,请向您的主机询问。

    cPanel控制面板下的phpMyAdmin

    cPanel控制面板下的phpMyAdmin

    进入phpMyAdmin后,您将在左侧看到您的数据库列表。单击您的WordPress数据库将其打开。

    phpMyAdmin数据库

    phpMyAdmin数据库

    找到您的wp_users table并单击“Browse”。

    注意:前缀可能并不总是wp_. 如果您的前缀不同(例如site_),那么您的用户表将是“ site_users”。

    wp_users表

    wp_users表

    接下来,找到您的管理员用户并单击编辑。

    在phpMyAdmin中编辑管理员用户

    在phpMyAdmin中编辑管理员用户

    phpMyAdmin将在表单中显示该用户的所有信息。要编辑您的密码,请找到user_pass输入区域,清除当前值,然后输入您的新密码(记住将其保存在某处)。

    在Function下,选择MD5以确保您的新密码经过哈希处理。最后点击Go。

    在phpMyAdmin中更改密码

    在phpMyAdmin中更改密码

    现在使用您的新密码登录您的WordPress管理仪表盘。

    当您失去管理员权限时

    您是否能够正确登录,但发现您不再可以访问插件和主题等管理功能?如果是这样,那么您的问题是您不再拥有管理员权限。可能是您的WordPress网站被黑了,您的权限被删除了。

    要解决此问题,您需要直接在数据库中添加一个新的管理员用户。

    创建新用户并分配管理员权限

    要创建新用户,您需要使用phpMyAdmin访问您的数据库。在数据库中,我们将编辑wp_userswp_usermeta表 – 第一个添加新用户,第二个授予管理员权限。

    要访问您的数据库,请登录到phpMyAdmin。从左侧的列表中选择您的WordPress数据库。

    phpMyAdmin数据库

    phpMyAdmin数据库

    接下来,找到您的wp_users表并单击“Insert ”(同样,您的前缀可能与wp_不同。如果您的前缀是site_,则选择该site_users表)。

    插入wp_users表 插入wp_users表

    按如下方式填写插入表单(保留您在此表单中输入的信息,尤其是ID、 user_loginuser_pass字段):

    • ID –任何高于您当前拥有的用户数量的数字。例如,如果您有7个用户帐户,请输入数字8。为了安全起见,您可以决定使用更大的数字。或者您可以随时查看wp_users表中的现有ID。
    • user_login – 您要创建的新用户名。选择一个尚未使用的名称。例如,您不应该使用“admin”,因为它已经被使用了。
    • user_pass – 此用户的密码。确保在函数下选择MD5,以便对密码进行哈希处理。另外,请记住保留您输入的密码。
    • user_nicename – 您的姓名或昵称。
    • user_email – 您要用于此帐户的电子邮件。
    • user_url – 您的站点URL。
    • user_registered – 使用日期选择器选择当前日期。
    • user_status – 设置为0(zero)。
    • display_name – 要为该用户显示的名称。您可以输入您的全名或您在上面设置的昵称。

    完成后,单击Go以保存新用户。

    phpMyAdmin中的新WordPress用户

    phpMyAdmin中的新WordPress用户

    此时,我们要为刚刚创建的新用户授予管理员权限。我们通过在wp_usermeta表中添加用户的权限来做到这一点。

    向下滚动以找到wp_usermeta表格并单击插入。

    插入wp_usermeta表

    插入wp_usermeta表

    接下来,使用以下信息填写插入表单:

    • unmeta_id –留空。它将被生成。
    • user_id –我们刚刚创建的用户的ID 号。
    • meta_key –输入wp_capabilities.
    • meta_value – 输入a:1:{s:13:"administrator";b:1;}. 确保您仔细输入此值。不要复制和粘贴,因为您最终可能会得到不起作用的中文引号。

    单击Go以添加元值。

    wp_usermeta管理员权限

    wp_usermeta管理员权限

    重复此过程以添加另一个元,但这一次,请使用以下详细信息:

    • unmeta_id –留空。
    • user_id –我们刚刚创建的用户的ID号。
    • meta_key –输入wp_user_level
    • meta_value – 输入10。

    单击Go以创建第二个元值。此时,您已向刚创建的用户授予完全管理员权限。继续使用此用户登录。

    当您因登录尝试过多而无法登录WordPress管理后台时

    一些WordPress安全插件会限制登录尝试以防止黑客攻击。这是一个非常有用的安全功能,但它也可以将您锁定。

    如果发生这种情况并且您发现无法登录WordPress管理后台,最简单的解决方案是禁用您的安全插件,重新访问您的站点,并在您仍计划使用安全插件时防止再次锁定。

    要禁用此插件,请使用FTP或SFTP访问您的站点文件(在此处了解两者之间的区别)。

    连接后,双击打开包含WordPress文件的文件夹(通常是public_html或者wwwroot/yourdomain)。

    接下来,找到您的wp-content文件夹并双击打开它。在此文件夹中,找到您的插件文件夹并打开它。

    在那里,您将能够看到一个以您的安全插件命名的文件夹。要禁用此插件,请将文件夹重命名为其他任何名称。在下面的示例中,我们只是添加了INACTIVE作为文件夹名称的前缀。

    禁用WordPress插件

    禁用WordPress插件

    现在去尝试访问您的WordPress仪表盘。

    如果您现在可以成功登录,您希望采取措施防止这种情况再次发生。如果这些功能可用,您可以重新激活插件并将自己从锁定列表中删除,或将您的IP列入白名单。否则,您可能决定联系插件的开发人员寻求帮助。

    当你看到死亡白屏时

    如果您在尝试访问管理仪表盘时看到一个空白屏幕,那么您的情况就是可怕的白屏死机。好消息是,有许多解决方案可以让您摆脱这个问题,并让您重新访问仪表盘。

    出现白屏死机的常见原因

    很多时候,白屏死机是由您的插件问题引起的。因此,您应该尝试的第一件事就是禁用所有插件。

    由于您无权访问仪表盘,因此您需要使用FTP手动禁用插件。

    首先,使用FTP或SFTP连接您的站点。连接后,找到包含WordPress文件的文件夹(通常为public_html或者wwwroot/yourdomain)并双击打开它。

    在那里,找到您的wp-content文件夹并双击打开它。在此文件夹中,您会找到所有主要内容,包括您的插件文件夹。要禁用插件,您需要重命名此文件夹,以便WordPress无法再读取它。

    为此,右键单击插件文件夹,选择“重命名”,然后将名称更改为不同的名称,例如“DISABLED_plugins”。

    禁用WordPress插件文件夹

    禁用WordPress插件文件夹

    接下来,尝试访问您的仪表盘以查看问题是否已解决。如果是,那么您的问题与插件有关。然后,您可以将文件夹名称恢复为“plugins”并在您的仪表盘中。当恢复登录状态,您可以从仪表盘中禁用所有插件并开始一个接一个地启用插件,直到再次出现错误。这样,您可以很容易地指出是哪个插件导致了错误。

    如果禁用插件没有解决白屏死机,您可以尝试许多其他解决方案。请阅读我们关于如何修复WordPress白屏死机的完整教程。

    当您看到“建立数据库连接时出错”

    您的所有站点信息,从帖子和页面,到用户帐户和权限,都存储在您的WordPress的MySQL数据库中。因此,如果您在连接到数据库时遇到问题,不用说您的站点将无法运行。

    修复数据库连接问题

    经常发生数据库连接问题是因为WordPress尝试使用错误的凭据进行连接。如果您最近更改了数据库用户名或密码,则必须在wp-config.php文件中更新此信息,否则WordPress将无法建立连接。

    要访问您的wp-config.php文件,请使用FTP或SFTP连接到您的站点。连接后,打开包含WordPress文件的主文件夹(通常为public_html或者wwwroot/yourdomain)。在此文件夹中,找到您的wp-config.php文件,右键单击它,然后单击查看/编辑。

    在MySQL设置部分,将您的DB NAME、DB USER、DB PASSWORD和DB HOST设置为您当前的详细信息。

    请注意,DB HOST并不总是“ localhost ”。您的托管服务提供商可以为您提供正确的主机名。

    wp-config.php凭据

    wp-config.php凭据

    完成后,尝试访问您的仪表盘以查看它是否有效。如果是,那么您的问题是凭据错误。

    数据库错误的另一个原因是数据库服务器的问题。如果您在共享主机上,并且此错误开始意外发生,则这可能是您的问题。

    在许多共享主机计划中,允许的并发连接数是有限制的。如果超出此限制,可能会导致数据库连接错误。这是联系您的主机并验证问题是否出自他们的一个简单步骤,如果是,请寻求他们的帮助来解决它。

    如果更新您的凭据或检查您的主机没有解决您的问题,那么您应该尝试其他解决数据库错误的方法。阅读我们的指南,了解如何修复WordPress建立数据库连接时出错问题

    当您看到“解析错误:语法错误”时

    WordPress最大的优点是您可以轻松添加功能来扩展您网站的功能。网上有许多代码片段,您可以将它们复制并粘贴到您的WordPress代码中,以获得额外的铃声或口哨声。

    如果您当前在尝试访问您的网站时看到“解析错误:语法错误”,很可能是您最近从互联网复制并粘贴了一个这样的代码到您的WordPress文件中。

    语法错误

    语法错误

    您复制的代码可能包含错误,或者您可能没有正确粘贴。从WordPress 4.9开始,他们应该回滚任何这些类型的错误,使其更难发生。

    检查任何最近的代码更改

    解析错误消息通常指示导致错误的文件。很有可能,它是functions.php文件。要恢复您所做的更改并使您的网站重新上线,您需要打开文件进行编辑。

    首先,使用FTP或SFTP访问您的站点文件。连接后,找到包含WordPress文件的文件夹并双击打开它。

    如果查看收到的语法错误,可以看到指定了文件路径。只需按照此路径找到您需要编辑的文件。

    找到后,右键单击它并选择查看/编辑。

    接下来,查找并删除您在此文件中所做的更改(注意只删除您添加的代码,不要删除其他任何代码)。

    现在保存文件,并将其上传回您的服务器,然后您可以重新加载您的站点。

    如果您小心地删除了您添加的代码,您的站点现在应该可以正常运行,并且您应该可以访问您的仪表盘。

    如果您仍然想要添加代码的附加功能,您可以执行一些操作。

    1. 检查以确保您复制并粘贴了“整个代码”。在某些情况下,某些代码没有被复制,这导致了错误。
    2. 检查以确认您正确粘贴了代码。如果说明说“将其粘贴在底部”,这并不意味着在php结束标记下方(?>)。相反,您必须将其粘贴在此标签之前。
    3. 代码实际上可能有错误,在这种情况下,您可以联系获取代码的站点。
    4. 查找提供该功能的插件。

    提示:如果您要从网络上复制和粘贴大量代码,我们强烈建议您使用免费插件,例如Code Snippets。这使得不破坏某些内容并跟踪所有更改变得更加容易,而无需启动单独的子主题

    小结

    本指南涵盖了可能使您无法访问WordPress管理后台的主要问题,以及您可以采取的快速返回站点的步骤。

    希望您能够快速解决问题并重新控制仪表盘。如果您仍然遇到问题,那么这篇关于常见WordPress错误以及如何修复它们的文章可能包含适合您的解决方案。

  • 如何解决无法通过SSH或SFTP连接服务器问题

    错误类型:
    其他错误
    错误名称:
    无法通过SSH或SFTP连接服务器
    英文名称:
    Host key verification failed
    错误描述:
    这通常是因为IP地址或SSH密钥指纹已更改(通常是由于服务器更新),而旧的仍存储在您的known_hosts文件中,该文件用于SSH和SFTP连接。

    如何解决无法通过SSH或SFTP连接服务器问题

    通过SSH或SFTP连接时遇到问题?如果您收到如下所示的错误,这通常是因为IP地址或SSH密钥指纹已更改(通常是由于服务器更新),而旧的仍存储在您的known_hosts文件中,该文件用于SSH和SFTP连接。

    [user@hostname ~]$ ssh root@user
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that a host key has just been changed.
    The fingerprint for the RSA key sent by the remote host is
    xx:xx:xx.
    Please contact your system administrator.
    Add correct host key in /home/hostname /.ssh/known_hosts to get rid of this message.
    Offending RSA key in /var/lib/sss/pubconf/known_hosts:4
    RSA host key for user has changed and you have requested strict checking.
    Host key verification failed.
    [user@hostname ~]$ ssh root@user
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that a host key has just been changed.
    The fingerprint for the RSA key sent by the remote host is
    xx:xx:xx.
    Please contact your system administrator.
    Add correct host key in /home/hostname /.ssh/known_hosts to get rid of this message.
    Offending RSA key in /var/lib/sss/pubconf/known_hosts:4
    RSA host key for user has changed and you have requested strict checking.
    Host key verification failed.
    [user@hostname ~]$ ssh root@user
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that a host key has just been changed.
    The fingerprint for the RSA key sent by the remote host is
    xx:xx:xx.
    Please contact your system administrator.
    Add correct host key in /home/hostname /.ssh/known_hosts to get rid of this message.
    Offending RSA key in /var/lib/sss/pubconf/known_hosts:4
    RSA host key for user has changed and you have requested strict checking.
    Host key verification failed.

    如果您在连接时遇到问题,请首先确保您使用的是正确的密码。

    如果仍有问题,请按照以下说明从known_hosts文件中删除条目。

    Mac或Linux

    1.打开终端并使用nano文本编辑器编辑以下文件。

    nano ~/.ssh/known_hosts
    nano ~/.ssh/known_hosts
    nano ~/.ssh/known_hosts

    2.删除所有以您的服务器IP地址开头的条目。

    3.然后保存文档 (Ctrl+x)。

    Windows

    如果您使用的是Windows,它也有一个类似的known_hosts文件,但凭据和IP存储在注册表中。

    1.从开始菜单启动regedit。下面的示例使用的是Windows 10。

     

    Windows注册表编辑器

    Windows注册表编辑器

     

    2.浏览到以下目录:HKEY_CURRENT_USERSoftWareSimonTathamPuTTYSshHostKeys

     

    SSH主机密钥

    SSH主机密钥

     

    3.删除所有以您的服务器IP地址结尾的条目。

  • 如何解决WordPress提示正在执行例行维护问题

    错误类型:
    WP内部错误
    错误名称:
    正在执行例行维护,请一分钟后回来
    英文名称:
    Briefly unavailable for scheduled maintenance. Check back in a minute
    错误描述:
    在更新核心软件、主题或插件时,WordPress会将您的站点置于维护模式。它通过在您站点的根文件夹中创建一个临时.maintenance文件来实现。但是,错误可能会阻止您的站点完成更新。发生这种情况时,维护通知会保留在您的站点上,使其无法访问。

    如何解决WordPress提示正在执行例行维护问题

    您的网站是否处于维护模式?在更新期间,WordPress会在您的网站上显示一条临时通知,内容为:“Briefly unavailable for scheduled maintenance. Check back in a minute(正在执行例行维护,请一分钟后回来)”。但是,此消息有时可能会在几分钟后仍然可见,从而阻止访问者访问您的网站。

    值得庆幸的是,修复此错误不需要技术专长。维护模式问题是最容易解决和预防的WordPress问题之一。

    在本文中,我们将了解WordPress维护模式错误的主要原因。我们还将向您展示此问题的快速解决方案,并分享一些提示,以帮助您避免将来出现同样的问题。

    维护模式错误是什么(以及导致它的原因)

    在更新核心软件、主题或插件时,WordPress会将您的站点置于维护模式。它通过在您站点的根文件夹中创建一个临时.maintenance文件来实现。

    在更新过程中访问您网站的任何人都会看到以下消息:

    正在执行例行维护,请一分钟后回来

    通常,此通知仅持续几秒钟。更新完成后,WordPress会自动删除.maintenance 文件,并且该消息将从您的站点中消失。

    但是,错误可能会阻止您的站点完成更新。发生这种情况时,维护通知会保留在您的站点上,使其无法访问。

    您的站点可能陷入维护模式的原因有多种:

    • 您可能在更新过程中关闭了浏览器窗口。
    • 您可能尝试过同时更新很多插件。
    • 由于托管服务器响应缓慢或内存不足问题,更新脚本可能已超时。

    要解决此问题,您可能需要增加站点的PHP内存限制。但是,我们还将针对此维护模式错误查看其他两个简单的修复程序。

    如何修复“正在执行例行维护”消息

    幸运的是,有一种非常快速的方法可以修复WordPress维护错误。您所要做的就是 从站点的根目录中删除.maintenance文件。

    首先,您需要使用安全文件传输协议 (SFTP) 客户端( 例如FileZilla)连接到您的站点。或者,您可以通过登录您的网络托管帐户并使用文件管理器来访问您的站点。

    在您站点的根目录中,打开public_html 文件夹,找到.maintenance文件,然后将其删除。

    删除.maintenance文件

    如果您使用的是SFTP客户端并且在目录中看不到该文件,则它可能被隐藏了。要找到它,请转到菜单并单击服务器 >强制显示隐藏文件。

    强制显示SFTP隐藏文件

    您的站点现在应该退出维护模式。如果您仍然收到错误消息,您可能需要更新wp-activate.php文件。

    为此,请返回站点的根目录并找到wp-activate.php文件。

    编辑wp-activate.php文件

    如果您通过主机帐户连接到您的站点,则可以在文件管理器中打开和编辑文件。或者,您可以将其下载到您的计算机上。

    打开wp-activate.php 文件并找到以下代码行:

    define (‘WP_INSTALLING’, true)
    define (‘WP_INSTALLING’, true)
    define ('WP_INSTALLING', true)

    接下来,将值“true”更改为“false”,使代码如下所示:

    define (‘WP_INSTALLING’, false)
    define (‘WP_INSTALLING’, false)
    define ('WP_INSTALLING', false)

    保存更改并关闭文件。如果您一直在主机帐户中使用文件管理器,则无需执行任何其他操作。如果您在 计算机上编辑了wp-activate.php文件,则需要将其上传到站点的根目录。

    完成上述步骤后,返回您的站点并刷新它。您现在应该退出维护模式。

    如何避免维护模式错误

    以下是一些提示,可帮助您避免将来遇到此问题。

    1. 运行更新时不要关闭浏览器选项卡

    每当您使用WordPress的更新功能时,请确保让浏览器选项卡保持打开状态,直到您看到“禁用维护模式……所有更新都已完成”的消息:

    禁用维护模式……所有更新都已完成

    当您看到此消息时,您可以安全地关闭浏览器选项卡

    看到该消息后,您可以安全地关闭该选项卡。

    2. 避免同时更新太多主题和插件

    尝试限制您一次运行的更新数量。例如,在主题和插件可用时更新它们,而不是等待一次全部完成。

    除了减少陷入维护模式的机会之外,定期更新您的网站通常是保持其安全和正常运行的好方法。

    3. 确保主题和插件兼容

    在运行任何更新之前,请确保您正在更新的主题或插件与您正在运行的WordPress版本兼容。

    您可以通过单击查看详细信息链接快速检查已确认的插件和主题的兼容性:

    如何检查插件或主题的兼容性

    如何检查插件或主题的兼容性

    如何自定义维护模式通知

    您还可以通过使用插件来避免默认的WordPress维护通知。这将使您能够在运行任何更新之前手动将站点置于维护模式。您还可以自定义消息。

    您可以使用的一种流行工具是SeedProd插件。安装并启用插件后,导航到管理仪表盘中的SeedProd >Pages。然后Set up a Maintenance Mode Page

    SeedProd插件页面设置

    接下来,您可以选择一个模板并根据自己的喜好对其进行自定义。请注意,某些模板和功能仅在插件的高级版本中可用。

    SeedProd插件页面模板

    每次您需要运行更新时,您都可以前往SeedProd >Pages并简单地激活您的维护模式页面。这将替换默认的WordPress维护消息。

    您可能要考虑的另一个选项是Maintenance插件。安装并启用插件,然后单击仪表盘中的维护并编辑要在维护页面上显示的文本。

    Maintenance插件

    您还可以选择高级预建主题。该插件还允许您选择要从维护模式中排除的页面和文章。完成后,单击蓝色的“Save Changes” 按钮。

    同样,WP Maintenance Mode插件可以让你创建自己的维护页面。启用插件后,导航到仪表板中的Settings并选择WP Maintenance Mode

    要自定义页面内容,请单击“Design”选项卡。

    WP Maintenance Mode插件

    完成后,单击页面底部的Save settings。要激活维护模式,请转到“General” 选项卡并选择“Activated”选项。

    WP Maintenance Mode插件页面激活

    您还可以将这些维护模式插件用于其他目的。例如,您可以在对内容进行一些重大更改或处理网站上的特定页面或部分时激活它们。

    常见WordPress错误

    既然您知道如何处理“暂时无法进行计划维护”消息,您就可以了解如何解决和防止站点上的其他问题。我们整理了几个教程来帮助您解决最常见的WordPress错误:

    小结

    WordPress在更新期间会在您的网站上张贴通知,让访问者知道它目前正在维护中。此消息仅显示几秒钟,但更新过程中的错误可能会导致您的站点陷入WordPress维护模式。

    要修复维护模式错误,您只需删除站点根目录中的.maintenance文件。您还可以通过一次运行一个更新来防止再次出现此问题,确保您的插件与最新的WordPress版本兼容,或升级到更好的主机。