Временная ошибка в разрешении имени: ошибка поиска имени хоста
У меня есть скрипт на PHP, который отлично работает уже несколько месяцев. Недавно перестал работать.
Этот скрипт подключается к Gmail, чтобы отправить электронное письмо моим клиентам.
Недавно я начал получать эту ошибку при запуске сценария:
The SMTP connection failed to start [tls://smtp.gmail.com:465]:
fsockopen returned Error Number 0 and Error String 'php_network_getaddresses:
getaddrinfo failed: Temporary failure in name resolution'
Имейте в виду, это было с нулевыми изменениями кода.
Я посмотрел на свой resolv.conf, и он выглядит нормально:
nameserver 208.67.222.222
Я могу пинговать gmail.com:
# ping smtp.gmail.com
PING gmail-smtp-msa.l.google.com (74.125.93.111) 56(84) bytes of data.
64 bytes from qw-in-f111.google.com (74.125.93.111): icmp_seq=1 ttl=247 time=26.7 ms
Я могу подключиться через Lynx к Google и другим сайтам без проблем.
Я вошел в свою учетную запись Gmail без проблем (без каптчи там тоже).
Я в конце концов. У кого-нибудь есть идеи?
G-Man
6 ответов
У PHP возникают проблемы с доступом к / etc / hosts или /etc/resolv.conf: в PHP существует давняя проблема, связанная с этой конкретной ошибкой. Исправление состоит в том, чтобы попытаться перезапустить Apache или любой другой, вызывающий PHP, или убедиться, что / etc / hosts и /etc/resolv.conf читаемы тем, что вызывает PHP.
Я только что испытал ту же ошибку и
service httpd restart
сделал трюк...
% dig @208.67.222.222 smtp.gmail.com +short
gmail-smtp-msa.l.google.com.
209.85.201.109
209.85.201.111
%
Теперь попробуйте использовать Xdebug, чтобы увидеть, где именно проблема...
<?php
xdebug_start_trace('/tmp/lookup-trace.log');
$ip = gethostbyname('smtp.gmail.com');
xdebug_stop_trace();
die($IP);
?>
Что-нибудь хорошее в журналах?
Добавьте код отладки перед этой строкой, чтобы скрипт мог разрешить его правильно.
У меня возникла следующая проблема при обновлении magento 2 до последней версии, поэтому я подозреваю, что это проблема конфигурации php.
The "https://repo.magento.com/packages.json" file could not be downloaded: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution
failed to open stream: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution
Решил это, перезапустив xampp через команду.
sudo /opt/lampp/lampp/stop
sudo /opt/lampp/lampp/start
Потом попробовал composer update
Команда снова, и это сработало как шарм.
У меня была эта ошибка сегодня, однако это произошло после определенного события, которое заставляет меня думать, что я, возможно, нашел причину.
Из-за некоторых проблем с сетевым оборудованием я фактически перезагрузил сервер, и когда он вернулся, в кабеле было неправильное сетевое соединение, что фактически означало, что DNS-сервер недоступен.
Тем временем эта функция php была вызвана, и после этого она никогда не работала, пока я не перезапустил httpd.
Я думаю, что ошибка может относиться к сбою сети (где DNS не только недоступен, но и недоступен, то есть неправильная подсеть), и когда сеть впоследствии восстанавливается, эта функция больше не ищет DNS.
Эта thead была несколько лет назад, может быть, эта ошибка сейчас исправлена в PHP?