検索
ホームページPHPフレームワークWorkermanPHP のいくつかの動作モードについての労働者の話

workerman の使用法チュートリアル の次のコラムでは、PHP のいくつかの動作モードを紹介します。困っている友人の役に立てば幸いです。

PHP のいくつかの動作モードについての労働者の話

workman プログラムはコマンド ライン モードである php-cli モードで実行する必要があることがわかっています。これを理解する必要があります。現在、PHPにはCGI、FastCGI、CLI、Webモジュールモードの4つの動作モードがあると言われています。

CGI

正式名称は「Common Gateway Interface」で、クライアントが Web ブラウザから Web サーバー上で実行されているプログラムに接続できるようになります。リクエスト データは、クライアントとプログラムの間でデータを送信するための標準を記述します。また、CGI はどの言語にも依存しないため、言語に標準の入力、出力、および環境変数がある限り、どの言語でも作成できます。 php、perl、tclなど。

CGIはユーザーリクエストごとにメンテナンス用のサブプロセスを開く必要があるため、数が多いとパフォーマンス上の問題が発生し、近年ではほとんど使用されていません。

FastCGI

CGI のアップグレード版である FastCGI は、長寿命 CGI のようなもので、常に実行できます。 php.ini を解析し、すべての DLL 拡張機能をリロードし、すべてのデータ構造を毎回再初期化するには時間がかかります。

PHP は管理に PHP-FPM (FastCGI Process Manager)、正式名は PHP FastCGI Process Manager を使用します。

FastCGI の動作原理

FastCGI プロセス マネージャーは、Web サーバーの起動時にロードされます。

FastCGI プロセス マネージャーは、自身を初期化し、複数の CGI 解釈を開始します。サーバー プロセスは Web サーバーからの接続を待ちます;

クライアント要求が Web サーバーに到着すると、FastCGI プロセス マネージャーは CGI インタープリターを選択して接続します。 Web サーバーは、CGI 環境変数と標準入力を FastCGI サブプロセス php-cgi に送信します。

FastCGI サブプロセスは処理を完了すると、同じ接続から標準出力とエラー情報を Web サーバーに返します。 FastCGI 子プロセスが接続を閉じると、リクエストが処理されます。次に、FastCGI 子プロセスは、FastCGI プロセス マネージャーからの次の接続を待機して処理します。

通常の CGI モードでは、これで終了となり、次回から最初からやり直す必要があります。しかし、FastCGI では、これらすべてがプロセスの開始時に 1 回だけ行われます。さらに、永続的なデータベース接続が機能するという利点もあります。

Cli

PHP-CLI は PHP Command Line Interface の略で、PHP をコマンドライン上で実行するためのインターフェースであり、PHP とは異なります。 Webサーバー上で動作する環境(PHP-CGIなど)。

Linux では、PHP がインストールした拡張機能を確認するために「php -m」をよく使用します。これは、PHP コマンドライン実行モードです。 php -h と入力すると、使用可能な特定のコマンドを確認できます。

php-cli モードでは、workerman と同じように、php ファイルを直接起動して実行できます

php index.php start

php-cli には、php の実行タイムアウトに関する記述がないことに注意してください。モード。

モジュールの読み込み

は通常、Apache 用です。このように、共通の本質は、LoadModule を使用して phpX_module をロードすること、つまり php を Apache として使用することです。走る。 Web 経由で php ファイルにアクセスすると、Apache は phpX_module を呼び出して php コードを解析します。では、phpX_module はどのようにしてデータを php パーサーに渡し、php コードを解析するのでしょうか?答えはサピを通じてです。

したがって、Apache が php を呼び出す上記のプロセスは次のとおりです:

apache -> httpd -> php5_module -> sapi -> php

Apache はリクエストを受信するたびに、php に接続するプロセスを生成し、sapi 経由でリクエストを完了します。ユーザーや同時ユーザーが多すぎると、サーバーがそれに耐えられなくなることは想像できます。

また、mod_php を apache にコンパイルすると、問題が発生したときに PHP の問題なのか、apache の問題なのかを判断することが困難になります。

概要

高パフォーマンスの PHP WEB サーバーを構築したい場合、現時点での最良の方法は Apache/Nginx FastCGI PHP-FPM (PHP-CGI) 方式です。 、モジュールの読み込みや CGI メソッドはもう使用しないでください

以上がPHP のいくつかの動作モードについての労働者の話の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はsegmentfaultで複製されています。侵害がある場合は、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

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

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。