cURL - libcurl中不支持或禁用协议https(PHP更新后)

时间:2014-03-25 07:34:46

标签: php curl ssl https

我知道有很多关于这个特定主题的问题,但通常的建议似乎并没有帮助。我已经检查了root帐户下的服务器和我正在使用的特定帐户,在这两种情况下(如果它们甚至可以不同)SSL被列为功能,HTTPS被列为协议。

我的cURL功能正常工作,直到昨天我们将PHP从~5.1 / 5.2升级到5.4.26。我的假设是PHP和/或cURL是在没有SSL支持的情况下编译的,但似乎并非如此。

如果有帮助,这些功能正在调用Appcelerator的云服务。这是登录函数之一,第一个抛出“试图获取非对象属性”错误,因为$res为false:

function login() {
    $url = 'https://api.cloud.appcelerator.com/v1/users/login.json?key=<MY_APP_KEY>';
    $options = array(
        CURLOPT_RETURNTRANSFER => TRUE,
        CURLOPT_POST => TRUE,
        CURLOPT_POSTFIELDS => array(
            'login' => '<MY_APP_LOGIN>',
            'password' => '<MY_APP_PASSWORD>'
        )
    );
    $curl_session = curl_init($url);
    curl_setopt_array($curl_session, $options);
    $res = curl_exec($curl_session);
    curl_close($curl_session);
    $this->session_id = json_decode($res)->meta->session_id;
}

即使列出SSL和HTTPS,它们是否可能实际上没有生效?有没有办法检查并在必要时修复它?

1 个答案:

答案 0 :(得分:2)

一个可能的问题是您的计算机上安装了多个libcurl版本,因此在您的PHP环境运行不同版本时,以root身份检查将返回有关全局安装的信息。

在您的PHP程序中,您可以改为运行curl_version()并查看有关SSL支持和版本等的内容。