Какие системные файлы должны быть в тюрьме, чтобы php-fpm работал правильно в ubuntu?
Я использую php5-fpm в Ubuntu 12.04, и у меня есть отдельные пулы и местоположения chroot для каждого домена, размещенного на nginx. Тем не менее, я знаю, что некоторые системные файлы должны быть прямо в тюрьме, но какие мне нужны?
Я знаю, что разрешение DNS не работает в настоящее время, и я прочитал несколько статей, в которых говорится, что мне нужно скопировать некоторые файлы ядра системы в каталог, но они никогда не вдавались в подробности, в какие из них мне действительно нужно копировать там.
Я знаю, что есть что-то для DNS, часовой пояс (PHP, кажется, ошибка для любых функций, связанных с временем / датой).
И мне было просто интересно использовать chroot в целом. Стоит ли даже использовать его, или было бы более безопасно иметь отдельный раздел для каждого домена, или даже просто иметь отдельный vm для каждого домена (что стоило бы больше ресурсов)?
2 ответа
Я тоже искал ответ для этого. После исследования ответ не кажется таким простым.
Что-то совершенно очевидно, потому что оно используется почти для всего. Эти файлы здесь для разрешения имен, портов и часового пояса.
- / и т.д. / хосты
- /etc/nsswitch.conf
- /etc/resolv.conf
- / и т.д. / услуги
- / И т.д. / LocalTime
Но в зависимости от установленных расширений и способа компиляции PHP вам нужно гораздо больше вещей. Я не знаю, нужны ли они вам, но на всякий случай вы можете получить список библиотек, которые использует PHP, используя команду ldd и ваш PHP-бинарный файл в качестве аргумента:
ldd /usr/bin/php5
В зависимости от пути, по которому находятся ваши расширения, вы можете использовать ту же команду для получения библиотек, требующих:
ldd /usr/lib/php5/20100525/*
Теперь вам нужно просто следить за другими исполняемыми файлами, которые вы используете в своем файле PHP-config. В моем случае я нашел ссылку на sendmail.
У меня это не получилось полностью... У меня все еще есть проблемы с разрешением имен с помощью curl. Но так далеко, чтобы начать:)
Источники:
- http://www.cyberciti.biz/tips/howto-setup-lighttpd-php-mysql-chrooted-jail.html
- http://forum.nginx.org/read.php?3,229450,229450
РЕДАКТИРОВАТЬ: Вот сценарий, который я получил от кого-то в IRC. Я не пробовал, но он сказал, что это работает довольно хорошо... http://pastebin.com/index/HyE87bcF
Я создаю свои chroot для Debian/Ubuntu с помощью набора скриптов, которые используют deboostrap для создания chroot, поэтому все библиотеки есть, и мне не нужно выяснять, что устанавливать. Это может быть больше, чем вы хотите, но это может помочь вам начать. Я обычно занимаюсь разработкой в chroot, созданных моими скриптами, и у меня не было никаких проблем (пока). Удачи!