如何修复WordPress网站关于cURL错误

错误类型:
WP内部错误
错误名称:
REST API遇到了错误
英文名称:
cURL error 28
错误描述:
无法及时响应服务器的数据请求会导致WordPress中出现“cURL error 28”报错。

“cURL error 28” 是常见的WordPress REST API问题,可能会影响网站的性能,并可能导致网站运行异常。

在本教程中,将详细介绍如何解决WordPress网站上的“cURL error 28: Connection timed out”问题。

cURL error 28

WordPress的cURL是什么?

cURL是WordPress和许多其他Web应用使用的软件实用工具,用于使用URL发送和接收数据请求。

WordPress使用cURL处理多个API请求。它可以作为PHP编程语言的扩展使用,WordPress托管服务会为此提供帮助。

cURL库在WordPress后台工作中起着至关重要的作用。如果未正确配置,则WordPress网站将无法正常运行。

什么导致WordPress发生“cURL error 28”?

无法及时响应服务器的数据请求会导致WordPress中出现“cURL error 28”报错。

WordPress使用REST API(一种编程技术)来发送和接收数据请求。如果这些请求超时,那么您将在“站点运行状况”报告中将其视为标题为“REST API遇到了错误”的关键问题。

“cURL error 28”报错

如果你展开该问题可以查看更多详细信息,包括错误消息:

Error: cURL error 28: Operation timed out after x milliseconds with x bytes received (http_request_failed)

您可能还会看到标题为“您的站点不能完成环回请求”的另一个相关问题。它将显示类似的错误消息,具体描述如下。

“到您站点的环回请求失败,这意味着依赖此种请求的功能将不能正常工作。”

什么可能导致cURL超时?

许多情况可能导致WordPress发生cURL超时。

例如,WordPress防火墙插件可能会将其视为可疑活动而阻止REST API请求。

如果您的DNS服务器无法正常工作,则这也可能导致HTTP请求失败并导致WordPress出现cURL超时错误。

WordPress托管服务器配置不当-设置较低超时阈值,这也可能会阻止某些WordPress进程正常运行。

既然我们大致知道导致cURL错误的原因,那么要解决话“curl error 28: Connection timed out”问题就不应该是一件难事了。

1. 暂时禁用WordPress防火墙

如果安装了WordPress防火墙或安全插件,可以暂时将其停用。

禁用WordPress防火墙

然后,访问WordPress网站后台-工具-站点健康,查看问题是否已解决。

如果发现问题已解决,则需要检查WordPress防火墙日志以查看哪些API请求已被阻止。

以帮助您确定问题的根源,进一步调整防火墙设置以不阻止合法的API请求。

2. 禁用所有WordPress插件

WordPress插件自身产生API请求以发送和接收数据。如果这些调用过于频繁或耗时太长才能完成,则可能会导致站点健康中出现cURL错误。

解决此问题的最简单方法是停用所有WordPress插件。只需转到“插件»已安装插件”页面,然后勾选所有插件。

禁用所有WordPress插件

之后,点击批量操作下拉菜单选择“禁用”,然后点击“应用”按钮。

再次访问“站点健康”报告,以查看问题是否已消失。如果这解决了问题,那么您可以尝试逐个启用插件,直到问题再次出现,即可找到问题插件。

联系插件开发者解决问题,又或者使用替代品。

3. 确保服务器正在使用最新版本软件

下一步是确保WordPress服务器使用最新版本的PHP,cURL库和OpenSSL。

您可以通过查看“工具”»“站点健康”页面下的系统信息选项卡来进行检查。

站点健康

只需切换到“信息”标签,然后展开“服务器”部分。即可获取有关WordPress服务器上安装的软件的信息。

WordPress服务器信息

理想情况下,服务器应使用PHP 7.4.13或更高版本,curl 7.74.0或更高版本以及OpenSSL 1.1.1或更高版本。

如果没有,那么自行进行版本升级或者联系服务器提供商城升级。注:VPS服务器一般可以自行进行升级操作,虚拟主机则可能要依赖服务器提供商。

4. 修复SSL不安全内容问题

如果您的WordPress网站使用HTTPS/SSL,但配置不正确,这也可能导致Web服务器阻止不安全的cURL请求。

同样,如果WordPress网站未使用HTTPS/SSL,但是使用HTTPs URL进行了API调用,那么这些请求也会失败,并且您可能会看到以下cURL错误:

Error: cURL error 7: Failed to connect to localhost port 443: Connection refused (http_request_failed)

cURL error 7

要解决此问题,您可以要求托管服务提供商或者自行为您的网站重新安装SSL证书。如果问题仍然存在,进一步查看常见的SSL问题,正确设置网站SSL。

5.向服务器提供商寻求帮助

如果上述步骤未能解决WordPress网站上的cURL错误28,则该问题很可能是服务器环境问题。

有许多因素只能由服务器提供商控制和修复。例如,如果其DNS服务器无法及时解析请求,则这将导致cURL请求超时。

另一种情况可能是主机服务器的连接速度慢或网络问题。

只需向他们发送带有错误详细信息的支持请求,他们的技术人员就可以进行故障排除并应用修复程序来解决。

评论留言

唇枪舌剑 (2)