PHP の解析方法

Sep 19, 2019 pm 05:57 PM
php 解析する

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 の解析方法

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 サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

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

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

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

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

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

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

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

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

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

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

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

See all articles