Какие системные файлы должны находиться в закрытой среде для правильной работы php-fpm на ubuntu?

Я использую php5-fpm на ubuntu 12.04 и имею отдельные пулы и местоположения chroot для каждого домена, размещенного в nginx. Однако я знаю, что некоторые системные файлы должны находиться непосредственно в тюрьме, но какие из них мне нужны?

Я знаю, что разрешение dns не работает в настоящее время, и я прочитал несколько статей, в которых говорится, что мне нужно скопировать некоторые из основных файлов системы в каталог, но они никогда не вникают в детали, из которых мне действительно нужно скопировать там.

Я знаю, что есть что-то для dns, timezone (php кажется ошибкой для любых функций, связанных с временем и датой).

И я просто задавался вопросом об использовании chroot в целом. Стоит ли даже использовать его или было бы безопаснее иметь отдельный раздел для каждого домена или даже иметь отдельный vm для каждого домена (что будет стоить больше ресурсов)?

Я тоже искал ответ для этого. После исследования ответ кажется не таким простым.

Что-то совершенно очевидно, потому что оно используется почти для всего. Эти файлы здесь предназначены для разрешения имен, портов и часового пояса.

  • / и т.д. / хосты
  • /etc/nsswitch.conf
  • /etc/resolv.conf
  • / и т.д. / услуги
  • / И т.д. / LocalTime

Но в зависимости от установленных вами расширений и того, как PHP скомпилирован, вам нужно гораздо больше вещей. Я не знаю, нужны ли они вам, но на всякий случай вам это нужно, вы можете получить список библиотек, которые использует PHP, используя команду ldd и ваш PHP-двоичный аргумент:

ldd /usr/bin/php5 

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

 ldd /usr/lib/php5/20100525/* 

Теперь вам просто нужно следить за другими исполняемыми файлами, которые вы используете в вашем файле конфигурации PHP. В моем случае я нашел ссылку на sendmail .

У меня не получилось полностью работать для меня … У меня все еще есть некоторые проблемы, разрешающие имена с помощью curl. Но как раз для того, чтобы начать!

Источники:

EDIT: Вот сценарий, который я получил от кого-то в IRC. Я не пробовал, но он сказал, что это работает неплохо … http://pastebin.com/index/HyE87bcF

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

https://github.com/vtonehundred/vroot