萬盛學電腦網

 萬盛學電腦網 >> 電腦故障維護 >> 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
copyright © 萬盛學電腦網 all rights reserved