WordPress在5.1版中引入了网站健康检查( Site Health)功能,而在WordPress 5.2中进行了进一步改进,以包括站点健康状态检查评分。此功能可帮助网站所有者注意可能影响其网站的性能和安全性问题。
WordPress站点健康功能会运行一系列测试,以查找WordPress网站上的常见性能和安全问题。一个示例是测试,检查您的网站是否正在运行最新的PHP版本。 使用较旧的PHP版本可能会使您的网站运行缓慢和/或与许多流行的WordPress插件不兼容。
REST API是WordPress及其他应用与服务器通信的一种途径。例如区块编辑器页面,它依赖REST来显示及保存您的页面和文章。
如果你在网站后台的 【 工具(Tools)- 站点健康(Site Health)】页面发现了以下错误提示:
REST API遇到了错误
REST API请求因遇到了错误而失败。
错误:cURL error 28: Operation timed out after 10001 milliseconds with 0 out of -1 bytes received(http_request_failed)
英文显示为:
The REST API encountered an error
The REST API is one way WordPress, and other applications, communicate with the server. One example is the block editor screen, which relies on this to display, and save, your posts and pages.
The REST API request failed due to an error.
Error: cURL error 28: Operation timed out after 10001 milliseconds with 0 bytes received (http_request_failed)
首先,需要说明的是尽管 WordPress 将此声明为严重错误,但它实际上不会以任何方式影响您网站的功能。
“CURL error 28”是一个常见的 WordPress REST API 问题,它可能会影响网站的性能并可能导致网站运行异常,最常出现在 WordPress 更新升级或者 WordPress插件、主题等后台更新升级过程中。
cURL error 28 一般是指网络超时,最简单的方法就是:等待一会,再尝试升级或者停用后台插件再升级,升级成功后再启用插件。
WordPress的cURL是什么?
在谈到 WordPress 时,cURL 是一个 PHP 库,可帮助 WordPress 与其他站点进行通信。作为一个 PHP 库意味着如果您使用的是过时的 PHP 版本(任何早于 PHP 7.0 的版本),那么您肯定也会使用过时的 cURL 版本。因此,如果遇到 cURL 问题,您需要做的第一件事是将 PHP 版本升级到至少 7.0.x 或最新的 PHP 7.x 稳定版本。
- 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 遇到错误”的关键问题。
如果展开问题可以查看更详细的信息,包括错误信息:
REST API请求因遇到了错误而失败。
错误:cURL error 28: Operation timed out after 10000 milliseconds with 0 out of -1 bytes received.
Error: cURL error 28: Operation timed out after x milliseconds with x bytes received (http_request_failed)
为什么会出现 cURL 超时?
导致 cURL 在 WordPress 中超时的原因可能有多种:
- 例如,WordPress 防火墙插件可能会将其视为可疑活动并阻止 REST API 请求。
- 如果你的 DNS 服务器工作不正常,这也可能导致 HTTP 请求失败,导致 WordPress 出现 cURL 超时错误。
- WordPress 托管服务器配置错误,一个较低的超时阈值,这也可能会阻止一些WordPress进程正常运行。
- 使用非专业、已落后的WordPress主题而造成错误问题。
我们可以尝试通过以下方式来排查和解决 cURL 的原因:
- 暂时禁用WordPress防火墙:如果您使用的是 WordPress 防火墙或安全插件,请继续暂时停用它。
- 停用所有 WordPress 插件:WordPress 插件会发出自己的 API 请求来发送和接收数据。如果这些调用过于频繁或完成时间过长,那么这可能会导致您的站点运行状况报告中出现 cURL 错误。
- 确保您的托管服务器使用最新的软件:确保您的 WordPress 托管服务器使用最新版本的 PHP、cURL 库和 OpenSSL。在WordPress网站后台的【 工具 – 站点健康 】页面可以查看这些软件的版本信息。
- 修复 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)。要解决此问题,您可以要求您的托管服务提供商为您的网站重新安装 SSL 证书。
- 向托管服务提供商寻求帮助:如果上述步骤无法解决您的 WordPress 网站上的 cURL error 28 错误问题,则很可能是托管环境问题,建议联系空间商来处理。
希望本文提供的帮助您快速解决和修复 WordPress 中的‘cURL error 28: Connection timed out’连接超时错误。