#精品
彻底解决 WordPress cURL error 28 错误的4种方法

2025-01-12 0 886

相信很多 WordPress 使用者都碰到过 “cURL error 28: Connection timed out after X milliseconds”类似的错误提示,尤其是后台中在线更新主题或插件的时候。有关于这个错误的修复方法网上很多教程,但大部分都不得其法。

WordPress 中会利用 PHP cURL 函数通过URL的方式向外部发送请求,可以是接收数据或发送数据。当与外部 URL 通信不正常的时候,就会出现 “cURL error 28”等错误提示。

原因大致有以下几个方面:

1、外部 URL 不可访问或主机与其无法正常连接。

2022年中国大陆大部分地区无法正常访问 WordPress.org ,这时候如果在后台在线升级WordPress基本上都会出现“cURL error 28”等错误。

可以在主机端运行curl指令检测目标URL是否可访问。例如:curl -I https://wordpress.org ,查看是否返回200状态码。

2、通过Https连接的URL,因SSL证书到期或配置问题导致连接失败。

3、检查 WordPress 的防火墙插件阻止了与该 URL 的连接请求。例如 Wordfence SecurityiThemes Security 等。

4、cURL 连接超时。

这种情况最普遍,这里的超时并不是完全不可连接,而是因为网络状况或其它原因数据传输缓慢,超过连接的时间限制导致传输中断引起的错误。

不论是何种原因导致连接超时,都可以通过增加超时限制来解决此问题。但 URL 完全不可访问此方法是解决不了的。

首先将 WordPress 中的 wp_Http request()  函数连接超时限制修改成15秒或更大值。将以下代码添加至functions.php文件中,或使用代码片段插件添加。

//调整 wp-includes/http.php 超时限制值以解决服务器响应缓慢的问题
add_filter( \'http_request_args\', \'bal_http_request_args\', 100, 1 );
function bal_http_request_args( $r ) //called on line 237
{
    $r[\'timeout\'] = 15; //单位:秒
    return $r;
}

add_action( \'http_api_curl\', \'bal_http_api_curl\', 100, 1 );
function bal_http_api_curl( $handle ) //called on line 1315
{
    curl_setopt( $handle, CURLOPT_CONNECTTIMEOUT, 15 );
    curl_setopt( $handle, CURLOPT_TIMEOUT, 15 );
}

然后将php.ini中 default_socket_timeout 的值修改为300,默认60。

通过以上调整后,“cURL error 28”错误应该彻底消失了。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在!
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。联系邮箱:3496947425@qq.com

813站长大咖 精品文章 彻底解决 WordPress cURL error 28 错误的4种方法 https://www.813master.cn/1514.html

WordPress极客一枚!无干货,不分享!

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务