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

Настройка прав для nginx/php-fpm на ubuntu server?

К примеру имеется сервер с ubuntu server на борту (14 или 16 версии) и имеется некоторый пользователь, к примеру user. В домашней директории пользователя лежит директория с проектом на php, все работает под nginx+php-fpm. Как правильно выставить права на этот проект?

К примеру если оставить как есть (user:user), то nginx/php-fpm запущенный от www-data:www-data будет создавать файлы и папки как www-data:www-data что может создавать проблемы в будущем. Некоторые советуют добавлять пользователя в группу www-data и вешать на проект user:www-data, но проблема выше остается.

В общем как делать правильно?
  • Вопрос задан
  • 5639 просмотров
Подписаться 2 Средний 2 комментария
Пригласить эксперта
Ответы на вопрос 2
Если у Вас проект находится в домашней директории пользователя, то почему бы не создать отдельный pool php-fpm, работающий от нужного Вам пользователя, на директории права 755, на файлы - 644.
Затем в /etc/php/7.0/fpm/pool.d создаете новый файл с таким содержимым:
[user]
user = user
group = user
listen = /run/php/php7.0-user.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /

В конфиге Nginx:
location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.0-user.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

Тогда PHP будет работать от имени заданного в директиве user пула php-fpm пользователя
Ответ написан
Комментировать
Комментировать
Ваш ответ на вопрос

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

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