PHP-FPM似乎偶尔会出现DNS问题,最近也在DNS not working in PHP (but does in general)中报告过。由于问题似乎比其他问题中描述的更复杂,我想再详细说明问题。
根据引用的问题,重启PHP_FPM有助于:
sudo service php5-fpm restart
但似乎只有一段时间了。
我的PHP脚本通过file_get_contents()
与第二台服务器联系,该工作正常...直到昨天。对于简单的请求,例如
file_get_contents('http://www.example.com/');
我收到错误"没有与主机名相关联的地址"。
file_get_contents(http://www.example.com/): failed to open stream: php_network_getaddresses: getaddrinfo failed: No address associated with hostname
使用curl
尝试相同时,错误类似:
Could not resolve host: www.example.com
是的,我实际上是通过www.example.com对此进行了测试,以将服务器排除为错误来源。
当使用同样运行PHP的服务器执行nslookup
时,一切似乎都没问题:
$ nslookup www.example.com
Server: xx.xx.xx.100
Address: xx.xx.xx.100#53
Non-authoritative answer:
Name: www.example.com
Address: 93.184.216.34
我在nginx服务器上通过PHP-FPM使用PHP 5.5.9。 PHP5-FPM,nginx和syslog的错误日志不包含有关此问题的任何其他信息。