PHP の解析方法
php の解析プロセスを理解するには、まず cgi、fastcgi、および php-fpm の関連概念を理解する必要があります。
CGIとは何ですか?
cgi (Common Gateway Interface) は実際にはプロトコルです。CGI プロトコルを実装するプログラムを CGI プログラムと呼ぶことができます。CGI アプリケーションはブラウザと対話でき、データベース API とも対話できます。データベース サーバーなどの外部データ ソースを使用し、データベース サーバーからデータを取得します。 HTML ドキュメントにフォーマットした後、ブラウザに送信するか、ブラウザから取得したデータをデータベースに入れることができます。 php-cgi は、PHP コードを解析するために使用されるプロトコルです。しかし、この協定にはいくつかの欠点があります。
まず第一に、クライアントが PHP スクリプト ファイルを要求するたびに、サーバーはプロセスをフォークし、スクリプトを解析するためにパーサーを呼び出します。スクリプトが実行されると、プロセスは強制終了され、各フォーク プロセスはphp.ini を経由して環境を初期化します。プロセスを再利用できず、php.ini の IO オーバーヘッドが増加します。 PHPの実行速度を制限します。そこで、賢い phper は、より優れた CGI プロトコルを思いつきました。それが、後に登場した fastcgi プロトコルでした。
fastcgi プロトコル
Gu Mingsi は、より高速な CGI プロトコルを考えました。それで、彼はすぐにどこにいますか?
まず第一に、fastcg は元の php-cgi の問題を解決します。これにより、1 つのリクエストが処理された後にプロセスを直接終了するのではなく、複数のリクエストを 1 つのプロセスで処理できるようになります。これにより、php-cgi のパフォーマンスが大幅に向上します。 Webサーバーを改善します。実際、Fastcgi は最初にマスターを起動し、構成ファイルを解析し、実行環境を初期化してから、複数のワーカーを起動します。
リクエストが来ると、マスターはそれをワーカーに渡し、すぐに次のリクエストを受け入れることができます。これにより作業の重複が回避され、当然効率が高くなります。また、十分なワーカーがない場合、マスターは構成に従っていくつかのワーカーを事前に開始して待機することができます。もちろん、アイドル状態のワーカーが多すぎる場合は一部が停止されるため、パフォーマンスが向上し、リソースが節約されます。
php-fpm
PHP-FPM (FastCGI Process Manager: FastCGI Process Manager) は、PHP 5.3.3 より前の php 用の PHPFastCGI マネージャーであり、設計されたパッチ パッケージです。 FastCGI プロセス管理を PHP パッケージに統合します。
PHP5.3.3 より前の PHP を使用している場合は、PHP ソース コードにパッチを適用する必要があります。PHP をコンパイルしてインストールした後に使用できるようになります。実際、php-fpm はインタープリターと考えることができます。以下に示すように、コマンド ps -aux | grep php-fpm を使用して、対応するプロセスのステータスを表示できます:
php-fpm を使用すると、一般的な変更をスムーズに再起動できます。 php.ini の後、php-cgi プロセスはスムーズに再起動できません。つまり、サービスを再起動して新しい設定を再ロードする必要があります。このための php-fpm の処理メカニズムは、新しいワーカーは新しい構成を使用し、既存のワーカーは現在の作業を処理した後に休むことができ、移行をスムーズにするために使用されます。
PHP コード解析プロセス:
1. スキャン (レクシング)、PHP コードを言語フラグメント (トークン) に変換します。
2. 解析し、トークンを単純で意味のある式に変換します。
3. コンパイル、式を Opocdes にコンパイルします。
4. 実行では、オペコードを 1 つずつ順番に実行して、PHP スクリプトの機能を実現します。
APC などの一部のキャッシュにより、PHP がオペコードをキャッシュできるようになりました。この方法では、リクエストが届くたびに最初の 3 つの手順を繰り返す必要がなくなり、パフォーマンスが大幅に向上します。 PHPの実行速度。
推奨チュートリアル: PHP ビデオ チュートリアル
以上がPHP の解析方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
