Настройка php-fpm для работы от разных пользователей

Как правило, для размещения нескольких сайтов на одном хосте заводят несколько пользователей (каждый пользователь под свой сайт). В этой статье рассказывается как это сделать. Все настройки производятся в Ubuntu, но они также подходят для всех Debian-based дистрибутивов. В примере показан пример на nginx, но подойдет и любой другой веб-сервер.

Создаем пользователя:

 # useradd -s /bin/bash -d /home/myuser/ -m myuser 

Добавляем пользователя в группу www-data:

# usermod -a -G myuser www-data

Создаем pool в php-fpm для сайта:

# cd /etc/php/7.4/fpm/pool.d
# cp www.conf mysite.conf
# nano mysite.conf

В mysite.conf настраиваем для работы от пользователя:

[mysite]

# ...

user = myuser
group = myuser

listen.owner = myuser
listen.group = myuser

# Указываем socket где будет слушать php-fpm
listen = /run/php/php7.4-fpm-mysite.sock

# ...

В домашней директории пользователя создаем папку сайта:

$ mkdir ~/www

Настраиваем сам сайт на nginx:

server {

  # ...

  root /home/myuser/www;

  # ...

  location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    # Указываем php-fpm сокет
    fastcgi_pass unix:/run/php/php7.4-fpm-mysite.sock;
  }

  # ...
}

Перезагружаем php-fpm и nginx:

# service php7.4-fpm restart
# service nginx restart

Проверяем что php-fpm работает от нашего пользователя:

$ ps -aux | grep php-fpm

В статье мы намеренно опустили инструкцию как произвести настройку сайта в nginx, надеясь что вы знаете как это происходит.

Поздравляем, теперь php-fpm работает от определенного пользователя.

Запись опубликована в рубрике Web с метками , , , . Добавьте в закладки постоянную ссылку.

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