@wedytd

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

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
24 апр. 2024, в 10:32
400000 руб./за проект
24 апр. 2024, в 10:12
10000 руб./за проект