Запуск сайтов от разных пользователей в связке nginx + php-fpm

nginx_php_process_flowПо умолчанию все сайты будут запускаться от пользователя, указанного в настройках php-fpm. Чтобы запускать сайты от разных пользователей, необходимо создать отдельные конфигурационные файлы в директории /etc/php7/fpm/pool.d, убедившись при этом, что в файле /etc/php7/fpm/php-fpm.conf указана строчка:

include=/etc/php7/fpm/pool.d/*.conf

Теперь создаем файл конфигурации для нашего сайта (покажу на примере 891rpm.arthead.ru) /etc/php7/fpm/pool.d/891rpm.arthead.ru.conf:

[891rpm.arthead.ru]
listen = /run/php7-891rpm.sock
listen.mode = 0660
user = 891rpm_com    # user
group = 891rpm_com   # group
chdir = /var/www/891rpm.arthead.ru

php_admin_value[upload_tmp_dir] = /var/www/891rpm.arthead.ru/tmp
php_admin_value[soap.wsdl_cache_dir] = /var/www/891rpm.arthead.ru/tmp
php_admin_value[date.timezone] = Europe/Moscow
php_admin_value[upload_max_filesize] = 100M
php_admin_value[post_max_size] = 100M
php_admin_value[open_basedir] = "/var/www/891rpm.arthead.ru/"
php_admin_value[session.save_path] = /var/www/891rpm.arthead.ru/tmp
php_admin_value[disable_functions] = dl,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,parse_ini_file,show_source
php_admin_value[cgi.fix_pathinfo] = 0
php_admin_value[apc.cache_by_default] = 0

# В зависимости от нагрузки меняем параметры
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 4

В файле настроек /etc/nginx/sites-available/891rpm.arthead.ru.conf указываем сокет:

upstream 891rpm-sock {
    server unix:/var/run/php7-891rpm.sock;
}

server {
        listen 80;
        server_name 891rpm.arthead.ru www.891rpm.arthead.ru;
...
location ~ \.php$
        {
                include fastcgi.conf;
                fastcgi_intercept_errors on;
                fastcgi_pass 891rpm-sock;
        }
...
}

/etc/group

www-data:x:33:
891rpm_com:x:1001:www-data

 

Перезапускаем php-fpm и nginx:

sudo /etc/init.d/php7-fpm restart
sudo /etc/init.d/nginx restart

Теперь сайт будет запускаться от указанного пользователя.

One thought on “Запуск сайтов от разных пользователей в связке nginx + php-fpm

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *