Стопка OpenBSD Nginx/PHP/MariaDB/PHP-FPM

У меня есть минимальная установка OpenBSD 5.7 amd64 в VMware, где я установил соответствие версиям PHP и PHP-FPM плюс nginx и использование mariadb pkg_add. Я настраиваю все сервисы и заставляю nginx анализировать HTML через PHP-FPM, и все прекрасно, пока я не пытаюсь соединиться с MariaDB. Это не соединяется с MySQL/MariaDB. Я попробовал три других PHP CMSes с помощью корректных учетных данных, и каждый дает следующую ошибку:

Предупреждение: 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
#
1
задан 5 May 2015 в 19:31
2 ответа

Ваш / var / www / var / run / mysql указывает на / var / run / mysql . Судя по структуре каталогов, я полагаю, вы помещаете свой apache / php в корневой каталог / var / www . Вероятно, это значение по умолчанию для OpenBSD.

При chrooot в / var / www ваша ссылка фактически становится / var / run / mysql -> / var / run / mysql , что представляет собой практически бесконечный цикл.

Вам нужно либо предоставить сокет внутри этого chroot, используя параметр конфигурации socket , либо использовать TCP-соединения.

Изменить: Кстати, если вы не используете для работы с OpenBSD вам, вероятно, не следует использовать это в производственной среде. Вероятно, вы не добьетесь большей безопасности, чем с системой / дистрибутивом, которые вы хорошо знаете.

4
ответ дан 3 December 2019 в 18:39

У меня похожая проблема. При выполнении netstat -an |grep 3306, он возвращает

tcp6         0      0  *.3306                 *.*                    LISTEN

Установка localhost на "::1" в php скрипте типа "решает" проблему. Это кажется странным, но может быть подсказкой для вас.

-1
ответ дан 3 December 2019 в 18:39

Теги

Похожие вопросы