我在VMware中安装了一个最小的OpenBSD 5.7 amd64安装,我安装了PHP和PHP-FPM的匹配版本,再加上nginx和使用pkg_add mariadb。 我configuration了所有的服务,并得到nginx通过PHP-FPMparsingHTML,一切都很好,直到我尝试连接到MariaDB。 它不连接到MySQL / MariaDB。 我已经尝试了三种不同的PHP CMS使用正确的凭据,每个给出以下错误:
警告:mysql_connect():无法通过套接字连接到本地MySQL服务器警告:mysql_connect():无法通过套接字连接到本地MySQL服务器/var/run/mysql/mysql.sock (62 "Too many levels of symbolic links") in /htdocs/index.php on line 5
这是在做了
mkdir -p /var/www/var/run/ ln -s /var/run/mysql /var/www/var/run/mysql
这个世界上的问题是什么? 我已经尝试了四个不同的教程,我只是简单地不能让PHP和MySQL相互工作。 即使我确定MySQL正在运行,我可以使用mysql -p -u ...来连接服务器。
请帮忙。
编辑:
# ls -al /var/run/mysql /var/www/var/run/mysql lrwxr-xr-x 1 root daemon 14 May 5 11:07 /var/www/var/run/mysql -> /var/run/mysql /var/run/mysql: total 8 drwx--x--x 2 _mysql _mysql 512 May 5 11:01 . drwxr-xr-x 4 root wheel 512 May 5 11:06 .. srwxrwxrwx 1 _mysql _mysql 0 May 5 11:01 mysql.sock #
你的/var/www/var/run/mysql指向/var/run/mysql 。 通过我认为的目录结构,你可以将你的apache / php插入到/var/www 。 这可能是OpenBSD的默认设置。
当chrooted进入/var/www你的链接实际上变成了/var/run/mysql -> /var/run/mysql ,这是非常无限的循环。
您需要在该chroot中提供套接字,使用socketconfiguration选项或使用TCP连接。
编辑:顺便说一句,如果你不习惯使用OpenBSD,你可能不应该用它来生产。 你可能不会比你熟悉的系统/发行版更安全。
我有一个类似的问题。 在执行netstat -an |grep 3306 ,它会返回
tcp6 0 0 *.3306 *.* LISTEN
在php脚本中将localhost设置为“:: 1”可以解决问题。 看起来很奇怪,但可能是对你的暗示。