在生产服务器上使用PHP CURL库发布数据时出错

时间:2017-11-05 05:39:52

标签: php linux api curl server

目前,我正在研究PHP CURL以发布数据来调用API。 我已经将PHP cURL实现为POST client_id,client_secret值为我的API。 CURL在我的本地服务器上工作,但在我的生产服务器上它会抛出一个错误。

Error: "cURL error (7): Couldn't connect to server".

PHP版本5.6.24

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
if($_POST['grant_type'] != "authorization_code") 

curl_setopt($ch, CURLOPT_USERPWD, "$client_id:$client_secret");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_PROXYPORT, "443");

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_ENCODING, "");

curl_setopt($ch, CURLOPT_USERAGENT, "spider");
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSLVERSION, 3);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 600);      
curl_setopt($ch, CURLOPT_TIMEOUT, 600);            
curl_setopt($ch, CURLOPT_AUTOREFERER, true);

$output = curl_exec($ch);
$info = curl_getinfo($ch);

if($errno = curl_errno($ch)) {
    $error_message = curl_strerror($errno);
    echo "cURL error ({$errno}):\n {$error_message}";
}

curl_close($ch);

1 个答案:

答案 0 :(得分:0)

这些是大多数Linux发行版中的安全协议。通过键入以下内容在命令行上检查SELinux:getenforce通过键入以下内容检查FirewallD:sudo firewall-cmd --state使用man firewall-cmd获取更多选项。

您可以使用sudo firewall-cmd --list-all查找允许http / https的区域。只是让我知道你找到了什么,我可以帮助你提供其他命令。