全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 3257|回复: 9

[已解决] 关于AMH数据库连接地址 mysql.sock 说明。

[复制链接]
发表于 2013-8-6 17:53:38 | 显示全部楼层 |阅读模式
1、环境说明
AMH面板虚拟主机有两种运行模式,有安全模式与兼容模式。
新建主机默认情况是安全模式,用户可以使用AMChroot模块进行切换。

AMH安全模式是Chroot模拟Linux环境,运行虚拟主机、防跨站安全性很高。
由于是模拟环境,兼容性不太好。
虽然是安全模式兼容性不好,但一直没放弃安全模式,安全方面还是很重要,能增强就增强。
所以一直再改善安全模式的兼容问题。


2、环境影响
其中数据库连接地址就为一很好的例子。
php mysql_connect连接MySQL地址127.0.0.1与localhost是有区别的,
PHP官方提示:
只要将 server 指定为 "localhost" 或 "localhost:port",MySQL 客户端库会越过此值并尝试连接到本地套接字(Windows 中的名字管道)。如果想用 TCP/IP,应该用 "127.0.0.1" 代替 "localhost"。如果 MySQL 客户端库试图连接到一个错误的本地套接字,则应该在 PHP 配置中设定 的正确路径并把 server 留空。

也就是说明localhost是使用套接字(socket)连接,
AMH MySQL配置是:
socket = /tmp/mysql.sock
(mysql.sock位置于系统根/tmp目录)

# file /tmp/mysql.sock
/tmp/mysql.sock: socket

所以如果AMH虚拟主机使用安全模式,MySQL连接地址只允许使用127.0.0.1,因为防跨站不能越过主机目录读取系统根/tmp目录,实际读到的是虚拟主机根目录/tmp。

这也是AMH3.2或是以下版本虚拟主机安全模式只允许使用127.0.0.1的原因,需要使用localhost地址需要切换兼容模式。


3、解决方案
AMH4.0针对这一兼容问题做了改进,
使用ln硬链接 /tmp/mysql.sock 到每个虚拟主机根目录/tmp,解决防跨站不能读取系统根/tmp/mysql.sock目录的问题。
[ -w /tmp/mysql.sock ] && find /home/wwwroot/*/tmp -maxdepth 0 -exec ln -f /tmp/mysql.sock {} \;
每次MySQL 重启系统做一次硬链接即可。
因此解决了安全模式不能使用localhost地址问题,兼容了127.0.0.1、localhost。


4、需要改进
ln硬链接只允许同一分区内建立,不可跨分区建立(Inode位置不同)。
这意味着如果用户手动挂载/home目录为一独立分区,ln硬链接将会失败。
目前没用好的解决方法,用户可改进/etc/my.cnf配置把socket指定到/home目录,可以避免分区问题。
但这样需要增加php配置,建立虚拟主机/home目录等,相对比较麻烦。



5、默认MySQL连接地址总结
安全模式 -------------
1) 无分区挂载/home
localhost、127.0.0.1都支持。

2) 有分区挂载/home
127.0.0.1 支持。

兼容模式 -------------
localhost、127.0.0.1都支持。


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

http://amysql.com/bbs/post-667-1-1.htm
发表于 2013-8-6 18:27:36 | 显示全部楼层
AMH系乜嘢?   楼主科普下  
发表于 2013-8-6 18:59:54 | 显示全部楼层
妹纸  你邀请码掉没有
 楼主| 发表于 2013-8-6 22:42:55 | 显示全部楼层
SYN 发表于 2013-8-6 18:27
AMH系乜嘢?   楼主科普下

可以吃。
谢谢各位妹纸围观支持
发表于 2013-8-7 00:12:07 | 显示全部楼层
妹纸 PM个邀请码呗

点评

http://amysql.com/bbs/home.php?mod=invite&id=483&c=xidbqg  发表于 2013-8-7 14:19
发表于 2013-8-7 07:45:30 | 显示全部楼层
smyz 发表于 2013-8-6 22:42
可以吃。
谢谢各位妹纸围观支持

    食你
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-5 05:54 , Processed in 0.299703 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表