关于php报错:file_get_contents(): php_network_getaddresses: getaddrinfo
failed: Name or service not known的处理方法
今天同事遇到一个问题,用php内置方法file_get_contents去读取文件时出现报错信息:file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known。跑来问我,一开始也百思不得其解,按理这个方法php5.0就支持了,现在用的php7.1应该不会不支持的。后来查找资料找到解决办法,特此记录下,为以后遇到此问题的小伙伴一块学习(感谢网上提供解决方案的童鞋们,搞技术的就该有这共享精神)
在使用 file_get_contents远程请求url时,出现警告php_network_getaddresses: getaddrinfo failed: Name or servicenot known
这个问题通常是由于 Apache/PHP主机连不上dns服务器。首先,要在命令行下
检查,是否能ping通远程主机。
如果ping不通,那么你的name server(如果是fedora,在/etc/resolv.conf文件中)设置有问题。找一个可以使用的dns,
用该dns的ip替换/etc/resolv.conf 中第一个nameserver的ip,然后重启nginx。
如果能ping通,那么apache现在连的是一个有问题的dns服务器。你需要重启nginx,以便从/etc/resolv.conf中刷新dns服务器列表。
如果还是不能解决,可以试试如下建议:
1)检查要请求的远程主机是不是在本机的/etc/hosts中
2)检查防火墙的规则,是不是被拦截了‘
3)在/etc/hosts手动绑定host
领取 专属20元代金券
Get大咖技术交流圈