ホームページ  >  記事  >  バックエンド開発  >  PHP の仕組み

PHP の仕組み

远方*
远方*オリジナル
2022-04-06 13:32:52202ブラウズ

1. PHP の動作原理

典型的な質問: Nginx + PHP - FPM の動作原理
CGI: 一部の初期の Web サーバーは単純な HTML 静的ファイルしか処理できませんが、テクノロジーの発展により、動的言語が使用可能になりました。登場(PHP、Pythonなど)。この中で、PHP を処理したい場合は、PHP パーサーを渡して処理する必要がありますが、PHP が処理された後、Web サーバーとどのように通信するのでしょうか?これは問題だ。異なる言語プロセッサと Web サーバー間の通信の問題を解決するために、CGI プロトコルに従ってプログラムが記述されていれば、言語パーサーと Web サーバー間の通信が実現できるようになりました。 (例: PHP の CGI プログラム) このプロセスにおいて、CGI は PHP パーサーと Web サーバー間のプロトコル ブリッジです。
FastCGI: CGI は PHP と Web サーバー間の通信の問題を解決しますが、Web サーバーがリクエストを受信するたびに新しい CGI プロセスを開き、リクエストが終了するとプロセスを終了するため、効率は非常に低くなります。今回、そのようなリクエストが 10,000、100,000、または 100 万件あった場合、100,000 または 100 万の新しいプロセスを開いて終了することになります。それ自体、非常にリソースの無駄です。このとき、主に CGI の改良版として登場しました。これは、各リクエストが処理された後、プロセスが終了せず、プ​​ロセスが一度に複数のリクエストを処理できるようにします。その場合、毎回プロセスを再度開く必要がなく、効率が大幅に向上します。
PHP-FPM: (FastCGI Process Manager: FastCGI プロセス マネージャー)、FPM は FastCGI の実装であり、プロセス管理機能を提供します。プロセスには、マスター プロセスとワーカー プロセスの 2 つのプロセスが含まれます。マスター プロセスは 1 つだけあり、ポートをリッスンして Web サーバーからのリクエストを受信します。通常は複数のワーカー プロセスがあり、特定の数は で定義されます。各プロセス PHP パーサーは各プロセス内に埋め込まれています (つまり、ワーカーが PHP コードを処理するのに対し、マスターは主にポートをリッスンしてリクエストを受信します)。ウェブサーバー。それ自体、マスター リスニング ポートはデフォルトで 9000 であり、9000 ポートは Nginx のリバース プロキシを通じてプロキシされるため、ここで FPM 関連の処理を完了できます。

2. CGI、FastCGI、PHP-FPM の違いを簡単に説明します。

CGI: Web サーバーのプロトコルと PHP パーサーに接続するために、ブリッジとして機能します。
FastCGI: CGI の改良版です。
PHP-FPM: FastCGI プロセス マネージャー、FastCGI プロセス マネージャー。

以上がPHP の仕組みの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。