この記事の内容は、PHP の SAPI とは何ですか?どのように達成するか? (写真と文章)、一定の参考価値がありますので、困っている友人の参考にしていただければ幸いです。
SAPI、具体的に調べてみましたが、Server Application Programming Interfaceの略で、サーバーサイドのアプリケーションプログラミングインターフェースのことです。
これは、PHP カーネルがそのサービスを呼び出すために外部に提供するインターフェイスです。つまり、外部システムは、PHP が提供するスクリプトのコンパイルや実行のサービスを SAPI 経由で呼び出すことができます。 PHP には多数の SAPI が実装されていますが、Cli と Fpm がより一般的です。
#以下の図から、外部システムが SAPI を介して PHP サービスを呼び出す方法を明確に理解できます
![1537254600210994.jpg PHP の SAPI とは何ですか?どのように達成するか? (写真とテキスト)](https://img.php.cn//upload/image/847/811/912/1537254600210994.jpg)
##画像はインターネットからのものです
以下は主に、一般的な 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 フック関数が実行されます。と呼ばれた。その後、一連の初期化操作が実行され、最終的にマスター プロセスとワーカー プロセスが異なる処理リンクに入ります。
ワード プロセスのライフ サイクルは次のとおりです:
![1537254617668902.jpg PHP の SAPI とは何ですか?どのように達成するか? (写真とテキスト)](https://img.php.cn//upload/image/754/910/405/1537254617668902.jpg)
画像はインターネットから取得したものです
ライフサイクルの主なエクスペリエンス 次の段階: リクエストの待機、リクエストの解析、リクエストの初期化、PHP スクリプトの実行、リクエストの終了。
マスター プロセスは主に、静的モード (静的)、動的モード (動的)、およびオンデマンド モード (オンデマンド) の 3 つの異なる方法でワード プロセスを管理します。使用する特定のモードは、conf 設定の pm を通じて指定できます。
以上がPHP の SAPI とは何ですか?どのように達成するか? (写真とテキスト)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。