2014-01-08 43 views
8

我試圖從網站獲取的數據與此代碼(我刪的網址):捲曲「未知的SSL協議錯誤連接」的錯誤在服務器上,但它只是對本地

<?php 

    $url = [doesnt really matter]; 

    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

    $archivo_xml = fopen("test.tst", "w"); 

    curl_setopt($ch, CURLOPT_FILE,$archivo_xml); 

    curl_exec($ch); 
    $as1 = curl_getinfo($ch, CURLINFO_NAMELOOKUP_TIME); 
    $as2 = curl_getinfo($ch, CURLINFO_CONNECT_TIME); 
    $as3 = curl_getinfo($ch, CURLINFO_PRETRANSFER_TIME); 
    $as4 = curl_getinfo($ch, CURLINFO_STARTTRANSFER_TIME); 
    $as5 = curl_getinfo($ch, CURLINFO_TOTAL_TIME); 

    echo "Lookup: ",$as1," \n\r Connect: ",$as2," \n\r Pretransfer: ",$as3," \n\r Starttransfer: ",$as4," \n\r Total: ",$as5,"\n\r","Error: ", curl_error($ch), "\n\r"; 

    curl_close($ch); 
    fclose($archivo_xml); 

?> 

它在本地工作很好,但不在服務器上。下面是輸出從地方:

Lookup: 0.015155 
Connect: 0.0281 
Pretransfer: 0.129087 
Starttransfer: 0.786341 
Total: 0.786384 
Error: 

,這裏是從服務器的輸出:

Lookup: 0.028731 
Connect: 0.043182 
Pretransfer: 0 
Starttransfer: 0 
Total: 60.057787 
Error: Unknown SSL protocol error in connection to [censored url] 

與任何其他網址工作得很好,問題是這種特定的一個。

本地主機的PHP版本:5.4.23

服務器PHP版本:5.5.7

在此先感謝

+1

什麼是詳細選項的輸出? – thibon

+0

從命令行:http://pastebin.com/KPxMzu3N – martriay

回答

5

已解決。由於這個已知的bug http://sourceforge.net/p/curl/bugs/1319/我降級捲曲7.33和它的工作。

+0

如何將curl降級到以前的版本? – Umair

+0

@Umair取決於你正在使用的操作系統。在任何Linux發行版中,您都應該使用軟件包管理器,例如debian/ubuntu中的apt-get或fedora/centos中的yum。但是,由於這個問題已經過了3年,所以我強烈建議您在必要時不要降級cURL。 – martriay

15

嘗試設置cURL PARAM

curl_setopt($ch, CURLOPT_SSLVERSION,3); // Apparently 2 or 3 
+1

已經嘗試過,給出「不支持的SSL協議版本」 – martriay

2

的情況一樣此帖添加curl_setopt($ch, CURLOPT_SSLVERSION,3);並沒有立即解決問題,今天的SSL有蜜蜂重新驗證並接受。

0

試着用這兩個選項

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

如果仍不能再工作URL可能會阻止您的服務器上。

+0

不行,同樣的事情,我敢肯定它沒有被阻止:/ – martriay

+0

你能ping從服務器的URL? – kwelsan

+0

不,但不是從本地 – martriay

相關問題