@xbox

Как подключить к сокету Mysql несколько сайтов каждый из которых в своем chroot окружении?

Настроил несколько пулов php5-fpm.
Все пулы работают от отдельных пользователей.
На каждый пул настроен отдельный chroot.
Например:
пул 1 — chroot /var/www/site1
пул 2 — chroot /var/www/site2

При попытке любого сайта подключиться к Mysql выдается ошибка.
Can't connect to local MySQL server through socket '/var/run/mysqld mysqld.sock' (2) [2002]

Ошибка связана с тем, что процесс php не может получить доступ к сокету, который находится за пределами chroot окружения. Причем сообщение такое было даже при том, что в настройках сайта стоял метод подключения через порт, а не через сокет.
$dbhost = 'localhost';
$dbport = '3306';

Долго пришлось разбираться в чем дело. Оказалось, что при указании в настройках "localhost" php в любом случае подключается через сокет.
После указания в настройках сайта вместо "localhost"

$dbhost = '127.0.0.1';
php стал подключаться к mysql через порт.

Таким образом промежуточное решение подключение к Mysql через порт я настроил. Но поскольку подключение к mysql через сокеты быстрее, чем через сеть (через порт), хочу сделать всё красиво и дать возможность всем сайтам подключаться через сокет. Но вот как это сделать я не знаю.

Можно как-нибудь много сайтов в разных chroot подружить с mysql с использованием сокетов?
  • Вопрос задан
  • 3479 просмотров
Решения вопроса 1
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
можно с mount --bind примонтировать папочку с сокетом внутрь чрута.
Хотя проще ходить по tcp просто.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
узким местом будет БД
разницы не почувствуете хоть через sock хоть tcp
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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