产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请 担保单 免费安全、零费率交易平台编程助手免费智能写代码、翻译AMYSQL 免费MySQL管理工具

AMH 社区首页

 AMH社区 - 开放自由有价值的社区

[求助帖] 关于PHP中解析域名不成功的问题

水天晓
铁牌会员
82.00 价值分

水天晓 发表于 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


2014-03-20 11:37:54 1

amysql
创始人
16530.81 价值分

是的,amh默认是防跨站的。
只能虚拟主机目录内活动。

libnss_dns.so.2 libnss_files.so.2 libresolv.so.2
这三个文件新建主机时,默认是有copy的。
估计是没复制成功。是用什么系统?
  支持 (0分)  反对 (0分)
回复  2014-03-20 13:01:59 2

AMH面板 - 好用高效低占用、安全可靠极稳定

l12ab
金牌会员
7345.06 价值分

兼容模式应该可以解决。

PS:妹纸回来了,撒花
  支持 (0分)  反对 (0分)
回复  2014-03-20 13:40:38 3

amysql
创始人
16530.81 价值分

引用:
l12ab 发表于 2014-3-20 13:40
兼容模式应该可以解决。

PS:妹纸回来了,撒花


是,切换兼容模式也可以,不防跨站。
  支持 (0分)  反对 (0分)
回复  2014-03-20 13:45:26 4

水天晓
铁牌会员
82.00 价值分

引用:
amysql 发表于 2014-3-20 13:01
是的,amh默认是防跨站的。
只能虚拟主机目录内活动。



ubuntu 12.04(32bit) 和 CentOS 6.3(64bit)都出现这个问题
  支持 (0分)  反对 (0分)
回复  2014-03-20 14:43:52 5

amysql
创始人
16530.81 价值分

引用:
水天晓 发表于 2014-3-20 14:43
ubuntu 12.04(32bit) 和 CentOS 6.3(64bit)都出现这个问题


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机器我这边看看。
  支持 (0分)  反对 (0分)
回复  2014-03-20 15:15:41 6

水天晓
铁牌会员
82.00 价值分

引用:
amysql 发表于 2014-3-20 15:15
amh host脚本有做复制的。
(\cp /lib/{ld-linux.so.2,libc.so.6,libdl.so.2,libnss_dns.so.2,libnss_file ...


我这台ubuntu的机器的那几个so不是在/lib下的,是在/lib/i386-linux-gnu/下面的
  支持 (0分)  反对 (0分)
回复  2014-03-20 16:45:06 7

moliliang
铁牌会员
173.00 价值分

我也被这个问题折腾死了,centos
  支持 (0分)  反对 (0分)
回复  2014-03-27 11:57:33 8
 1  (总1页)
AMH社区列表
用户服务中心