ホームページ >バックエンド開発 >PHPの問題 >PHPを実行する3つの方法

PHPを実行する3つの方法

藏色散人
藏色散人オリジナル
2020-08-13 09:10:175458ブラウズ

php の 3 つの実行方法は、1. HTTPServer の組み込みモジュールを介して実装、2. CGI を介して実装、3. FastCGI を介して実装です。

PHPを実行する3つの方法

#推奨: 「

PHP ビデオ チュートリアル

PHP を実行する 3 つの方法

3 つの動作モード: mod_php5、cgi、fast-cgi

1. HTTPServer の組み込みモジュールを通じて実装されます。

たとえば、Apache の mod_php5 など、Apache の組み込みモジュールと同様です。 mod_perl は perl をサポートできます;

2. CGI による実装

これは、perl の以前の CGI とまったく同じです。この方法の欠点は、パフォーマンスが低いことです。これらのスクリプトでは、スクリプトを実行して結果をサーバーに返すためにスクリプト パーサーを再起動する必要があります。一方で、あまり安全ではありません。

この方法はほとんど使用されません。

3. 最新のものは FastCGI と呼ばれます。

いわゆる FastCGI は CGI を改良したものです。一般に C/S 構造を採用します。一般に、スクリプト プロセッサは 1 つ以上のデーモン プロセスを開始します。HTTPServer がスクリプトに遭遇するたびに、実行のために FastCGI プロセスに直接配信され、結果 (通常は HTML) が返されます。 . ブラウザに。

この方法の小さな問題は、大量のトラフィックを伴うリクエストが頻繁に発生すると、スクリプト プロセッサのデーモン プロセスが過負荷になって非常に遅くなったり、メモリ リークが発生したりする可能性があることです。

しかし、Apache の組み込みモジュール方式と比較した利点は、サーバーとスクリプト パーサーが完全に分離され、それぞれが責任を負うため、サーバーが肥大化しなくなり、静的ファイルへの応答や動的ファイルの結果を返すことに集中できることです。スクリプト パーサー。ユーザーにクライアントを与えます。

したがって、Apache の組み込みモジュール方式と比較して、パフォーマンスが大幅に向上する場合があります。

一部の人々は、Apache mod_php よりも 5 ~ 10 倍高速である可能性があることをテストしました。

3.1. FastCGI 共通モード:

lightppd spawn-fcgi

nginx PHP-FPM

a、上記の両方FastCGI は PHP のサポートに使用されるため、HTTPServer は完全に解放され、応答性が向上し、同時に処理できます。

b. spawn-fcgi は lighttpd の一部であるため、lighttpd がインストールされている場合、通常、spawn-fcgi は PHP のサポートに使用されますが、現在一部のユーザーは、同時アクセスが多いと lighttpd の spwan-fcgi が失敗すると言っています。上記のメモリ リークにより、fastcgi が自動的に再起動される場合もあります。

lighttpd とは異なり、nginx には fastcgi (spawn-fcgi) が付属しているため、完全に軽量です。PHP を解析するにはサードパーティの FastCGI プロセッサを使用する必要があるため、実際にはこの nginx は非常に柔軟で、 PHP を解析するためにサードパーティの解析プロセッサに接続できます。

nginx は spwan-fcgi を使用できます (lighttpd を一緒にインストールする必要がありますが、nginx ではポートを回避する必要があります。一部の古いブログにはこのインストールに関するチュートリアルがあります)。ただし、spawn-fcgi には上記のユーザーが含まれているため、欠陥は徐々に発見され、現在では nginx spawn-fcgi の組み合わせの使用は徐々に減少しています。

c. spawn-fcgi の不具合により、新しいサードパーティ (現在も、近い将来 PHP コアに追加できるよう鋭意開発中と聞いています) の PHP 用 FastCGI プロセッサが登場しました、PHP-FPMと呼ばれます。 spawn-fcgi と比較すると、次のような利点があります。

PHP-FPM は PHP パッチとして開発されているため、インストール時に PHP ソース コードと一緒にコンパイルする必要があります。 PHP コア したがって、パフォーマンスの点で優れています;

同時に、高い同時実行性の処理においても spawn-fcgi よりも優れており、少なくとも fastcgi プロセッサを自動的に再起動しません。

したがって、前述したように、nginx の軽量さと柔軟性により、現在のパフォーマンスは優れており、nginx PHP/PHP-FPM の組み合わせを使用する人が徐々に増えています。

以上がPHPを実行する3つの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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