cURL请求适用于localhost,但Connect()在服务器上超时

时间:2014-07-03 10:02:59

标签: php curl

好的,所以我很抱歉,如果之前已经处理了这个问题,在搜索了30分钟之后,我找不到任何与我的问题完全匹配的内容。

我有一个奇怪的情况,客户端正在使用FTPS连接,我需要使用cURL从中下载文件。在我的本地主机上运行这个EXACT脚本时,文件下载没有任何问题,但是一旦我将它放在服务器(我们自己的主机)上,cURL就会返回超时错误。

$remote = [
        filename => URL
    ];
    ini_set("display_errors", 1);

    foreach ($remote as $key => $file) {

        $targetFile = file formatted;
        $sourceFile = $file;
        $ftpuser = username;
        $ftppassword = password;

        echo $targetFile;

        // function settings
        $timeout = 10;
        $fileOpen = 'w';

        $curl = curl_init();
        $file = fopen($targetFile, $fileOpen);

          curl_setopt($curl, CURLOPT_URL, $sourceFile);
          curl_setopt($curl, CURLOPT_USERPWD, $ftpuser . ':' . $ftppassword);

          // curl settings
          curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
          curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
          //curl_setopt($curl, CURLOPT_FTP_SSL, CURLFTPSSL_ALL);
          //curl_setopt($curl, CURLOPT_FTPSSLAUTH, CURLFTPAUTH_TLS);

          curl_setopt($curl, CURLOPT_FRESH_CONNECT, 1);
          curl_setopt($curl, CURLOPT_FAILONERROR, 1);
          curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
          curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
          curl_setopt($curl, CURLOPT_TIMEOUT, $timeout);
          curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);
          curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
          curl_setopt($curl, CURLOPT_FILE, $file);

          $result = curl_exec($curl);
          $info = curl_getinfo($curl);
          var_dump ($info);
          echo curl_error($curl);

        curl_close($curl);
        fclose($file);

1 个答案:

答案 0 :(得分:0)

服务器很可能被代理服务器阻止,导致无法建立连接。