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

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

Есть у меня vds сервер с debian. На нём поднят nginx с php-fpm. Была написана панель управления на php (Использовать панели типа ispamanagerа я не хочу) с регистрацией юзера когда он вводит свои данные в форму полученные данные из формы отправляются в базу данных где есть таблица users и поле domain php берёт данные из формы и создаёт сайт с именем который ввёл пользователь. Но владелец у сайта www-data как сделать чтобы владельцем сайта был пользователь который его создал?
  • Вопрос задан
  • 750 просмотров
Подписаться 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 обойдется дороже чем купить лицензию.
Как вариант посмотрите опенсорсные продукты.
А чтобы написать, то что Вы хотите. Сперва надо научиться это делать
через консоль дебиана.
Потом соберете все в один скрипт с параметрами
И уже последним шагом из пыха соберете нужную строку для запуска этого скрипта.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 160 000 до 250 000 ₽
BGStaff Москва
До 300 000 ₽
Greenway Global Новосибирск
от 150 000 до 250 000 ₽