【问题标题】:cURL Time Out on Server but Not on Localhost服务器上的 cURL 超时但本地主机上没有
【发布时间】:2010-12-26 13:08:57
【问题描述】:

卡在这个特定的问题上。我有从论坛(即 www.q8yat.net )获取大量页面的代码。现在我有一个使用 curl 从论坛获取页面的循环。在我的本地主机上一切正常。但是,当我在服务器上上传文件并尝试获取页面时,通常在加载固定数量的页面后会出现连接超时错误,但并非总是如此。我使用的 curl 选项是:

$options = array(
     CURLOPT_RETURNTRANSFER => true,     // return web page
     CURLOPT_HEADER         => false,    // don't return headers
     CURLOPT_FOLLOWLOCATION => true,     // follow redirects
     CURLOPT_ENCODING       => "",       // handle all encodings
     CURLOPT_USERAGENT      => "spider", // who am i
     CURLOPT_AUTOREFERER    => true,     // set referer on redirect
     CURLOPT_CONNECTTIMEOUT => 1,      // timeout on connect
     CURLOPT_TIMEOUT        => 1200,      // timeout on response
     CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects

 );

我的服务器的phpinfo:http://topics4today.com/public/02_12_2010/fcrawl/src/phpinfo.php

好吧,我相信论坛正在使用 apache 模块:'mod_bwlimited' 来限制我可以根据我的 ip 请求的数据量。一种可能。

【问题讨论】:

  • 你试过增加 CURLOPT_CONNECTTIMEOUT 吗?
  • @igorw - 是的,OP 是 CURLOPT_CONNECTTIMEOUT => 1
  • 您是否设置了 PHP 超时? ca2.php.net/manual/en/function.set-time-limit.php
  • @ajreal 是的,但是将其设置为超过 1 的值?
  • @Pekka - 可能,也许 OP 在他的服务器上有一些网络问题

标签: php curl timeout


【解决方案1】:

好的,论坛正在使用 apache 模块:'mod_bwlimited' 来限制我可以根据我的 ip 请求的数据量。可以通过在每次运行脚本时仅请求有限数量的页面来解决问题。例如。您的脚本运行,要求 2 个页面,停止,然后再次启动(使用 javascript 计时器)并要求再提供 2 个页面,这会循环进行。

【讨论】:

  • 考虑支付额外的美元来摆脱这种限制
  • 那么解决方案必须独立于我们向其请求数据的任何特定论坛
猜你喜欢
  • 2019-03-12
  • 1970-01-01
  • 2012-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-04
  • 1970-01-01
相关资源
最近更新 更多