0

我有一个 curl 请求,它在我的本地主机中运行良好,我已将它上传到服务器,但它挂起并以错误 500 内部服务器错误结束。如果删除该行echo $output = curl_exec($ch);它工作正常。

$url = "https://someserver.com/api/";
$username = "some_user";
$password = "some_apss";
if(!extension_loaded('curl')){
    die("Curl extension not loaded");
}
if(!function_exists('curl_init')){
    die("curl_init not found");
}

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);     
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); 
echo $output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);`
4

3 回答 3

1

这是服务器端的问题。不是这个脚本的错。

于 2012-09-18T08:53:06.560 回答
0

那是我的服务器端口的问题。那个港口被关闭了。打开端口后,它的工作完美。谢谢你们

于 2012-09-19T10:12:25.527 回答
0

可能使用脚本安装在服务器上的 curl 扩展未使用 ssl 支持编译。在服务器上执行以下代码并回传结果:

<?php
    $version = curl_version();
    $ssl_supported= ($version['features'] & CURL_VERSION_SSL);
    echo $ssl_supported == CURL_VERSION_SSL;

它应该输出 1。如果不是,您必须为 curl 安装 ssl 支持

于 2012-09-18T09:01:06.867 回答