0

我正在尝试使用cURLPHP 从外部网站获取数据,但它不起作用。

CURL 在 中启用phpinfo()

我的测试代码CentOS 8/nginx server在.$result=FALSEDebian9/nginx

$ch=curl_init ("http://somogyivakok.hu/");
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$result=curl_exec ($ch);
curl_close ($ch);

你知道有什么问题吗?

cURL 版本是 7.61。

4

1 回答 1

2

您要查找的资源不在somogyivakok.hu上,而是在www.somogyivakok.hu 上CURLOPT_FOLLOWLOCATION因此,您可以使用正确的 uri 或使用以下示例中的选项指示脚本遵循重定向:

$ch = curl_init ("http://somogyivakok.hu/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$result = curl_exec($ch);
curl_close($ch);

更新:

进一步调查,尽管存在问题,但CURLOPT_FOLLOWLOCATION返回curl_execfalse服务器配置也存在问题,更准确地说是httpd_can_network_connect. 使用CURLOPT_VERBOSE调试以下记录:

Immediate connect fail for 1.1.1.1: Permission denied

这个线程上,我们发现解决方案是在服务器 shell 上运行以下命令:

sudo setsebool httpd_can_network_connect 1
于 2019-11-27T15:38:50.567 回答