Heim  >  Artikel  >  Backend-Entwicklung  >  Was soll ich tun, wenn PHP den Domainnamen nicht auflösen kann?

Was soll ich tun, wenn PHP den Domainnamen nicht auflösen kann?

藏色散人
藏色散人Original
2022-12-02 09:26:275862Durchsuche

Lösung für das Problem, dass PHP den Domänennamen nicht auflösen kann: 1. Verwenden Sie die Terminal-Befehlszeile, um den Befehl „# php -r „echo(gethostbyname('...'));“ auszuführen „libnss_dns.so.2 libnss_files.so.2 libresolv.so.2“ wird in das lib-Verzeichnis des virtuellen Hosts kopiert; 3. Starten Sie PHP über „# amh php restart xxx.com“ neu.

Was soll ich tun, wenn PHP den Domainnamen nicht auflösen kann?

Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, PHP-Version 8.1, Dell G3-Computer.

Was soll ich tun, wenn PHP den Domainnamen nicht auflösen kann?

Über das Problem der erfolglosen Domainnamenauflösung in PHP

Bitte achten Sie darauf, das virtuelle Host-Panel zur Verwaltung des Systems zu verwenden, insbesondere das AMH-Panel! !

Ich wurde in diesen Tagen zu Tode gequält. Nach der Installation des amh-Panels schlagen alle Funktionen fehl, die die Auflösung von Domänennamen verwenden, wie z. B. gethostbyname, Curl, E-Mail-Versand usw. Solange es sich bei der URL um einen Domänennamen handelt, schlagen sie alle fehl . Es ist in Ordnung. Zuerst dachte ich, es sei ein DNS-Problem. Nach der Überprüfung stellte ich fest, dass das Pingen dieser Domänennamen auch möglich ist richtig. Das Seltsamste ist, dass die Verwendung des Befehlszeilenterminals:

# php -r "echo(gethostbyname('www.baidu.com'));";

tatsächlich die IP zurückgeben kann, also sollte es das Problem sein, das ich lange gesucht habe Viele Leute, aber ich habe später zufällig davon erfahren, dass dieses Ding die Systemumgebung in ein bestimmtes Verzeichnis umwandelt. Es enthält keine DNS Es wurde mir allmählich klar, was zum Parsen von DNS erforderlich ist, hauptsächlich diese drei:

libnss_dns.so.2  libnss_files.so.2  libresolv.so.2

Jetzt kommt der Punkt: Wenn Sie auf das gleiche Problem stoßen, schauen Sie sich das an , cd in Ihr virtuelles Hostverzeichnis: /home/wwwroot/xxx.com/, unten Es gibt Verzeichnisse wie etc, lib, usr, web, tmp usw. Kopieren Sie die drei oben genannten libs in das lib-Verzeichnis Ihres virtuellen Hosts

# cp /lib/i386-linux-gnu/libnss_* /home/wwwroot/xxx.com/lib/

Versuchen Sie es jetzt noch einmal. Ist es erfolgreich?

Oh, mir kommen die Tränen, wenn ich zu viel rede...

--------------------------------------------- -

PS: Zum Abschluss: Nachdem Sie einen Schritt abgeschlossen haben, denken Sie daran, PHP neu zu starten, AMH, Direktbefehl:

# amh php restart xxx.com

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn PHP den Domainnamen nicht auflösen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn