Re: Проблема с chroot в связке Nginx + PHP-FPM
Vadim A. Misbakh-Soloviov
mva at mva.name
Sun Jun 2 03:35:00 UTC 2013
1) Не могли бы Вы включить более подробный логгинг? :) Да и попробовтаь
посмотреть в файле. (который error_log в nginx'е).
2) Я бы всё-таки посоветовал не слушать то, что написано в конфигах PHP
и не использовать их chroot, т.к. уже давно существует мнение, что
PHP'шный chroot это то, как безопасность НЕ НУЖНО организовывать.
А ещё, так, к слову, PHP'шный чрут требует чтобы временные директории,
директории для хранения сессий, директории с библиотеками и т.п. были
ВНУТРИ чрута. Что 1) тоже влияет на безопасность в худшую сторону, 2)
может являться причиной Ваших проблем.
Для справки, как (схематично, без реальных юзернеймов и портов) это
сделано у меня:
hosting ~mva % cat /etc/nginx/vhosts.d/s_username/site.ru
server {
include backends.d/configs/listen;
server_name site.ru www.site.ru;
root /srv/web/s_username/sites/site.ru/www;
index index.html index.htm index.php;
access_log
/srv/web/s_username/logs/site.ru/www/access.nginx.log;
error_log
/srv/web/s_username/logs/site.ru/www/error.nginx.log;
charset utf-8;
source_charset utf-8;
include security.d/bots;
include rewrites.d/errors;
include rewrites.d/static;
include fpm.d/s_username.conf;
}
hosting ~mva % cat /etc/nginx/fpm.d/s_username.conf
location ~ \.php$ {
fastcgi_pass 127.0.0.1:xxxxx;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
hosting ~mva % grep include= /etc/php/fpm-php5.3/php-fpm.conf
include=/etc/php/pools.d/*.conf
hosting ~mva % grep include= /etc/php/fpm-php5.4/php-fpm.conf
include=/etc/php/pools.d/*.conf
hosting ~mva % grep include= /etc/php/fpm-php5.5/php-fpm.conf
include=/etc/php/pools.d/*.conf
hosting ~mva % cat /etc/php/pools.d/s_username.conf
[s_username]
listen = 127.0.0.1:xxxxx
listen.allowed_clients = 127.0.0.1
user = s_username
group = s_username
pm = dynamic
pm.max_children = 7
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 3
php_admin_value[open_basedir] =
/srv/web/s_username/sites/:/tmp/:/usr/share/php
php_admin_value[disable_functions] =
eval,base64_decode,gzinflate,dl,exec,passthru,shell_exec,system,proc_open,popen,curl_multi_exec,parse_ini_file,show_source
Т.е. хосты поделены по юзерам и каждый юзер - отдельный системный юзер,
который использует свой инстанс php-fpm. При этом юзер может писать
только в /tmp и к себе в хомяк. Читать может - согласна проставленным в
системе правам. Например, /etc/shadow — не может:
s_username at hosting mva % cat /etc/shadow
cat: /etc/shadow: Отказано в доступе
s_username at hosting mva % ll -o /etc/shadow
-rw-r----- 1 root 2,2K июня 2 07:38 /etc/shadow
01.06.2013 20:59, Sferg пишет:
> Здравствуйте, господа.
>
> Недавно решил поднять веб-серверок для экспериментов. Остановился на связке
> Nginx 1.4.1 + PHP-FPM 5.4.4 + MySQL 5.5.31.
>
> Директория расположения сайтов у меня /home/kursk.dyndns.org/www,
> соответственно параметр chroot в /etc/php5/fpm/pool.d/www.conf у меня
> выглядит так:
>
> chroot = /home/kursk.dyndns.org/www
>
> а в /etc/nginx/sites-enabled/kursk.dyndns.org для работы с chroot прописана
> строчка:
>
> fastcgi_param SCRIPT_FILENAME /$fastcgi_script_name;
>
> Если разместить в /home/kursk.dyndns.org/www/ файл index.php со строчкой
>
> phpinfo();
>
> то всё прекрасно открывается. Но если залить тот же phpBB3, то всё время
> наблюдается белая страница (в php.ini прописан параметр display_errors=1).
> Если chroot убрать, то всё открывается нормально.
>
> В чём может быть проблема? Уже несколько дней бьюсь(((
>
> С уважением, Геннадий.
>
> Posted at Nginx Forum: http://forum.nginx.org/read.php?21,239746,239746#msg-239746
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 901 bytes
Desc: OpenPGP digital signature
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130602/dac974ff/attachment.bin>
Подробная информация о списке рассылки nginx-ru