首頁 >後端開發 >PHP問題 >php不能解析網域名稱怎麼辦

php不能解析網域名稱怎麼辦

藏色散人
藏色散人原創
2022-12-02 09:26:275951瀏覽

php不能解析網域的解決方法:1、用terminal命令列終端機執行「# php -r "echo(gethostbyname('...'));";」指令;2、將「libnss_dns .so.2  libnss_files.so.2  libresolv.so.2」複製到虛擬主機目錄的lib下;3、透過「# amh php restart xxx.com」重啟php即可。

php不能解析網域名稱怎麼辦

本教學操作環境:linux5.9.8系統、PHP8.1版、Dell G3電腦。

php不能解析網域怎麼辦?

關於PHP中解析網域不成功的問題

用虛擬主機面板管理系統的注意了,尤其是amh面板! !

這幾天折騰死我了,裝了amh面板之後,所有用到域名解析的函數全部失敗,比如gethostbyname, curl, 發郵件等等功能,只要url是域名的,全部失敗,換成ip位址就可以,一開始還以為是dns的問題,查了一下,用的是8.8.8.8和8.8.4.4,而且ping那些網域也能正確回傳ip位址,nslookup也正常,最TM詭異的是,用terminal命令列終端運行:

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

居然是可以返回ip的,於是把目標瞄準amh,應該是它的問題了,上網找了很久很久,問過很多人,都沒有找到解決方案,後來無意中了解了chroot這個玩意,百度了一下,發現這東西是將系統環境切換到指定的一個目錄,目錄外的系統環境都用不了了,包含dns解析,開始慢慢明朗了,於是查了一下解析dns需要用到哪些lib,主要是這三個:

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

現在,重點來了,amh面板的,遇到相同問題的看過來,cd到你的虛擬主機目錄:/home/wwwroot/xxx.com/,下面有etc, lib, usr, web, tmp等等目錄,上面說的三個lib copy到你的虛擬主機目錄的lib下

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

現在再試一下,是不是成功了?

唉,說多了都是淚啊...

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

PS: 最後一步完成後記得重啟php,amh的,直接指令:

# amh php restart xxx.com

推薦學習:《PHP影片教學

以上是php不能解析網域名稱怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn