phpのcgiとfastcgiはどう違いますか
PHPのCGI(Common Gateway Interface)とFastCGI(Fast Common Gateway Interface)は、PHPスクリプトを処理するための異なる2つの方法です。
- CGI:CGI というのは汎用ゲートウェイインターフェースのことで、プロセス外で処理を行う方式です。 Web サーバーからリクエストがあると、そのリクエストを処理する CGI プロセスを起動し、そのリクエストを CGI プロセスに渡します。 CGI プロセスは PHP スクリプトを実行し、その結果を Web サーバーへ返します。 Web サーバーは結果をクライアントへ送ります。 リクエストが行われるたびに新しい CGI プロセスを起動する必要があるため、多少のパフォーマンスの低下が発生します。
- FastCGIは、CGIプロトコルの改良版です。CGIとの主な違いは、FastCGIプロセスを長時間実行させて複数のリクエストを処理できることです。Webサーバーがリクエストを受信すると、毎回新しいプロセスを起動するのではなく、すでに起動しているFastCGIプロセスにリクエストを渡します。これにより、プロセスの起動と終了にかかるオーバーヘッドを減らし、パフォーマンスを向上できます。さらに、FastCGIは並列処理をサポートしており、複数のリクエストを同時に処理できるため、PHPスクリプトの実行効率を向上できます。
要約:
- CGIは外部処理方式で、リクエストを行うたびに新しいプロセスを立ち上げるため、処理性能が低い
- FastCGIは長期実行可能なプロセスをサポートする、CGIプロトコルの改良版であり、複数のリクエストを並列処理し、パフォーマンスが向上しています。