web-dev-qa-db-fra.com

Échec temporaire de la résolution de noms: échec de la recherche de nom d'hôte

J'ai un script dans PHP icoup de fonctionne bien pendant des mois. Il a récemment cessé de fonctionner.

Ce script se connecte à Gmail pour envoyer un courrier électronique à mes clients.

Récemment, j'ai commencé à obtenir cette erreur lorsque j'exécute le script:

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'

N'oubliez pas que c'était avec des changements de code zéro.

J'ai regardé mon resolv.conf et il semble être ok:

nameserver 208.67.222.222

Je peux ping 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  

Je peux connecter via Lynx à Google et à d'autres sites sans problème.

Je suis connecté à mon compte Gmail sans problème (pas de captcha là-bas non plus).

Je suis à la fin de Wits. Quelqu'un a des idées?

G-man

10
GeoffreyF67

PHP a du mal à accéder à/etc/hosts ou /etc/resolv.conf: il y a un problème de longue date In PHP lié à cette erreur spécifique. Le correctif est Pour essayer de redémarrer Apache ou tout ce qui est invoquant PHP, ou à vous assurer/etc/hosts et /etc/resolv.conf sont lisibles par ce qui invoque php.

13
user4253

Je viens de vivre la même erreur et

service httpd restart

a fait le tour ...

6
Peter Sierst Nielsen
% Dig @208.67.222.222 smtp.gmail.com +short
gmail-smtp-msa.l.google.com.
209.85.201.109
209.85.201.111
%

Maintenant, essayez d'utiliser Xdebug pour voir où le problème est exactement ....

<?php
xdebug_start_trace('/tmp/lookup-trace.log');
$ip = gethostbyname('smtp.gmail.com');
xdebug_stop_trace();
die($IP);
?>

Quelque chose de bien dans les journaux?

2
Xerxes

Ajoutez du code de débogage avant cette ligne pour vous assurer que le script peut le résoudre correctement.

1
Matt Simmons

J'ai eu cette faute aujourd'hui, mais elle s'est produite après un événement spécifique qui me fait penser que j'ai peut-être trouvé la cause.

En raison de certains problèmes d'équipement de réseau, je redémarrais effectivement par serveur et quand il est revenu, il y avait une connexion réseau incorrecte dans le câblage, ce qui signifie efficacement aucun serveur DNS n'était disponible.

entre-temps, cette fonction PHP a été appelée et après cela, elle n'a jamais fonctionné jusqu'à ce que je redémarre httpd.

Je pense que le bug peut être concerné à une défaillance de réseau (où le DNS n'est pas seulement disponible, mais inaccessible, c'est-à-dire un mauvais sous-réseau) et lorsque le réseau récupère ensuite cette fonction ne recherche plus la DNS.

Cette Thead était il y a quelques années, peut-être que ce bogue est maintenant fixé dans PHP?

0
Charlie

J'avais le problème suivant lors de la mise à niveau de Magento 2 vers la dernière version, je suppose donc que c'est le problème avec la configuration 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

Résolu en redémarrant le XAMPP par la commande.

Sudo /opt/lampp/lampp/stop
Sudo /opt/lampp/lampp/start

Puis essayé le composer update commandez à nouveau et cela a fonctionné comme un charme.

0
Umar Yousaf