这是一个wordpress在各类升级中经常会碰到的一个错误,尤其是当你的wordpress架设在国内的时候,wordpress.org对国内的访问并不友好。所以在升级时会有类似下面这样的报错。

cURL error 28: Connection timed out after X milliseconds
cURL error 28: Operation timed out after X milliseconds with Y out of Y bytes received

首先让我们知道cURL是PHP的一个库,wordpress借助它与其他站点进行传输。所以我们看到的报错信息是cURL error。

报错可能引起的原因有两种,一种是本身对方服务器就无法访问,或者是链接错误等等,也就是说是真的没法访问。这里我说的是第二种,因为国内链接速度过慢,导致在规定时间内无法完成下载。所以这时候我们需要修改配置文件。php.ini的修改就不说了,我并不知道是否对该错误有效。因为我的配置文件中本来就设置的足够长。然后让我们看看其他设置。

先是wp-includes/class-http.php

查找里面的timeout,新版的wordpress的配置文件大都遵循现将配置参数放在一个数组里面,数组名字通常是$defaults。里面的timeout默认设定是5,修改它到10。然后试试,请注意这也不一定是个有效的修改,可能依然还会报错。

接下来是wp-includes/class-wp-http-curl.php

这应该会是一个有效的修改,同样搜索timeout,默认依然是5。改的足够大吧,大道让你服务器缓慢的链接速度足够下载更新。

请注意,以上所有设定的修改都可能需要php环境的重启才会生效。

感谢Samuel Aguilera的http://www.samuelaguilera.com/post/curl-error-28-wordpress 本文的大部分内容出自该篇文章。

 想说点什么吗?

 (拖动评论框右下角可扩展评论框面积;若评论发表后未显示请耐心等待审核)

弑神发表于2020.02.15th