如何解决php7.x + ubuntu + mysql DSN localhost vs 127.0.0.1和unix_socket
我试图更好地理解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 举报,一经查实,本站将立刻删除。