web-dev-qa-db-ja.com

NginxでのPHP-FPMの正しいWebユーザー

私は常にPHPを[www-data]ユーザーとしてNginxの下で実行することに慣れています。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サーバーを実行する場合は、2人のユーザーをお勧めします。1人はファイルを転送してコマンドラインユーティリティを実行し、もう1人はWebサーバーソフトウェアを使用します。可能であれば、これはより安全であるため、望ましい方法です。

代わりに、別のユーザーがいます。

•Magento Admin(セットアップウィザードを含む)およびストアフロントを実行するWebサーバーユーザー。

•コマンドラインユーザー。サーバーへのログインに使用できるローカルユーザーアカウントです。このユーザーはMagento cronジョブとコマンドラインユーティリティを実行します。

これにより、PHP-FPMはwww-dataとして実行する必要がありますが、ファイルはmagento2userグループに属するwww-dataが所有しますか?


以下のSimon Greenwoodの回答の後に編集してください

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のエントリは必要ないと思います

2
maGz

システムユーザーとしてnginxを実行することをお勧めします。したがって、あなたの場合はwww-dataを実行し、非特権ユーザーとしてphp-fpmを実行します。これは、シェルユーザーと同じにすることができます。 nginxwww-dataにリクエストを渡すため、非特権ユーザーをphp-fpmグループに含める必要はありません。実行のため。 Magentoのドキュメントで提案されている設定はApachemod_phpを想定しており、上記のように権限の設定が必要になります。

2
Simon Greenwood