URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 1293
[ Назад ]

Исходное сообщение
"suexec+chroot+MySQL"

Отправлено MayVortex , 20-Апр-03 15:25 
Установил себе Apach с suexec и chroot, на апач поставил PHP, Perl и MySQL. Все либы соответственно так же зачхрутил и всё казалось бы заработало... но, как оказалось не у всех (сайтов много) всё заработало:
1) Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /home/shaman/card.dinfo.ru/include/db_mysql.inc.php on line 40
2) Все сайты открываются значительно медленнее...
Причём первая ошибка возникает не у всех, есть подозрение, что только у тех, кто в качестве сервера MySQL указывает localhost, а не 127.0.0.1.

Из-за чего это может быть? Похоже на траблы с ДНС, но все файлы, вроде на месте...

====
chroot /mnt ls -l /etc
total 24
-rw-r--r--    1 0        0             607 Apr 20 09:11 group
-rw-r--r--    1 0        0              73 Apr 20 10:05 hosts
lrwxrwxrwx    1 0        0              14 Apr 18 14:05 localtime -> /etc/localtime
-rw-r--r--    1 0        0              57 Apr 18 14:12 nsswitch.conf
-rw-r--r--    1 0        0            2377 Apr 20 08:53 passwd
-rw-r--r--    1 0        0              25 Apr 20 10:04 resolv.conf
-rw-r--r--    1 0        0            1857 Apr 20 09:09 shadow
====
resolf.conf
nameserver 34.35.35.137

hosts
127.0.0.1 localhost loopback
34.35.35.138 hosting.hosting.ru

nswithc.conf
passwd: files
shadow: files
group: files
hosts: fles dns


Содержание

Сообщения в этом обсуждении
"suexec+chroot+MySQL"
Отправлено uldus , 20-Апр-03 19:15 
>'/var/lib/mysql/mysql.sock' (2) in /home/shaman/card.dinfo.ru/include/db_mysql.inc.php on line 40
>тех, кто в качестве сервера MySQL указывает localhost, а не 127.0.0.1.

В вашем chroot окружении точно помещен /var/lib/mysql/mysql.sock ??? При коннекте к localhost используется НЕ сетевое соединение к 127.0.0.1, а моединение через локальный Unix-socket. Если нет /var/lib/mysql/mysql.sock, нет unix-сокета - нет и соединения по localhost. Решение: поместить mysql.sock в chroot или принудительно административно заставить всех поменять localhost на 127.0.0.1 (незабыв поменять информвцию в таблицах с параметрами доступа к mysql)


"suexec+chroot+MySQL"
Отправлено MayVortex , 20-Апр-03 22:04 
Точно - не зачхрутино... а не подскажете как это проделать? Попробовал сделать символическую ссылку:

/var/lib -> /mnt/var/lib (Apach запускается как chroot /mnt /apache/bin/apachectl start) - ничего не вышло?


"suexec+chroot+MySQL"
Отправлено uldus , 21-Апр-03 00:10 
>Точно - не зачхрутино... а не подскажете как это проделать? Попробовал сделать
>символическую ссылку:

Символические ссылки будут интерпретироваться относительно chroot, т.е. за пределы chroot через них  не попадешь.

Исправь в файле конфигурации mysql путь, чтобы сокет создавал в директории входящей в chroot. В mysql конфиге который лежит в chroot подкорректируй путь с учетом chroot'а. Не сумеешь - откажись от коннекта к localhost или chroot'а.