Home  >  Article  >  Backend Development  >  关于PHP中解析域名不成功的有关问题

关于PHP中解析域名不成功的有关问题

WBOY
WBOYOriginal
2016-06-13 11:51:46910browse

关于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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn