问题描述
我试图更好地理解PHP7中DSN解释的过程。我注意到,如果我在DSN中使用了“ host = localhost”,它会尝试查找unix套接字。在Ubuntu的默认设置中,套接字位于/var/run/mysqld/mysqld.sock中,这显然是非标准的,当您在'/ var / lib / mysql / mysql中寻找它时,会在mysql中收到File Not Found错误。 .sock'
我相应地修改了代码,但是在类似的ubuntu安装上通过apache2运行时,一位同事遇到了另一种行为。使用apache2进行访问时,使用host = localhost可以正常工作,但是使用cli运行完全相同的代码时,会产生“找不到文件”错误。
我知道每个都有单独的配置文件子目录,但是我不知道会导致此问题的任何内容。有谁知道ubuntu中的实际行为是什么,它将允许'localhost'在apache2配置中工作,而在ubuntu上的cli配置中工作,以便我可以更好地了解发生了什么?
(将同事的dsn切换为host = 127.0.0.1确实使它在两个版本上都可以使用,但是我只是想弄清楚为什么本地主机只能在apache2中使用)
SW
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)