ホームページ >バックエンド開発 >PHPチュートリアル >PHP の SAPI とは何ですか?どのように達成するか? (写真とテキスト)

PHP の SAPI とは何ですか?どのように達成するか? (写真とテキスト)

不言
不言オリジナル
2018-09-18 15:13:096725ブラウズ

この記事の内容は、PHP の SAPI とは何ですか?どのように達成するか? (写真と文章)、一定の参考価値がありますので、困っている友人の参考にしていただければ幸いです。

SAPI、具体的に調べてみましたが、Server Application Programming Interfaceの略で、サーバーサイドのアプリケーションプログラミングインターフェースのことです。

これは、PHP カーネルがそのサービスを呼び出すために外部に提供するインターフェイスです。つまり、外部システムは、PHP が提供するスクリプトのコンパイルや実行のサービスを SAPI 経由で呼び出すことができます。 PHP には多数の SAPI が実装されていますが、Cli と Fpm がより一般的です。

#以下の図から、外部システムが SAPI を介して PHP サービスを呼び出す方法を明確に理解できます

PHP の SAPI とは何ですか?どのように達成するか? (写真とテキスト)

##画像はインターネットからのものです

以下は主に、一般的な Cl と Fpm がどのように機能するかについて説明します。

#Cli
Cli (コマンド ライン インターフェイス) はコマンド ライン インターフェイスであり、シェルと同様にコマンド ラインで PHP スクリプトを実行するために使用されます。 PHP スクリプトを実行するのが最も簡単な方法です。

Cli はシングルプロセス モードです。リクエストの処理後、直接シャットダウンされます。ライフサイクルは、モジュールの起動、リクエストの起動、スクリプトの実行、リクエストのシャットダウン、モジュールのシャットダウンを経ます。その実行プロセスは相対的に高速です。

main()-> php_cli_startup()-> do_cli()-> php_module_shutdown()
Fpm
Fpm (FastCGI Process Manager) は、PHP FastCGI 動作モードのプロセス マネージャーです。その定義から、次のことがわかります。 Fpm の中核機能はプロセス管理です。

FastCGI は、Web サーバー (Nginx、Apache など) とハンドラー間の通信プロトコルで、HTTP に似たアプリケーション層の通信プロトコルです。

注: これは単なる合意です。

Fpm は、マスター プロセスと複数のワーカー プロセスで構成されるマルチプロセス モデルです。マスター プロセスは開始時にソケットを作成しますが、リクエストの受信や処理は行わず、代わりにフォークされたワーカー子プロセスがリクエストの受信と処理を完了します。つまり、マスタープロセスはワーカープロセスを管理しており、ワーカープロセスが実際の処理要求となる。

起動後、Fpm は最初に SAPI 登録操作を実行します。次に、PHP ライフ サイクルの

モジュール起動 段階に入り、この段階で各拡張機能によって定義された MINT フック関数が実行されます。と呼ばれた。その後、一連の初期化操作が実行され、最終的にマスター プロセスとワーカー プロセスが異なる処理リンクに入ります。

ワード プロセスのライフ サイクルは次のとおりです:

PHP の SAPI とは何ですか?どのように達成するか? (写真とテキスト)

画像はインターネットから取得したものです

ライフサイクルの主なエクスペリエンス 次の段階: リクエストの待機、リクエストの解析、リクエストの初期化、PHP スクリプトの実行、リクエストの終了。

マスター プロセスは主に、静的モード (静的)、動的モード (動的)、およびオンデマンド モード (オンデマンド) の 3 つの異なる方法でワード プロセスを管理します。使用する特定のモードは、conf 設定の pm を通じて指定できます。

以上がPHP の SAPI とは何ですか?どのように達成するか? (写真とテキスト)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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