file() [function.file]: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution

谁说胖子不能爱 提交于 2019-12-06 06:00:56

问题


I got the following error when I get contents from file("http://www.otherdomain.com").

file() [function.file]: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution

The domain server is linux.

How to resolve this problem?


回答1:


Quoting:

If you're having problems with fopen("url...") but you can run 'host url' in a shell window and get the correct lookup, here's why...

This has had me banging my head against it all day - finally I found the answer buried in the bug reports, but figured it should really be more prominent!

The problem happens when you're on an ADSL line with DHCP (like our office)... When the ADSL modem renews the DHCP lease, you can also switch DNS servers, which confuses apache (and hence PHP) - meaning that you can't look up hosts from within PHP, even though you can from the commandline.... The short-term solution is to restart apache.

You'll get "php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in ..." messages as symptoms. Restart apache, and they're gone :-)

Simon

Comment by Simon at php.net




回答2:


make sure that website can be reached from you server. also make sure that you are using has a proper DNS server setup.

if you are sure that website is working ... try modifying the /etc/hosts file and add the website's IP for test purposes, then try to figure out why it doesn't solve the domain.




回答3:


The Domain can not be resolved to it's IP address.

If you have your DNS running local, try restarting it. If not, check your DNS or add a different server to /etc/resolve.conf (i.e. nameserver 8.8.8.8).

You can also add the domain as a static entry in your hosts file:

On your linux server add the DNS information to your /etc/hosts file using:

echo '127.0.0.1 www.otherdomain.com' >> /etc/hosts

…where 127.0.0.1 is the IP address of your website and www.otherdomain.com the domain name your using.

You can find the IP address of any domain using nslookup, i.e

nslookup www.otherdomain.com




回答4:


I was running into this issue with CiviCRM geocoding! Restarting Apache like Shehi recommended fixed the problem.



来源:https://stackoverflow.com/questions/2880563/file-function-file-php-network-getaddresses-getaddrinfo-failed-temporary

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!