Правильный веб-пользователь для PHP-FPM под Nginx

Я всегда привык запускать PHP под Nginx как www-data user, для всего: php service, cron, CLI и т. д. Недавно, хотя, прочитав сначала эту статью, а затем эту статью, я хотел бы знать, насколько необходимо запускать эти сервисы, используя другого пользователя? Это для одного приложения Magento 2 на сервере.

Достаточно ли создать нового пользователя:

adduser magento2user
passwd magento2user

usermod -a -G www-data magento2user

Тогда в php /usr/local/etc/php-fpm.d/www.conf:

[www]  
user = magento2user
group = magento2user
...
listen.owner = www-data
listen.group = www-data

И вот наконец:

chown -R magento2user:www-data /var/www/html

Моя путаница проистекает из DevDocs Magento 2:

Мы рекомендуем двух пользователей, если вы запускаете свой собственный сервер Magento: один для передачи файлов и запуска утилит командной строки, а другой пользователь для программного обеспечения веб-сервера. Когда это возможно, это предпочтительнее, потому что это более безопасно.

Вместо этого у вас есть отдельные пользователи:

• Пользователь веб-сервера, который запускает Magento Admin (включая Мастер настройки) и витрину магазина.

• Пользователь командной строки, который является локальной учетной записью пользователя, которую вы можете использовать для входа на сервер. Этот пользователь запускает задания Magento cron и утилиты командной строки.

Таким образом, должен ли PHP-FPM работать как www-data, но файлы принадлежат magento2user кто принадлежит к www-data группа?


РЕДАКТИРОВАТЬ после ответа Саймона Гринвуда ниже

Если я бегу ps aux | grep nginx | grep -v grep Я получаю следующий вывод:

1 www-data   0:00 nginx: master process nginx -g daemon off;
7 www-data   0:00 nginx: worker process

... так что я не думаю, что мне нужна запись в 'etx/nginx/nginx.conf это читает user www-data

1 ответ

Решение

Я бы порекомендовал бегать nginx как пользователь системы, так www-data в твоем случае и php-fpm как непривилегированный пользователь, который может быть таким же, как пользователь оболочки. Вы не должны иметь своего непривилегированного пользователя в www-data группа как nginx передает запросы php-fpm, для выполнения. Настройка, предложенная в документации Magento, предполагает apache а также mod_php, что потребует установки разрешений, как описано выше.

Другие вопросы по тегам