错误的DNS设置,php_network_getaddresses:getaddrinfo失败了,名称或服务未知,nslookup。

5

最初的问题是这样的:

警告:file_get_contents() [function.file-get-contents]: php_network_getaddresses:getaddrinfo失败:名称或服务未知, 位于/home///ppk_hotweb.class.php第58行

我也使用了cURL,但它只返回null。两者(file和cURL)都已启用。

尝试过 file_get_contents('google.com'),它可以正常工作!

那么为什么 file_get_contents('domain.com.au') 就不起作用呢?

于是我开始阅读相关的stackoverflow帖子,人们说这是DNS设置问题。

我尝试了以下方法:

> # ping domain.com.au
ping: unknown host domain.com.au

主机出了什么问题?网站已经上线。

另外:

# nslookup domain.com.au
服务器: 203.16.60.
地址: 203.16.60.
#53

*** 找不到 domain.com.au: 没有答案

还有:

> # dig domain.com.au

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <<>> domain.com.au
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52814
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;domain.com.au.          IN      A

;; AUTHORITY SECTION:
domain.com.au.   3600    IN      SOA     ns1.web24.net.au. dns.web24.net.au. 2012080201 7200 3600 604800 3600

;; Query time: 1 msec
;; SERVER: 203.16.60.***#53(203.16.60.3)
;; WHEN: Sat Aug  4 05:43:23 2012
;; MSG SIZE  rcvd: 92

我真的很感激任何帮助!谢谢。

更新:顺便尝试了Whois查询...

domain.com.au不可用

:(


答案是更正你的/etc/hosts文件。确保URL指向正确的位置(通常是localhost)。 - tread
2个回答

5

你的服务器正在使用的DNS服务器可能因为使用了旧的缓存记录,而我这边查询该主机时却是可用的。

我的dig结果也返回了有效的A记录,而你的似乎没有。

虽然这可能不会改变任何事情,但由于DNS问题,建议你更新一下。

file_get_contents('domain.com.au');

should be:

file_get_contents('http://domain.com.au');

使用第一种选项会尝试查找本地文件,而不是使用 http 封装器。
如果您有权限,请尝试将您的 /etc/resolv.conf 文件中的名称服务器更改为其他名称服务器。

是的,我没有在快捷方式上添加http://,但它已经存在了,无论如何...root@vmx03 [/etc]# cat resolv.conf nameserver 203.16.60. nameserver 203.16.61.***目前就是这样...我应该/可以将它更改为哪个IP地址? - Mak
如果您不知道在下面的框中填写什么并且无法联系您的提供商,请关闭此窗口并稍后进行设置。 :) 我真的不知道在那里放什么 :) - Mak
3
现在,建议您在resolv.conf文件中只使用Google的公共DNS服务器。将那些nameserver行替换为地址“8.8.8.8”和“8.8.4.4”,然后查看是否可以解析该主机。 - drew010
那么我将来需要更改它吗? - Mak
2
除非您的服务器需要使用自己的名称服务器来解析您控制下的某些域,否则您可以安全地继续使用来自Google的那些DNS服务器。由于我不知道您之前使用的完整IP地址,因此无法确定谁控制它们或交易的内容,但显然它们提供了过时的DNS信息,并且没有获取更新的信息。 - drew010
在Debian服务器上,如果安装了“resolvconf”程序,则应将名称服务器添加到网络接口中。编辑resolv.conf将无效。在我的情况下,我将dns-nameservers 8.8.8.8 8.8.4.4添加到eth0段落中,解决了这个错误。感谢您的帮助。[https://wiki.debian.org/NetworkConfiguration#Defining_the_.28DNS.29_Nameservers] - ndasusers

-2

你可以像下面这样使用这个命令,不需要使用https

 php -r "readfile('http://symfony.com/installer');" > symfony

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接