好的,这个问题在互联网上已被多次询问,但我没有找到解决问题的任何解决方案。
我将使用以下代码获取一些JSON数据:
$response = file_get_contents('http://www.domain.com/path/to/json');
它一直在绊倒以下错误:
file_get_contents():php_network_getaddresses:getaddrinfo失败: 姓名或服务未知
我在 Nginx 1.2.6 和 php-fpm 上使用 PHP 5.4.4 运行 Debian
这是我目前的疑难解答:
allow_url_fopen
。/etc/resolv.conf
中的Google公共DNS。ping google.com
工作。http://0.0.0.0/path/to/json
有效但不合适。我对domain
中的/etc/resolv.conf
有点关注,是不是?
# Automatically generated by OnApp (2.3.0-29)
domain localdomain
# Original DNS
#nameserver 10.0.10.10
#nameserver 10.0.11.11
# Google Public DNS
nameserver 8.8.8.8
nameserver 8.8.4.4
感谢任何形式的帮助。
答案 0 :(得分:1)
我讨厌这样说,但问题解决了;我刚刚升级了Debian软件包(apt-get upgrade
),问题就消失了。但是,不知道原因令人沮丧。
谢谢大家的时间!
答案 1 :(得分:0)
这很可能是DNS问题。如果IP工作但域存在问题,您应该查看DNS。这就是“名称或服务未知”的暗示。 如果可以,请使用不同的名称服务器。我认为google的dns无法将你的域名转换为ip。
答案 2 :(得分:0)
我用两种方式解决了它,要么以root用户模式运行php(或apache),要么更新你的debian包。可能是debian7u5或者更新4有这个bug。