PHP:FastCGIのmod_phpよりも優れている点は何ですか?


30

最近、PHPでFastCGIを使用することが提案されました。今、私はFastCGIページに行き、それを読みましたが、その利点が何であるかを本当に理解していません。

回答:


37

mod_phpを使用すると、各ApacheワーカーにPHPインタープリター全体がロードされます。Apacheは着信要求ごとに1つのワーカープロセスを必要とするため、すぐに数百のApacheワーカーが使用され、それぞれに独自のPHPインタープリターがロードされ、大量のメモリを消費します。

(注:これは正確ではありません。Apache worker_mpmでは、単一のスレッドApacheワーカーで多くのリクエストを処理できます。ただし、2009年であっても、PHP拡張のスレッドの問題が疑われるため、PHPをデプロイする推奨方法ではありません。)

fast_cgiモードでPHPを使用する(lighttpdパッケージのspawn-fcgiなどを使用する)ことには、次の利点があります。

  • 着信接続の数とは別にPHPワーカーの数を調整します
  • PHPワーカーを別のサーバーに配置したり、Web層を変更せずに多くのサーバーに拡張したりできます。
  • nginxlighttpdなどの別のWebサーバーを柔軟に選択できます
  • Webサーバー上の異なるセキュリティドメインでPHPアプリケーションを実行できるようにします

5

FastCGIは、mod_phpとは異なり、phpビットがapacheビットと同じプロセスで実行されていないことを意味します。サーバーの再起動や暴走したアプリケーションの処理に関しては、この分離にはいくつかの明確な利点があります。mod_phpの場合は、「暴走」しているのはapacheプロセスですが、fastcgiではapacheが話しているプロセスです。サーバー全体を停止する必要はありません。


4

まだ言及されていないもう1つの利点は、mod_fcgid(ApacheでFastCGIを使用するための新しい実装である)およびsuexecを使用すると、異なるホストが異なるLinuxユーザーを使用して実行するセットアップを実現できるという事実であり、これは共有ホスティングシナリオで実際のセキュリティ上の利点になります。

mod_phpを使用すると、すべての仮想ホストが同じユーザー(Apacheのユーザー)を共有します。これは、セキュリティの問題につながる可能性があります。


この特定のApache httpdセットアップで使用されるMPMに依存します。たとえば、MPM-itk(mpm-itk.sesse.net)を使用すると、mod_phpを使用して、別のユーザーのコンテキストで実行されるスクリプト(または、httpdプロセス)を使用できます。
joschi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.