web-dev-qa-db-ja.com

mod_php vs cgi vs fast-cgi

PhpをApacheモジュールとしてロードすることの正確な意味/目的を理解しようとしています。

PhpがApacheモジュールとしてインストールされている場合、正確にはどうなりますか?たとえば、phpリクエストが来るたびに、またはphpモジュールが単独でロードされるたびに、php-iniファイルの読み取りは発生しますか?

52
Karthick

php.iniは、PHPモジュールがmod_php、FastCGI、FPMの両方でロードされるときに読み込まれます。通常のCGIモードでは、事前にフォークされたプロセスがないため、実行時に設定ファイルを読み込む必要があります。

PHPをWebサーバー内のモジュールとして実行することの唯一の本当の利点は、構成が簡単になる可能性があることです。FastCGIまたはFPMモードで実行するとパフォーマンスが大幅に向上し、スレッド化またはイベント化された(フォークではなく)Apacheを使用するか、Apacheを完全に破棄できる場合。

25
Emil Vikström

このリンクが役立つ場合があります: http://2bits.com/articles/Apache-fcgid-acceptable-performance-and-better-resource-utilization.html

結論

純粋な速度があなたが求めているものであるなら、mod_phpのままにしてください。

ただし、リソースの使用率と効率を向上させるには、fcgidへの移行を検討してください。

14
stormwild

apacheモジュールの場合、モジュールがロードされるとphp.iniが読み込まれます。 PHP CGIは、他のシェルスクリプトが行うように、PHPインタープリター実行可能ファイルを使用します。各呼び出しに関係する状態がないため、CGIの場合は構成ファイルを毎回読み取る必要があります。

2
Anand