我們有一個cron作業我們的服務器上運行,從MeteoConsult,這是一些荷蘭天氣報告公司......事情下載數據...捲曲FTP連接
無論如何,基本上腳本下載一個XML文件使用FTP通過cURL,然後使用SimpleXML進行分析。一兩個星期前,它決定隨機死亡,殺死我們觀看天氣的喜悅。我無能爲力。 FTP數據是正確的並且已被驗證。 Meteo服務器不會阻止正在運行cron-job的服務器的IP地址。
爲什麼開發者使用cURL通過FTP下載文件對我來說確實是個謎。當我在另一臺服務器上運行腳本時,它似乎可以工作。
有了這些信息,我認爲或者我們使用的是「老式」方式,並且不能使用新的cURL/PHP版本,儘管我找不到任何有關這方面的信息,或者我們的服務器的防火牆正在阻止連接。
這裏(的一部分)的腳本:
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,"ftp://username:[email protected]/file.xml");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 300);
curl_setopt($curl, CURLOPT_FTP_USE_EPSV, 0);
$xml = curl_exec($curl);
$status = curl_getinfo($curl);
curl_close($curl);
// At this point, $xml is NULL
有什麼不對的腳本?如果沒有,你們有什麼想法可以解決嗎?
PHP version: 5.2.12
libcurl version: 7.20.0
非常感謝提前。
您是否嘗試過檢查錯誤? http://php.net/manual/en/function.curl-error.php – Znarkus 2012-02-07 09:28:06
@Znarkus好點! '字符串(24)「無法連接到主機」'。儘管如此,仍然不完全解釋。 – 2012-02-07 09:51:22
你可以通過命令行'curl'或'ftp'從服務器連接到FTP嗎? – Znarkus 2012-02-07 12:18:18