Как правило, для размещения нескольких сайтов на одном хосте заводят несколько пользователей (каждый пользователь под свой сайт). В этой статье рассказывается как это сделать. Все настройки производятся в 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 работает от определенного пользователя.