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