cURL PHP可在一台服务器上运行,但不能在另一台服务器上运行

时间:2019-06-28 14:40:10

标签: php curl

嗨,我知道这个问题很笼统,但是为什么有问题(服务器上的cURL阻塞或其他原因)的可能性是什么? 所以问题是我向PHP中的另一个域发出了cURL请求(下面的代码)

$url = 'https://www.example.com/get_products.php';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, false);
$result= curl_exec($curl);
curl_close($curl);
echo $result;

在托管服务提供商A的网站上,它运行良好,但在托管服务提供商B上却无法运行。目前无法访问提供商B的网站,因此无法使用 curl_errno 等对其进行调试。那么有什么可能性在那里无法使用。

2 个答案:

答案 0 :(得分:3)

有时服务器也不支持CURL,所以可能是发生此问题的原因。

请检查您的托管服务提供商或寻求友善的支持。

答案 1 :(得分:2)

在某些情况下,传出端口被阻止。因此,例如,检查您与telnet的连接:

telnet www.example.com 443

如果正在连接,则说明端口已打开,否则应致电您的提供商并要求他们打开端口。

接下来的事情是,有时SSL验证无法正常工作。因此,您可以禁用CURL选项CURLOPT_SSL_VERIFYPEER以将其禁用以进行临时测试。请不要在生产中使用该证书,因为这样不会检查您的证书。但是您可以测试这是否是问题所在。

https://curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYPEER.html

您最后可以尝试的是在CLI上使用curl并使用调试模式。

curl -v https://www.example.com/get_products.php

冗长,您可以获得很多信息。