我知道有很多关于这个特定主题的问题,但通常的建议似乎并没有帮助。我已经检查了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,它们是否可能实际上没有生效?有没有办法检查并在必要时修复它?
答案 0 :(得分:2)
一个可能的问题是您的计算机上安装了多个libcurl版本,因此在您的PHP环境运行不同版本时,以root身份检查将返回有关全局安装的信息。
在您的PHP程序中,您可以改为运行curl_version()并查看有关SSL支持和版本等的内容。