Задать вопрос
@wedytd

Как настроить nginx под разных пользователей?

Есть у меня vds сервер с debian. На нём поднят nginx с php-fpm. Была написана панель управления на php (Использовать панели типа ispamanagerа я не хочу) с регистрацией юзера когда он вводит свои данные в форму полученные данные из формы отправляются в базу данных где есть таблица users и поле domain php берёт данные из формы и создаёт сайт с именем который ввёл пользователь. Но владелец у сайта www-data как сделать чтобы владельцем сайта был пользователь который его создал?
  • Вопрос задан
  • 553 просмотра
Подписаться 1 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 3
alekciy
@alekciy
Вёбных дел мастер
Для этого нужно запустить отдельный pool задав директиву user см. https://www.php.net/manual/ru/install.fpm.configur... . Тогда php будет выполняться от заданного юзера, а не www-data.

Я на своем сервере делаю так. У каждого отдельного юзера есть свой php pool который работает от своего юзера + слушает сокет на 127* интерфейсе. Пример конфига /etc/php/7.0/fpm/pool.d/aliya.conf (юзер это aliya):
[aliya]
listen                 = 127.0.0.1:9041
listen.backlog         = 20
listen.allowed_clients = 127.0.0.1
catch_workers_output   = yes

user  = aliya
group = aliya

pm                   = dynamic
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.start_servers     = 3
pm.max_children      = 5
pm.max_requests      = 50

env[HOSTNAME] = $HOSTNAME
env[PATH]     = /usr/local/bin:/usr/bin:/bin
env[TMP]      = /tmp
env[TMPDIR]   = /tmp
env[TEMP]     = /tmp

php_admin_value[display_errors]  = stderr
php_flag[display_startup_errors] = on
php_admin_flag[log_errors]       = on

php_admin_flag[mail.add_x_header] = on
php_admin_value[sendmail_path]    = /usr/sbin/mini_sendmail -t -f***@***a.ru
php_admin_value[mail.log]         = /var/www/aliya/data/log/mail.log

php_admin_value[memory_limit]      = 256M
php_admin_value[session.save_path] = /tmp
Ответ написан
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Сделать шелл скрипт, который создаёт пользователя, папку, конфиг раздаёт права и всё что полагается. Не забываем добавлять www-data в группу пользователя.
Добавить этот шелл скрипт в /etc/sudoers c NOPASSWD и дергать через sudo из РНР.
Ответ написан
402d
@402d
начинал с бейсика на УКНЦ в 1988
написать свой аналог ispmanager обойдется дороже чем купить лицензию.
Как вариант посмотрите опенсорсные продукты.
А чтобы написать, то что Вы хотите. Сперва надо научиться это делать
через консоль дебиана.
Потом соберете все в один скрипт с параметрами
И уже последним шагом из пыха соберете нужную строку для запуска этого скрипта.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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