最近在使用vagrant搭建php的开发环境。 其中在搭建调试过程中,发现了很多问题(毕竟之前一直在用集成开发环境,一键安装搞定。。)。 进而调查了下CGI FastCGI 与 PHP-FPM 现总结如下:
ブラウザを使用してindex.phpにアクセスしたとき、具体的には何を経験しましたか?
この写真を読んだ後、少しは明確になったでしょうか?以下で詳しく説明しましょう。
URLアドレスを入力してindex.phpにアクセスすると、ブラウザ(クライアント)はサーバー(nginx、apacheなど)にリクエストを送信しますが、サーバーはphpなどのhtmlなどの静的リソースのみを処理できます。 、jsp など。動的リソースはサーバーでは処理できないため、それらを処理するには特定のパーサーが必要です。では、サーバーとパーサーはどのように通信 (連絡) するのでしょうか。 CGI を使用して通信します。通信後、PHP-FPM を使用して php ファイルを解析し、解析が完了した後、サーバーはブラウザ (クライアント) に戻ります。このようにして、リクエストのプロセスは終了します。
つまり:
CGI は Web サーバーと Web アプリケーション間のデータ交換用のプロトコルです。
FastCGI: CGI と同じ通信プロトコルですが、CGI よりも効率が最適化されています。
PHP-CGI: Webサーバーが提供するCGIプロトコルに対するPHP(Webアプリケーション)のインターフェースプログラムです。
PHP-FPM: PHP (Web アプリケーション) によって Web サーバーに提供される FastCGI プロトコルのインターフェイス プログラムであり、比較的インテリジェントなタスク管理も提供します。
参考資料
CGI、FastCGI、PHP-FPMの関係の図解
関連する推奨事項:
php-fpm - 実行中のphp_fpmの設定ファイルのパスを確認する方法
以上がCGI、FastCGI、PHP_FPM の関係は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。