33 Stimmen

PHP php_network_getaddresses: getaddrinfo failed: Kein solcher Host ist bekannt

Ich habe DNS-Probleme mit einer bestimmten Ziel-Domäne. Ich verwende fopen() (aber das gleiche Problem tritt bei anderen Funktionen auf), um ein Bild abzurufen, aber ich erhalte diesen Fehler: Warnung: fopen(): php_network_getaddresses: getaddrinfo ist fehlgeschlagen: Es ist kein solcher Host bekannt

Ich kann die Domain über die Eingabeaufforderung pingen oder nslookup ausführen, aber aus irgendeinem Grund wirft PHP diesen Fehler. Wenn ich fopen('http://www.google.com', r); oder andere Domains versuche, funktioniert alles. Aber die oben genannte Domain löst einfach nicht mit PHP auf. Ich habe den DNS geleert, Apache neu gestartet, aber immer noch kein Glück..

Ich habe es versucht mit:

  • Windows 7, Apache 2.2 PHP 5.3.6
  • Windows Server 2008r2, Apache 2.2 PHP 5.3.6

Was kann dazu führen, dass diese einzelne Domain nicht aufgelöst wird?

0voto

domaci_a_nas Punkte 169

Ich hatte viele Probleme damit unter Windows. Ich habe einfach git clone ausgeführt, meine .env.example Datei kopiert und in .env umbenannt, sie aktualisiert und mein zuverlässiges PHP-Skript ausgeführt, um die anfängliche Datenbank für ein Projekt zu aktualisieren. Und es ist fehlgeschlagen, und egal was ich gemacht habe, es ist immer wieder fehlgeschlagen. Aus Verzweiflung habe ich MySQL neu installiert, aber das hat die Dinge nicht behoben.

Schließlich habe ich es herausgefunden. Das PHP-Skript hat die Einstellungen aus der .env Datei mit file_get_contents() extrahiert und sie mit \n aufgeteilt, aber die .env Datei war mit CRLF codiert, so dass mein DB_HOST leer war. Nachdem ich die Codierung der .env Datei geändert habe, lief alles reibungslos.

Also, mein Punkt ist, gib die Parameter aus, die an mysqli::construct übergeben werden, und das könnte der Übeltäter sein.

-1voto

bonger Punkte 119

Eine seltsame Sache, die ich herausgefunden habe, ist, dass die Umgebungsvariable SYSTEMROOT festgelegt sein muss, sonst schlägt getaddrinfo() unter Windows 10 fehl.

-4voto

nyxee Punkte 2671

Was diesen Fehler auf meiner Seite verursacht hatte, war die folgende Zeile

include_once dirname(__FILE__) . './Config.php';

Ich konnte feststellen, dass dies der Übeltäter war, als ich die Zeilen hinzugefügt habe:

//error_reporting(E_ALL | E_DEPRECATED | E_STRICT);
//ini_set('display_errors', 1);

zu allen meinen PHP-Dateien.

Um das Pfadproblem zu lösen, habe ich die beanstandete Zeile geändert in:

include_once dirname(__FILE__) . '/Config.php';

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X