AMH 社区首页
AMH社区 - 开放自由有价值的社区
[求助帖] 关于PHP中解析域名不成功的问题 |
|
---|---|
水天晓 |
水天晓 发表于 2014-03-20 11:37:54
用虚拟主机面板管理系统的注意了,尤其是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
点赞,加油! (0分)
2014-03-20 11:37:54 1
|
amysql |
是的,amh默认是防跨站的。
只能虚拟主机目录内活动。 libnss_dns.so.2 libnss_files.so.2 libresolv.so.2 这三个文件新建主机时,默认是有copy的。 估计是没复制成功。是用什么系统?
回复
2014-03-20 13:01:59 2
AMH面板 - 好用高效低占用、安全可靠极稳定 |
l12ab |
兼容模式应该可以解决。
PS:妹纸回来了,撒花
回复
2014-03-20 13:40:38 3
|
amysql |
回复
2014-03-20 13:45:26 4
|
水天晓 |
ubuntu 12.04(32bit) 和 CentOS 6.3(64bit)都出现这个问题
回复
2014-03-20 14:43:52 5
|
amysql |
amh host脚本有做复制的。 (\cp /lib/{ld-linux.so.2,libc.so.6,libdl.so.2,libnss_dns.so.2,libnss_files.so.2,libresolv.so.2,libtermcap.so.2} lib/) 2> /dev/null; 上面几个文件都在其中。如果方便可以pm机器我这边看看。
回复
2014-03-20 15:15:41 6
|
水天晓 |
引用: 我这台ubuntu的机器的那几个so不是在/lib下的,是在/lib/i386-linux-gnu/下面的
回复
2014-03-20 16:45:06 7
|
moliliang |
我也被这个问题折腾死了,centos
回复
2014-03-27 11:57:33 8
|