ホームページ >バックエンド開発 >PHPチュートリアル >HTTP サーバーは PHP のサポートをどのように実装しますか? _PHP チュートリアル

HTTP サーバーは PHP のサポートをどのように実装しますか? _PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:33:03880ブラウズ

現在、PHP には 3 種類の HTTP サーバー サポートがあります:

  • Apache の mod_php5 などの HTTP サーバーの組み込みモジュールを通じて実現され、同様の Apache の組み込み mod_perl は perl をサポートできます。
  • CGI を通じて実現されますが、これは Perl の以前の CGI と同様です。この方法の欠点は、サーバーがこれらのスクリプトに遭遇するたびにスクリプト パーサーを再起動してスクリプトを実行し、結果を返す必要があるためです。サーバーはあまり安全ではなく、ほとんど使用されません。
  • 最新のものは FastCGI と呼ばれます。いわゆる FastCGI は CGI を改良したものです。通常、スクリプト プロセッサは 1 つまたは複数のデーモン プロセスを起動し、HTTP サーバーがスクリプトを実行するためにそのスクリプトを直接 FastCGI プロセスに渡します (通常は HTML)。ブラウザに戻ります。
  • FastCGI のこの方法に関する小さな問題は、大量のトラフィックを伴う頻繁なリクエストに遭遇すると、スクリプト プロセッサのデーモン プロセスが過負荷になって非常に遅くなったり、メモリ リークを引き起こしたりする可能性があることです。ただし、Apache の組み込みモジュール方式と比較した利点は、サーバーとスクリプト パーサーが完全に分離され、それぞれが責任を負うため、サーバーが肥大化しなくなり、静的ファイルへの応答やスクリプト パーサーの結果を返すことに集中できることです。ユーザークライアント側への動的スクリプトパーサー。したがって、Apache の組み込みモジュール方式と比較して、パフォーマンスが大幅に向上する場合があります。 Apache+mod_php よりも 5 ~ 10 倍高速である可能性があることをテストした人もいます。

FastCGI を使用する一般的なスタックは 2 つあります:

ligthttpd+spawn-fcgi
  • nginx+PHP-FPM (spawn-fcgiも使用可能)
  • 上で述べたように、どちらの構造も FastCGI を使用して PHP をサポートしているため、HTTP サーバーは完全に解放され、応答性と同時処理が向上します。したがって、lighttpd と nginx はどちらも小さいながらも強力で効率的であるという評判を得ています。

また、spawn-fcgi は lighttpd の一部であるため、lighttpd がインストールされている場合、PHP をサポートするために spawn-fcgi が使用されることになりますが、現在一部のユーザーは、lighttpd の spwan-fcgi がサポートしていると主張しています。同時実行性が高いと、前述のメモリリークが発生し、fastcgi も自動的に再起動されます。つまり、この時点でユーザーがアクセスすると、PHP スクリプト プロセッサがクラッシュし、白いページが表示される可能性があります (つまり、PHP を解析できないか、エラーが発生します)。

lighttpd とは異なり、Nginx には fastcgi (spawn-fcgi) が付属しているため、完全に軽量であり、PHP を解析するためにサードパーティの FastCGI プロセッサの助けを必要とするため、nginx は非常に柔軟に接続できるようです。 PHP 解析を実装するためのサードパーティ解析プロセッサ (nginx.conf で簡単に設定できます)。

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

spawn-fcgi の欠陥により、現在、新しいサードパーティ製 (現在、近い将来に PHP コアに追加することに熱心に取り組んでいると聞きました) PHP 用の FastCGI プロセッサである PHP-FPM が登場しました (詳細についてはグーグルで調べてください)。 spawn-fcgi と比較すると、次の利点があります:

PHPパッチとして開発されているため、インストール時にPHPソースコードと一緒にコンパイルする必要があります。つまり、PHPコアにコンパイルされるため、パフォーマンスの点で優れています。同時に、高い同時実行性の処理において spawn-fcgi よりも優れており、少なくとも fastcgi プロセッサを自動的に再起動しません。使用されている具体的なアルゴリズムと設計については、Google でご覧ください。

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

まとめ

現在、HTTPServer には基本的に 3 つの人気のあるスタックがあります:


Apache+mod_php5
  • lighttp+spawn-fcgi
  • nginx+PHP-FPM

http://www.bkjia.com/PHPjc/752557.html

tru​​ehttp://www.bkjia.com/PHPjc/752557.html技術記事現在、さまざまなサーバーによる PHP のサポートは 3 種類あります: Apache の mod_php5 などの HTTP サーバーの組み込みモジュール、同様の Apache の組み込み mod_perl は、...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。