file () : php_network_getaddresses: getaddrinfo не удалось: временный сбой при разрешении имени

Я получил следующую ошибку, когда получаю содержимое из файла (« http://www.otherdomain.com »).

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

Сервер домена – это Linux.

Как решить эту проблему?

Цитирование:

Если у вас возникли проблемы с fopen («url …»), но вы можете запустить «URL-адрес хоста» в окне оболочки и получить правильный поиск, вот почему …

Это заставило меня ударить головой об этом весь день – наконец, я нашел ответ, похороненный в отчетах об ошибках, но подумал, что это должно быть более заметным!

Проблема возникает, когда вы находитесь на линии ADSL с DHCP (например, в нашем офисе) … Когда ADSL-модем возобновляет аренду DHCP, вы также можете переключать DNS-серверы, что путает apache (и, следовательно, PHP), что означает, что вы можете 't искать хосты из PHP, даже если вы можете из командной строки …. Кратковременное решение – перезапустить apache.

Вы получите сообщение «php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in …» в качестве симптомов. Перезапустите apache, и они ушли 🙂

Саймон

Комментарий от Simon на php.net

убедитесь, что веб-сайт можно получить с вашего сервера. также убедитесь, что вы используете, имеет надлежащую настройку DNS-сервера.

если вы уверены, что веб-сайт работает … попробуйте изменить файл / etc / hosts и добавить IP-адрес веб-сайта для тестирования, а затем попытайтесь выяснить, почему он не разрешает домен.

Домен не может быть разрешен к его IP-адресу.

Если ваш DNS работает локально, попробуйте перезапустить его. Если нет, проверьте свой DNS или добавьте другой сервер в /etc/resolve.conf (т.е. nameserver 8.8.8.8).

Вы также можете добавить домен как статическую запись в файл hosts:

На сервере linux добавьте данные DNS в файл / etc / hosts, используя:

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

… где 127.0.0.1 – это IP-адрес вашего сайта и http://www.otherdomain.com – имя вашего домена.

Вы можете найти IP-адрес любого домена, используя nslookup, т.е.

nslookup www.otherdomain.com

Я столкнулся с этой проблемой с геокодированием CiviCRM! Перезапуск Apache, такой как Шехи, рекомендовал устранить проблему.