【发布时间】:2019-02-27 13:24:12
【问题描述】:
有没有办法为所有 cURL 请求全局设置CURLOPT_CONNECTTIMEOUT?
我有一个问题,在升级到 PHP 7.2 后,某些软件的 cURL 现在会在 10 秒的连接超时后失败,而之前它们没有。我不能确切地说是什么改变了这种行为,但我需要以某种方式全局设置 a) 是什么导致它现在超时,或者 b) 增加超时限制。
是否有任何php.ini 设置会对此产生影响?
编辑:
设置default_socket_timeout 似乎对此没有影响。
编辑: FYI 同样的问题,更多的 Wordpress 细节:https://wordpress.stackexchange.com/questions/330013/curl-28-error-after-switch-from-to-brew-php-7-2-on-localhost
【问题讨论】:
-
@A.JAlhorr 1)我询问的是
CONNECTTIMEOUT而不是TIMEOUT,因此b)CONNECTTIMEOUT似乎不尊重该答案中提到的php.ini设置。 -
你是对的。默认值需要 300 秒,但找不到从哪里获取该值,可能是 curl 的 dll。好吧,我在github上找到了这个,也许它可以帮助github.com/guzzle/guzzle/issues/652
-
@A.JAlhorr 谢谢,但该解决方案似乎是特定于应用程序的,并且仅适用于该库(可能反过来将其应用于它发出的所有 cURL 请求)
-
默认300秒是hard-coded in the libcurl code。
标签: php curl timeout php-7.2 php-ini