ホームページ >バックエンド開発 >PHPチュートリアル >[PHP の専門用語 + 概念の説明]
PHP 弱い型指定言語、大文字と小文字を区別する、スクリプト言語 (インタープリタ、テキスト ファイル実行)、サーバー側。
OOP [オブジェクト指向プログラミング]
SAPI [サーバー アプリケーション プログラミング インターフェイス]
リンク
サーバー側アプリケーション プログラミング ポート。 PHP が他のアプリケーションと対話するためのインターフェイスです。PHP スクリプトは、Web サーバー経由、コマンド ライン上で直接実行する、または他のプログラムに埋め込むなど、さまざまな方法で実行できます。
SAPI は、外部通信用のインターフェイスを提供します。一般的な SAPI には、cgi、fast-cgi、cli、isapi、apache モジュール DLL
CGI
CGI が共通です。ゲートウェイインターフェースとは、簡単に言えば、WebページとWEBサーバーの実行プログラムを繋ぎ、HTMLで受け取った命令をサーバーの実行プログラムに渡すプログラムのことです。サーバーによる HTML ページへのプログラムの実行。 CGI は非常にクロスプラットフォームであり、ほぼすべてのオペレーティング システムに実装できます。
CGI メソッドが接続リクエスト (ユーザーリクエスト) に遭遇すると、まず CGI サブプロセスを作成し、CGI プロセスをアクティブ化し、次にリクエストを処理し、処理後にサブプロセスを終了する必要があります。これはフォークして実行するパターンです。したがって、CGI を使用するサーバーには、接続要求と同じ数の CGI サブプロセスが存在することになり、サブプロセスの繰り返しロードが CGI パフォーマンスを低下させる主な原因となります。ユーザーリクエストの数が非常に多い場合、メモリやCPU時間などのシステムリソースが大量に占有され、パフォーマンスが低下します。
FastCGI
fast-cgi は、cgi のアップグレード版のようなもので、有効化されている限り常に実行できます。毎回フォークするのに時間はかかりません。 PHP は管理に PHP-FPM (FastCGI Process Manager)、つまり PHP FastCGI Process Manager の正式名を使用します。
FastCGI の仕組み
Web サーバーの起動時に FastCGI プロセス マネージャー (IIS ISAPI または Apache モジュール) をロードします)
FastCGI プロセス マネージャーは自身を初期化し、複数の CGI インタプリタ プロセス (複数の php-cgi が表示されます) を開始し、Web サーバーからの接続を待ちます。
クライアント要求が Web サーバーに到達すると、FastCGI プロセス マネージャーが CGI インタープリターを選択して接続します。 Web サーバーは、CGI 環境変数と標準入力を FastCGI サブプロセス php-cgi に送信します。
FastCGI サブプロセスは処理が完了すると、同じ接続から Web サーバーに標準出力とエラー情報を返します。 FastCGI 子プロセスが接続を閉じると、リクエストが処理されます。次に、FastCGI 子プロセスは、(Web サーバーで実行されている) FastCGI プロセス マネージャーからの次の接続を待機して処理します。 CGI モードでは、php-cgi はこの時点で終了します。
上記の場合、CGI が通常どれほど遅いか想像できるでしょう。 PHP へのすべての Web リクエストは、php.ini を再解析し、すべての拡張機能を再ロードし、すべてのデータ構造を再初期化する必要があります。 FastCGI では、これらすべてがプロセスの開始時に 1 回だけ行われます。さらに、永続的なデータベース接続が機能するという利点もあります。
APACHE2HANDLER
PHP は、Apache サーバーがシステムを起動した後、メモリ内に常駐する複数のプロセス コピーを事前に生成し、リクエストが発生するとこれらを解放します。コピーはすぐに使用されるため、子プロセスの生成による遅延は発生しません。これらのサーバー コピーは、HTTP 要求の処理後すぐには終了せず、次の要求を待ってコンピューター内に留まります。クライアントのブラウザ要求に対する応答が速くなり、パフォーマンスが向上します。
Apache モジュールの DLL:
この動作モードは、Windows 環境で Apache サーバーを使用するときによく使用されるモードです。モジュラー (DLL) では、PHP が Web とともに起動されます。サーバーを起動して実行します。 (PHP の動作効率を高速化するために、CGI をベースに Apache を拡張したものです)
ISAPI:
ISAPI は、Microsoft が提供する Internet Server Application Program Interface です。インターネット サービス用の API インターフェイスのセット。ISAPI DLL は、ユーザー リクエストによってアクティブ化された後、メモリ内に常駐し、別のユーザー リクエストを処理する関数を 1 つの DLL に設定することもできます。と WWW サーバーが同じプロセス内にあるため、CGI に比べて効率が大幅に高くなります。
cli:[php CLI モードの概要]
cli は、よく使用する php のコマンドライン実行モードですが、気づかないかもしれません (例: we Linux 上では、PHP がインストールした拡張機能を調べるために「php -m」をよく使用します。これは、PHP コマンドライン実行モードです。