Какие системные файлы должны быть в тюрьме, чтобы 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. Но так далеко, чтобы начать:)

Источники:

РЕДАКТИРОВАТЬ: Вот сценарий, который я получил от кого-то в IRC. Я не пробовал, но он сказал, что это работает довольно хорошо... http://pastebin.com/index/HyE87bcF

Я создаю свои chroot для Debian/Ubuntu с помощью набора скриптов, которые используют deboostrap для создания chroot, поэтому все библиотеки есть, и мне не нужно выяснять, что устанавливать. Это может быть больше, чем вы хотите, но это может помочь вам начать. Я обычно занимаюсь разработкой в ​​chroot, созданных моими скриптами, и у меня не было никаких проблем (пока). Удачи!

https://github.com/vtonehundred/vroot

Другие вопросы по тегам