PHP は、Web 開発や動的ページ生成に広く使用されているサーバーサイド スクリプト言語です。 CGI (Common Gateway Interface) アプリケーションとして、または Apache HTTP サーバーなどのモジュールとして実行できます。
CGI (Common Gateway Interface) は、Web サーバーと Web アプリケーションを接続するための世界標準です。これにより、Web サーバーは Web アプリケーションにリクエストを送信し、応答を受信できるようになります。このうち、PHP CGIとは、CGI標準プロトコルを利用してPHPインタプリタとWebサーバーを接続する方法を指します。
PHP には、PHP-CGI と PHP-FPM という 2 つの主要な CGI ソリューションがあります。以下にそれらの違いを紹介します。
PHP-CGI は、PHP の標準 CGI ソリューションです。プロセス プールを使用して PHP インタープリターを実行し、リクエストごとに新しいプロセスを作成します。個別のプロセスを使用して各リクエストを処理するため、パフォーマンスの問題が発生する可能性があります。リクエストごとに PHP インタープリターと関連ライブラリ ファイルを再ロードする必要があるためです。このプロセスには、より多くの時間とリソースが必要です。
PHP-FPM は、PHP のパフォーマンスの問題を改善する、PHP 用のもう 1 つの CGI ソリューションです。プロセスのプールを使用して PHP インタープリターを実行し、各プロセスは複数のリクエストを処理できます。 PHP-FPM では、インタープリター スレッドはリクエストが到着すると起動され、リクエストの処理が完了した後もアクティブなままになります。これにより、リクエストの処理時にインタープリタとライブラリ ファイルを再ロードする必要がなく、既存のスレッドが再利用されるため、各リクエストの処理時間が短縮されます。
PHP-FPM では、コンセントレーターのスケジュールと制御の機能も強化されています。使用できるスレッドの数と、スレッド プールがいっぱいになったときに新しく到着したリクエストを処理する方法を設定できます。これにより、動的負荷下でもサーバーの応答性が向上します。
PHP-FPM は、より優れたパフォーマンスとスケーラビリティを提供できるため、PHP に推奨されるソリューションです。 PHP-FPM は、PHP-CGI よりもスレッド プール管理が優れており、パフォーマンスと動的負荷管理機能が優れています。 PHP-FPM は FastCGI プロトコルもサポートしており、さまざまな Web サーバー (Nginx、Apache など) と通信できます。
PHP-CGI は PHP の標準 CGI ソリューションですが、パフォーマンスを考慮して PHP-FPM の使用を選択することもできます。小規模な Web サイトや開発環境の場合は PHP-CGI を使用できますが、運用環境では良好なパフォーマンスとスケーラビリティを確保するために PHP-FPM を使用することをお勧めします。
つまり、PHP は、CGI ソリューションとして PHP-CGI または PHP-FPM を使用し、CGI プロトコルを通じて Web サーバーに接続できます。 PHP-FPM は、より優れたパフォーマンスとスケーラビリティを提供する PHP 用に提案されたソリューションです。どの CGI ソリューションを使用するかは、サーバーの負荷、トラフィックなどの使用状況によって異なります。
以上がPHP CGIの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。