【问题标题】:PHP cURL timeout being ignored?PHP cURL 超时被忽略?
【发布时间】:2023-03-18 12:45:01
【问题描述】:

我有一个在 server1 上监听的节点服务器和一个从 server2 卷曲节点服务器的 PHP 脚本。这会触发一个脚本。我遇到的问题是“连接已超时,服务器 XXXXXX 响应时间过长”。该脚本需要一段时间才能运行,因为它正在 AWS 上部署新服务器,我正在等待从 cURL 请求返​​回该脚本的输出日志。

我已将 apache2.conf 中的 Timeout 设置更改为 6000(100 分钟)并重新启动 apache2。

我的 PHP 代码中的选项:

set_time_limit(0);
curl_setopt($ch, CURLOPT_TIMEOUT, 0);

我错过了什么吗?我已经用谷歌搜索了,但我找不到我应该设置的任何其他设置。我已经看到了 CURLOPT_CONNECTTIMEOUT 选项,但是连接没有问题,因为我可以在实际服务器上看到脚本的输出。

【问题讨论】:

  • 计时了,它似乎在 5 分钟后超时,即 300 秒。这是在 apache 中设置的超时时间,但我已将其设置为 6000。还能在哪里设置?
  • 我现在也添加了 CURLOPT_CONNECTTIMEOUT, 0) 但它仍然超时。
  • 要清楚你在目标服务器上提出了超时 - 你调用的服务器不是你调用的服务器?另外,您正在调用的脚本?它也是 PHP 吗?关于 php,服务器上的超时是多少。
  • 如果我从终端卷曲 server1,它不会超时。仅当 server2 上的 PHP 卷曲它时。
  • 所以你的 server2 你正在使用 PHP 从 server 1 卷曲一个对象?

标签: php apache curl timeout


【解决方案1】:

找到问题了!

是firefox内置的超时。

我去了about:config并将network.http.response.timeout设置为3000

这解决了问题!

【讨论】:

    【解决方案2】:

    在发送 curl 请求的服务器上,检查 php.ini 文件 - 因为听起来 PHP 中的最大脚本时间正在超时。

    【讨论】:

      猜你喜欢
      • 2017-09-24
      • 2013-02-14
      • 2011-01-18
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多