Solution au problème selon lequel php ne peut pas résoudre le nom de domaine : 1. Utilisez la ligne de commande du terminal pour exécuter la commande "# php -r "echo(gethostbyname('...'));";" "libnss_dns.so.2 libnss_files.so.2 libresolv.so.2" est copié dans le répertoire lib de l'hôte virtuel ; 3. Redémarrez php via "# amh php restart xxx.com".
L'environnement d'exploitation de ce tutoriel : système linux5.9.8, PHP version 8.1, ordinateur Dell G3.
Que dois-je faire si php ne parvient pas à résoudre le nom de domaine ?
À propos du problème de résolution de nom de domaine infructueuse en PHP
Veuillez faire attention à l'utilisation du panneau d'hôte virtuel pour gérer le système, en particulier le panneau amh ! !
J'ai été tourmenté à mort ces jours-ci. Après avoir installé le panneau amh, toutes les fonctions qui utilisent la résolution de nom de domaine échouent, comme gethostbyname, curl, l'envoi d'e-mails, etc. Tant que l'URL est un nom de domaine, elles échouent toutes. . Remplacez-le par une adresse IP. Tout va bien. Au début, j'ai pensé qu'il s'agissait d'un problème DNS. Après vérification, j'ai découvert que j'utilisais 8.8.8.8 et 8.8.4.4, et que le ping de ces noms de domaine pouvait également renvoyer des adresses IP correctement. . NSlookup était également normal. Le plus étrange, c'est qu'en utilisant le terminal, exécutez le terminal de ligne de commande :
# php -r "echo(gethostbyname('www.baidu.com'));";
peut en fait renvoyer l'adresse IP, donc j'ai visé amh, cela devrait être son problème en ligne et j'en ai demandé à beaucoup. personnes, mais aucune solution n'a été trouvée. Plus tard, je l'ai appris par hasard. Après avoir recherché sur Baidu à propos de chroot, j'ai découvert que cette chose basculait l'environnement système vers un répertoire spécifié. L'environnement système en dehors du répertoire ne peut pas être utilisé. . C'est progressivement devenu clair, alors j'ai vérifié ce qui est nécessaire pour analyser le DNS. Quelles bibliothèques vérifier, principalement ces trois :
libnss_dns.so.2 libnss_files.so.2 libresolv.so.2
Maintenant, voici le point, le panneau amh, si vous rencontrez le même problème, vérifiez-le, cd dans le répertoire de votre hôte virtuel : /home/wwwroot/xxx.com/, ci-dessous Il existe des répertoires tels que etc, lib, usr, web, tmp, etc. Copiez les trois libs mentionnées ci-dessus dans le répertoire lib de votre hôte virtuel
# cp /lib/i386-linux-gnu/libnss_* /home/wwwroot/xxx.com/lib/
Réessayez maintenant. Est-ce réussi ?
Oh, je suis en larmes si je parle trop...
------------------------------- -
PS : Enfin Après avoir terminé une étape, pensez à redémarrer php, amh, commande directe :
# amh php restart xxx.com
Apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!