2

所以我在 CentOS 上设置了一个 MySQL chroot。MySQL 被有效地限制在 /opt/chroot/mysql/ 中,我已经修改了 /etc/init.d/mysqld 文件,以便一切运行正常。我可以(以 root 身份)通过发出以下命令连接到套接字:

mysql -S /opt/chroot/mysql/var/lib/mysql/mysql.sock

目前,为简单起见,MySQL root 用户没有密码。

但是,由于某种原因,PHP(在 Apache 中运行)无法连接到同一个套接字。我尝试更新 php.ini 中的 MySQL 默认套接字变量,以及在建立连接时引用完整的套接字路径,但我总是得到同样的错误:

无法通过套接字'/opt/chroot/mysql/var/lib/mysql/mysql.sock'连接到本地MySQL服务器(13)

有任何想法吗?

更新:自己找到了解决方案。SELinux 已启用并阻止 Apache 的所有连接。

4

1 回答 1

1

Apache 是否有权遍历/读取该路径中的所有目录?仅仅因为您从命令行以 root 身份执行某些操作,并不意味着您会傻傻地蹲在 Apache 上。那是完全不同的用户 ID 和不同的环境。

于 2011-10-14T15:43:53.593 回答