nginx + php を異なるユーザー ID で実行する

nginx + php を異なるユーザー ID で実行する

以前使用していた共有サーバー システムでは、ユーザー名は A でした。サイト内の各 PHP スクリプトは、私自身のユーザー名で実行されていました。

$puser = posix_getpwuid(posix_geteuid())['name']; // = $puser = "A";

現在、nginx を実行する独自の VPS を実行しており、ユーザー名/グループは nginx です。

しかし、私はユーザー名 B で友人のアカウントを作成し、その友人が作成した各 PHP スクリプトを nginx ではなくユーザー B で実行したいと考えています。基本的に、各 PHP スクリプトを、それを作成した同じユーザーの UID で実行したいと考えています。

nginx でそれは可能ですか?

答え1

裸の nginx では、ファイルの所有権のみに基づいてこれを行うことはできません。

PHP-FPM は、nginx で使用されるスクリプト実行エンジンです。

PHP-FPM には、異なるポートに設定できる PHP ワーカー プールがあります。各 PHP-FPM ワーカーには、そのプールのスクリプトを実行するために使用されるユーザーを設定できます。

次に、nginx 側で、どのリクエストにどの PHP-FPM バックエンドを使用するかのルールを設定します。通常の設定では、nginx 上の各仮想ホストは独自の PHP-FPM ワーカー プールを使用します。

裸の nginx では、ファイルの所有権をチェックしてその情報を使用してバックエンドの場所を選択することはできません。luaただし、この目的には nginx モジュールを使用できます。

関連情報