返回

cURL 错误 28:在 WAMP/WordPress 中的操作超时,如何解决?

php

在 WAMP/WordPress 中解决 cURL 错误 28:操作超时,接收字节为 0

引言

使用 WAMP/WordPress 时,有时可能会遇到 cURL 错误 28,提示操作在指定时间后超时,接收的字节数为 0。此错误可能令人沮丧,但可以通过采取一些故障排除步骤来解决。在这篇文章中,我们将探讨导致此错误的原因以及解决此问题的各种方法。

原因

cURL 错误 28 通常是由于以下原因之一造成的:

  • PHP 或 cURL 版本过时
  • 服务器内存限制不足
  • DNS 问题
  • wp-cron 限制
  • 防火墙或安全模块阻止请求
  • 不正确的 PHP 设置
  • 未安装 cURL 扩展
  • 网络连接问题

解决方案

1. 检查 PHP 和 cURL 版本

确保服务器正在运行最新版本的 PHP 和 cURL。您可以在 PHP 官方网站上找到更新信息。

2. 调整服务器内存限制

增加服务器内存限制可以为 cURL 请求提供更多资源。打开 PHP.ini 文件并更新以下设置:

memory_limit = 256M
upload_max_size = 64M
post_max_size = 64M
upload_max_filesize = 64M
max_execution_time = 300
max_input_time = 1000

3. 排查 DNS 问题

切换 DNS 服务器,例如使用 OpenDNS,可以帮助解决 DNS 问题。

4. 检查 wp-cron 限制

对于 WAMP 服务器,wp-cron 不会运行。这意味着计划任务无法按预期执行,从而导致 cURL 错误。手动触发计划任务或使用插件安排任务。

5. 检查防火墙或安全模块

禁用防火墙或安全模块(如 mod_security)可以确定它们是否是错误的根源。如果禁用后问题得到解决,请配置模块以允许 cURL 请求通过。

6. 检查 PHP 设置

确保以下 PHP 设置正确:

  • allow_url_fopen 设置为 On
  • max_execution_timemax_input_time 足够长,以允许 cURL 请求完成
  • curl.cainfocurl.capth 指向正确的证书文件

7. 检查 cURL 扩展

运行以下命令检查服务器上是否安装了 cURL 扩展:

php -m | grep curl

如果输出中没有 curl,则需要安装 cURL 扩展。

8. 检查网络连接

使用 curl 命令直接从命令行访问目标 URL,以检查服务器是否可以访问。如果出现相同的错误,则问题可能出在网络连接上。

9. 联系托管服务提供商

如果上述步骤都无法解决问题,请联系托管服务提供商以获取进一步的帮助。他们可以检查服务器配置并排除潜在问题。

结论

通过按照这些故障排除步骤,您可以解决 WAMP/WordPress 中的 cURL 错误 28。此错误可能是多种原因造成的,但可以通过系统地检查和解决导致问题的因素来解决。

常见问题解答

1. 如何检查 PHP 版本?

使用以下命令:

php -v

2. 如何检查 cURL 版本?

使用以下命令:

php -m | grep curl

3. 如何手动触发 wp-cron?

在浏览器中访问以下 URL:

yoursite.com/wp-cron.php

4. 如何允许 cURL 请求通过防火墙?

具体步骤取决于您使用的防火墙。请参考您的防火墙文档以获取详细说明。

5. 如何检查网络连接?

使用以下命令:

ping google.com

如果出现以下输出,则表示您的网络连接正常:

PING google.com (216.58.194.46) 56(84) bytes of data.
64 bytes from 216.58.194.46: icmp_seq=1 ttl=58 time=18.8 ms