2010-07-30 194 views
2

我有一個CURL代碼,用於從遠程服務器獲取一些XML內容。我在本地主機(Windows上的XAMPP)上獲得了預期的輸出。但是從現場(在Linux上託管),我得到CURL錯誤:'無法連接到主機'。CURL從本地主機工作,但不在活動網站上

function DownloadUrl($Url, $p){ 

//是否安裝捲曲? (!curl_init')){ die('CURL is not installed!'); }

// create curl resource 
    $ch = curl_init(); 

    // set url 
    curl_setopt($ch, CURLOPT_URL, $Url); 

curl_setopt ($ch, CURLOPT_POSTFIELDS, $p); 
curl_setopt ($ch, CURLOPT_POST, 1); 
    //return the transfer as a string 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

    // $output contains the output string 
    $output = curl_exec($ch); 

if($output === false) 
echo 'Curl error: ' . curl_error($ch); 
else 
    print $output; 
    // close curl resource to free up system resources 
    curl_close($ch);   

}

+0

你是否試過從linux服務器上ping主機?你有沒有試過從你的linux服務器上啓動你的主機?如果是的話,結果是好的嗎? – 2010-07-30 10:20:02

+0

這也應該被標記爲PHP。 – 2010-07-30 10:20:33

+1

瞭解您的遠程環境也是很有用的,例如Shared Hosting,VPS等。某些Shared共享提供程序不允許您使用curl從其他站點提取內容。如果您使用的是VPS,則可能需要檢查是否有適當的iptables規則來允許您出站連接。 – suitedupgeek 2010-07-30 10:41:06

回答

1

你住的服務器。運行phpinfo();並檢查以確保php_curl已安裝並處於活動狀態。這通常會引發致命的異常,而不是「無法連接到主機」。你正在收到的消息。

如果您仍然遇到問題,您可能需要通過SSH嘗試跟蹤路由到URL,以確保網站可以實際連接。可能存在導致問題的配置設置或其他服務。

相關問題