目前,我正在研究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);
答案 0 :(得分:0)
这些是大多数Linux发行版中的安全协议。通过键入以下内容在命令行上检查SELinux:getenforce
通过键入以下内容检查FirewallD:sudo firewall-cmd --state
使用man firewall-cmd获取更多选项。
您可以使用sudo firewall-cmd --list-all
查找允许http / https的区域。只是让我知道你找到了什么,我可以帮助你提供其他命令。