CURLE_OPERATION_TIMEDOUT

CURLE_OPERATION_TIMEDOUT

Error code 28

在我的本地机器上使用相同的代码效果很好。

但是当我将相同的代码发送到我的预生产环境时,我收到超时错误 28。我还将超时设置为 60 秒。同样的错误。

我检查了错误日志 + 我的 symfony 日志,但没有用。

  $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'ftp://'. $ftp['ftp']. '/'. $filename);
    curl_setopt($ch, CURLOPT_TIMEOUT, 15); 
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    curl_setopt($ch, CURLOPT_USERPWD, $ftp['username']. ':'. $ftp['password']);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    $data = curl_exec($ch);

    if(curl_errno($ch)){
        echo  curl_errno($ch);
    }

    curl_close($ch);

    return $data;

经过一番挖掘,我终于发现网络服务器不允许任何 ftp 的传出请求。我不得不要求虚拟主机允许向这个特定的 ftp 发出请求,现在一切正常。