Я всегда привык запускать PHP под Nginx в качестве www-data
user, для всего: службы php, 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
Мое замешательство возникает из-за этого Magento 2 DevDocs:
Мы рекомендуем двух пользователей, если вы используете свой собственный сервер Magento: одного для передачи файлов и запуска утилит командной строки, а также отдельного пользователя для программного обеспечения веб-сервера. По возможности это предпочтительнее, потому что это более безопасно.
Вместо этого у вас есть отдельные пользователи:
• Пользователь веб-сервера, на котором работает администратор Magento (включая мастер установки) и витрину.
• Пользователь командной строки, который представляет собой локальную учетную запись пользователя, которую вы можете использовать для входа на сервер. Этот пользователь запускает задания cron Magento и утилиты командной строки.
Таким образом, если 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
Я бы рекомендовал бегать nginx
как системный пользователь, поэтому www-data
в вашем случае и php-fpm
как непривилегированный пользователь, который может быть таким же, как пользователь оболочки. Вам не обязательно иметь непривилегированного пользователя в www-data
группа как nginx
передает запросы php-fpm
. для выполнения. Настройка, предложенная в документации Magento, предполагает apache
и mod_php
, что потребует настройки разрешений, как описано выше.