php中CURL报Could not resolve host错误

1、使用 file_get_contents() 函数, 参数为域名地址时返回空,为ip地址时有数据。
2、linux中可以ping 通 域名
3、php-cli 执行,可以访问远程域名,并到得数据。
4、通过浏览器 即php-fpm模式 curl 和 file_get_contents 都不可以访问远程域名。
5、在 /etc/hosts 中添加 220.181.112.244 www.baidu.com 后 php-fpm模式,就可以访问到数据了。

代码:

echo 1;
try {
    var_dump(file_get_contents('http://220.181.112.244/index.html'));
//    var_dump(file_get_contents('http://www.baidu.com'));
} catch (Exception $e) {
    print_r($e->getTrace());
}
echo 2;

1、参数为:http://www.baidu.com

https://img.mukewang.com/5c8f43d70001f49e04370123.jpg

2、参数为:http://220.181.112.244/index....

https://img4.mukewang.com/5c8f43d80001310908000335.jpg

3、在服务器执行脚本,两种参数都有返回数据。

https://img.mukewang.com/5c8f43da00012ebc05470222.jpg

这是file_get_contents() 方法请求的错误信息:

2018/05/26 22:16:03 [error] 24942#0: *46192 FastCGI sent in stderr: "PHP message: PHP Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /data/com.9b/duolaixue_admin/test_print/test.php on line 13

php curl 请求的错误信息:
Could not resolve host: www.baidu.com; Name or service not known

哈士奇WWW
浏览 3689回答 5
5回答

吃鸡游戏

困扰了很久的问题,突然想到了重装PHP,就好了。 把php-fpm进程关掉,然后重新编译安装一下相同版本的php就可以恢复正常。

米琪卡哇伊

这个问题如果是偶尔可以,偶尔不可以,一般如果是centos7的话用systemctl restart php-fpm重启下即可解决;如果是centos6的话就用service php-fpm restart

慕丝7291255

请问题主问题解决了吗?今天我也遇到同样的问题.求助
打开App,查看更多内容
随时随地看视频慕课网APP