@Valeriu147

Почему не работает CHROOT с php-fpm?

Я должен ограничить мою директорию ftp на сайте с помощью chroot. Мой конфиг php-fpm.conf:

[mysite.com]
listen = /var/run/php7-fpm-chroot-filemanager.sock
chroot = /var/www/mysite.com/fileman
chdir = /
user = filemanuser
group = filemangroup
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3


Чась конфига в виртуалхосте, которая отвечает за директорию ftp:

location ~* /fileman/(.+\.php)$
    {

            root /var/www/mysite.com/;
            include /etc/nginx/fastcgi_params;
            if (!-f /var/www/mysite.com$fastcgi_script_name) {
                    return 405;
            }
            fastcgi_index index.php;
            fastcgi_pass unix:/var/run/php7-fpm-chroot-filemanager.sock
            fastcgi_param SCRIPT_FILENAME /var/www/mysite.com$fastcgi_script_name;
    }


После рестарта сервиса php-fpm, на странице, я вижу:

File not found.

В логах nginx:

2017/02/24 20:12:22 [error] 18390#18390: *108 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 192.168.110.25, server: www.mysite.com, request: "GET /fileman/index.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php7-fpm-chroot-filemanager.sock:", host: "www.mysite.com"


Сам факт, что без CHROOT все работает. Подскажите, что я делаю не так и где у меня есть ошибка ? Уже второй день бьюсь и пути меняю, пробовал разное.
  • Вопрос задан
  • 1103 просмотра
Пригласить эксперта
Ответы на вопрос 1
@miksir
IT
chroot - это смена корня ("/") файловой системы. PHP переключившись на новый рут ничего не знает об уровнях выше, для него корень теперь - /var/www/mysite.com/fileman. Т.е. когда вы говорите - выполни скрипт fastcgi_param SCRIPT_FILENAME /var/www/mysite.com$fastcgi_script_name; - он ищет от своего нового корня, а значит реально по файловой системе он ищет файл /var/www/mysite.com/fileman/var/www/mysite.com$fastcgi_script_name

Если вы не понимаете, зачем вам чрут - лучше не использовать. Там может возникнуть много нюансов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы