我有一个curl请求,它在我的localhost中工作正常,我已将其上传到服务器但它挂起并以错误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);`
答案 0 :(得分:1)
这是服务器方面的问题。不是这个剧本的错。
答案 1 :(得分:0)
使用脚本安装在服务器上的curl扩展可能不是使用ssl支持编译的。 在服务器上执行以下代码并回发结果:
<?php
$version = curl_version();
$ssl_supported= ($version['features'] & CURL_VERSION_SSL);
echo $ssl_supported == CURL_VERSION_SSL;
它应该输出1.如果不是,你必须为curl安装ssl支持
答案 2 :(得分:0)
这是我服务器端口的问题。该港口已关闭。打开港口后,它的工作完美。谢谢大家