序章

PHP-FPMの利点の1つは、独自のユーザーの下でさまざまなWebサイトやアプリケーションを実行できることです。 これらはプールと呼ばれ、セットアップが非常に簡単です。 これは、セットアップしたさまざまなサーバーやさまざまなユーザー間でセキュリティを確立するのに役立つ便利な方法であり、セキュリティホールを防ぐことができます。 これにより、ユーザーディレクトリとファイルに所有権を与えることができ、所有していないファイルに別のPHPプールが書き込もうとしているため、サーバーエラーを防ぐことができます。

これはかなり簡単で簡単なセットアップであり、Nginxサーバーブロック(仮想ホスト)で複数のフレームワークのインストールを実行することを計画している場合に特に役立ちます。

免責事項: ただし、これにより、メモリを消費するアイドル状態のPHPスレッドを開始できます。 したがって、サーバーのPHPプロセスを監視してバランスを取る必要があります。 設定するプールが多すぎると、データスワッピングの開始時に興味深いことが発生する可能性があります。

設定

このチュートリアルの手順では、ユーザーが仮想プライベートサーバーに対するroot権限を持っている必要があります。 初期サーバーセットアップチュートリアルの手順3と4を参照してください。

このチュートリアルに必要なインストールは、NginxとPHP-FPMです。 適切に構成されたLEMPスタック(Linux、Nginx、MySQL、PHP-FPM)をインストールすることをお勧めします。 これは、必要なすべての要件をカバーする必要があります。

ステップ1:新しいPHP-FPMメモリプールを作成する

Nginxの場合、新しいプールを作成するには、www-dataに属するデフォルトのプールをコピーする必要があります。 PHP-FPMとNginxを最初にインストールしたときに、このプールを構成したことを覚えているでしょう。

警告:デフォルトのプールは削除しないでください。 www-dataに独自のプールを実行させ、必要に応じてさまざまなユーザーにプールを追加して、システム特権をユーザー特権から分離することは、標準的な方法と見なされています。

これを行うには、デフォルトのwww.confをコピーし、そのコピーの名前を関連付けたいユーザーに変更します( username をユーザーの名前に置き換えます)。

sudo cp /etc/php5/fpm/pool.d/www.conf /etc/php5/fpm/pool.d/username.conf

次に、nanoで開きます。

sudo nano /etc/php5/fpm/pool.d/username.conf

次に、ファイルを処理し、オプションを次のように変更します。

; Start a new pool named 'www'.
; the variable $pool can we used in any directive and will be replaced by the
; pool name ('www' here)
[username]
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = username
listen = /var/run/php5-fpm.username.sock

注:このファイルで調整できる設定は他にもありますが、簡潔にするために、基本プールをすばやくセットアップするために必要な設定を調整するだけです。

次に、ファイルを保存して閉じ、PHP-FPMを再起動します。

sudo service php5-fpm restart

ステップ2:サーバーブロックを調整する

サーバーブロック(仮想ホスト)のセットアップに時間を費やした場合、VPSは、新しく作成されたプールへのアクセスを許可するために正しいソケットに調整する必要があります。

サーバー構成ファイルを開きます。

sudo nano /etc/nginx/sites-available/default

または、サーバーブロック(仮想ホスト)を設定する場合は、次のようにします。

sudo nano /etc/nginx/sites-available/example.com

次に、次の行を編集して、usernameを置き換えます。

fastcgi_pass unix:/var/run/php5-fpm.username.sock;

最後にNginxを再起動します。

sudo service nginx restart

すべてが正しく再起動した場合は、別のPHP-FPMプールが正常にセットアップされています。