2014-01-08 40 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

相关问题