PHP-FPMとは
FPM(FastCGI Process Manager)はPHPのFastCGI実装のひとつ。
主に高負荷のサイトで有用な追加機能を用意している。
CGIとは
Common Gateway Interface(CGI)は、Webサーバ上でユーザプログラムを動作させるための仕組み。
Webサーバプログラムの機能の主体は、あらかじめ用意された情報を利用者(クライアント)の要求に応じて送り返すことである。そのためサーバプログラム単体では情報をその場で動的に生成してクライアントに送信するような仕組みを作ることはできなかった。
そこでサーバプログラムから他のプログラムを呼び出し、その処理結果をクライアントに送信する方法が考案され、それを実現するためのサーバプログラムと外部プログラムとの連携法の取り決めがCGIである。
Webサーバ上でPHP(動的コンテンツを生成する言語)を動作させるための仕組み。
FastCGIとは
Webサーバ上でユーザプログラムを動作させるためのインターフェース仕様の一つ。
CGIは、ユーザから要求がある度に、プロセスの生成と破棄を行う。大量の要求があればその分だけプロセスの生成と破棄が実施され、この事がパフォーマンスの悪化に繋がっていく。
FastCGIは、初回リクエスト時に起動したプロセスをメモリ上へ保持を行い、次回リクエストに対してはそのメモリに保持したプロセスの実行を行うことで、CGI問題を解決し、プログラム動作速度の向上及びサーバ負荷の低下が可能である。
PHPには、モジュール版とCGI版の二種類がある
モジュール版はCGI版の逆で、WebサーバのプロセスのなかでPHPを実行する方法。現在多くのレンタルサーバはWebサーバにApacheを採用しているためモジュール版というと通常はApacheのモジュール版を意味します。
CGI版は実行ファイル形式とも呼ばれ、Webサーバとは別のプロセスで実行される。CGIを動かす各ユーザーは、Webサーバ本体を動かすユーザとは異なる。そのため、誤って他ユーザに干渉してしまうといった危険がない。しかし、Webサーバとは別個のプロセスとして動かすぶん、実行する度にメモリのロードが必要となり、動作速度がモジュール版に比べて遅くなる。