Webserver:chrooted PHP在尝试访问mysql时出现mysql.sock错误

Modified on: Thu, 18 Jul 2019 02:00:02 +0800

嘿伙计们,我已经使用Nginx + PHP5-FPM配置了一个Ubuntu网络服务器。
我创建了一个chrooted环境(使用jailkit),我将开发人员扔进去,从那里开发他们的测试应用程序。

Chroot监狱:
/家庭/牢

Nginx和PHP5-FPM在chroot之外运行,但配置为在chrooted环境中运行。

到目前为止,Nginx和PHP5-FPM正在提供没有问题的文件,除了以下内容:
尝试连接到MySQL时,我们收到此错误:SQLSTATE [HY000] [2002]无法通过套接字连接到本地MySQL服务器'/var/run/mysqld/mysqld.sock'

现在,我认为这个问题是由于chroot环境之外的非chrooted php.ini引用了mysqld.sock(它实际上使用的是MySQL默认设置)。

我的问题是,如何配置PHP以通过环回或类似方式访问MySQL? (发现这是谷歌搜索结果中的建议,但没有任何说明)

或者,如果我错过了其他一些明显的设置,请告诉我。如果有一个创建硬链接的选项(即使重新启动mysql也可以保持可用),那也很方便。

作者:Jon L.

最佳答案

我解决了自己的问题。
Jailkit无法创建对mysqld.sock的硬链接引用,因为Ubuntu将/ var / run存储在tmpfs中,系统看起来是一个单独的分区(它破坏了硬链接功能)。
我现在正在jail中安装/ var / run / mysqld,就像这样:
mount --bind /var/run/mysqld /home/jail/var/run/mysqld/

作者:Jon L.

相关问答

添加新评论