Я пытаюсь настроить сайт внутри 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 и убедиться, что он включает все необходимые библиотеки, устройства и двоичные файлы.
В противном случае основные вещи, такие как разрешение DNS, не будут работать, и вы получите случайные ошибки, зависания или сбои приложения. Похоже, вы ошибаетесь в простоте open_basedir
с chroot.
Для начала, этот скрипт после настройки должен дать вам основу для chroot.
http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jail/make_chroot_jail.sh
Но на самом деле, если у вас нет большого опыта работы с chroot ...
Я предполагаю, что безопасность - ваша цель, но вы, скорее всего, получите прямо противоположное.
Вчера вечером получил помощь от IRC phpfreaks. На стороне Apache возникла проблема, когда мне нужно было отправить «/ www» в PHP-FPM.