2014-04-30 14 views
7

Sto tentando di aggiornare alcuni valori da un server a un altro server con un processo cron. Io uso file_get_contents().file_get_contents(): php_network_getaddresses: getaddrinfo non riuscito

La cosa strana è che questo non riesce occasionalmente. Un minuto funziona, un altro minuto non funzionerà. ricevo questi due errori:

PHP Warning: file_get_contents(): php_network_getaddresses: getaddrinfo fallito: nome o il servizio non nota

PHP Warning: file_get_contents(): Impossibile aprire il flusso: php_network_getaddresses: getaddrinfo fallito : Nome o servizio non nota

e:

PHP Warning: file_get_contents(): PHP_ network_getaddresses: getaddrinfo fallito: Nessun indirizzo associato con hostname

PHP Warning: file_get_contents(): Impossibile aprire flusso: php_network_getaddresses: getaddrinfo riuscita: Nessun indirizzo associato con hostname

Ho effettuato l'accesso al server che sperimenta questo problema Usando ping o traceroute funziona bene, quindi ho escluso problemi con il DNS. Ho anche aggiunto i server dei nomi DNS di google per sicurezza. Un terzo server che utilizza lo stesso codice esatto non presenta questo problema, quindi sembra che si tratti di un problema sul termine "chiamante", non sul termine "risposta". Sostituire il nome host con IP non è un'opzione per questo caso.

Qualcuno sa come risolvere questo?

+0

Questo accade sul server live? Se sono server ospitati, direi questo al loro supporto. – hek2mgl

+0

Possibile duplicato di [PHP: file \ _get \ _contents ($ loc) non riuscito] (https://stackoverflow.com/questions/542046/php-file-get-contentsloc-fails) – dotancohen

risposta

0

Questo a causa dei limiti di connessione sul secondo server e ritengo che siano stati impostati intervalli di tempo brevi per il processo cron. Come sapete, i server controllano le connessioni consecutive da ciascun IP. È possibile scegliere un intervallo di tempo più lungo per risolvere questo problema.

1

La ricerca del nome sembra fallire mentre è in esecuzione all'interno di un cron job a volte. L'ho visto solo con i nomi in/etc/hosts, ma non ho testato i nomi DNS.

L'ho visto con l'invio di e-mail e timeout della connessione SMTP.

Non so la causa esatta, ma nel mio caso ho ottenuto il mio codice SMTP per connettersi a 127.0.0.1 anziché localhost e il problema è andato via.

10

Nel mio caso, il problema è che Apache ottiene le voci DNS da /etc/resolv.conf all'avvio. Quando ho avviato il mio Apache, la rete non era ancora stata impostata. Il riavvio di Apache (dopo aver configurato la rete) ha risolto il problema per me.

ho spiegato il caso in maggior dettaglio nel mio blog http://diogomelo.net/blog/16/Warning-file_get_contents-php_network_getaddresses-getaddrinfo-failed-No-address-associated-with-hostname

+0

Grazie a voi, che finalmente è stata la mia soluzione . –

+0

Questa è un'informazione molto importante. Grazie.! – vishva8kumara

+0

Terrei: è stato anche il mio problema. Probabilmente perché sto facendo il mio sviluppo su una VM, quindi le cose cambiano quando riprendo la VM. –

Problemi correlati