Назад | Перейти на главную страницу

PHP-FPM chroot с chdir

Я пытаюсь настроить сайт внутри chroot PHP-FPM. Мои пути следующие:

chroot = /var/www/
chdir = www/

Chroot отлично работает без chdir. Но когда я добавляю chdir, я получаю эту ошибку при запуске php-fpm:

ERROR: [pool www] the chdir path '/usr/www/' within the chroot path '/var/www/' ('/var/www///usr/www/') does not exist or is not a directory

Кто-нибудь знает, почему он добавил /usr/ на чдырский путь? Есть ли способ удалить его с этого пути?

Кроме того, если я изменю путь chdir на /www/, Мне нужно перейти к http://localhost/www/filename.php чтобы увидеть мой файл. Разве смысл chdir не в том, чтобы делать это ненужным?

Вы действительно подготовили правильный chroot для PHP?

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

В противном случае основные вещи, такие как разрешение DNS, не будут работать, и вы получите случайные ошибки, зависания или сбои приложения. Похоже, вы ошибаетесь в простоте open_basedir с chroot.

Для начала, этот скрипт после настройки должен дать вам основу для chroot.

http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jail/make_chroot_jail.sh

Но на самом деле, если у вас нет большого опыта работы с chroot ...

  1. При неправильной настройке он может быть не более безопасным, чем обычно.
  2. Это может быть гораздо более небезопасно, чем обычно, и может допускать эскалацию корня при неправильной настройке.
  3. У вас могут возникнуть случайные проблемы, которые со временем будут мешать вашему приложению из-за плохо созданного chroot.

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

Вчера вечером получил помощь от IRC phpfreaks. На стороне Apache возникла проблема, когда мне нужно было отправить «/ www» в PHP-FPM.