個人的には、Lighttpdは問題ありませんが、軽量のWebサーバー+ FastCGIソリューションを使用することになった場合は、Nginx+FastCGIを使用します。私はベンチマークを実行し、すべてのコードを読みました。Nginxは、負荷がかかった状態で1桁高速で安定しています。これは、非常に優れています。
しかし、それはあなたが尋ねたものではありません。基本的に、リストする3つのオプションには、セキュリティ/拡張性と速度のトレードオフの範囲があり、どこに行きたいかを決める必要があります。信頼できないユーザーがgod-knows-what-knowsをインストールしている共有ホスティングプロバイダーの場合、セキュリティに傾倒します。これを信頼できるユーザー間で共有すると、パフォーマンスに傾倒する可能性があります。これが私の考えです:
CGI + suexec:これは、共有ホスティング環境のユーザー/サイトの数に関して、これまでで最も安全で、最も効率的でスケーラブルです。プロセスが生成され、メモリは要求が着信したときにのみ使用されます。もちろん、CGIの生成により、個々のスクリプトの実行時間が最も遅くなります。どれくらい遅いですか?ベンチマークを行う必要がありますが、一般的に、実行時間の長いアプリ(つまり、ライブラリをロードしてリクエストごとに初期化するだけで0.25〜0.5秒かかるWordPressのようなもの)を実行している場合、CGIの生成ペナルティはかなり見られ始めますコンテキストでは無視できます。
FastCGI:ここでの問題(WebサーバーがApache、Lighttpd、Nginxのいずれであるかは関係ありません)は、各プロセスがPHPインタープリターのサイズに等しいメモリを消費するため、各ユーザーに実行を許可するFCGI子プロセスの数を把握することです。 (Linuxでは、もちろんすべてが配線されているわけではありませんが、私は逸脱します)。また、mod_phpとは異なり、これらのプロセスはユーザー間で共有されないため、ユーザーごとに制限する必要があります。たとえば、Dreamhostは、顧客に対してこれを3に制限しています。現在、1秒間に2〜5ページビューを超えるバーストを取得するWebサイトを実行している顧客にとって、これらの要求が積み重なってサイトがハングするため、これは実際にはかなり悪いことです。今、専用のアプリを実行しているときは、軽量のWebサーバーを備えたFastCGIが好きですサーバー/クラスター、アプリに数百のFCGIの子を与えることができる場合(もちろん、すべてWebサーバーの特権を使用します。Apache/ prefork + mod_php)。ただし、ユーザーごとにFCGIの子を割り当て/キャップする必要がある共有ホスティングには意味がないと思います。
Apache + mod_php:すべてがwebserver privで実行されているため、安全性は低くなりますが、ライブPHPプロセスのプールは共有されるため、パフォーマンスの面で最高です。開発者の観点からは、php_safeモードを許容できません。また、sysadminの観点からは、これは実際にはセキュリティの幻想にすぎません(愚かなユーザーを軽減しますが、実際の攻撃からは保護しません)。他のオプションにはsafe_modeを含める必要があります。
Dreamhostは一種のハイブリッドであり、デフォルトでApache CGI + suexecを実行しますが、必要に応じて、上限とメモリ使用量の独自の監視を条件として、洗練されたより多くのユーザーの(わずかな)割合にFCGIを選択させます。 。これにより、デフォルトですべての人がFCGIを有効にするのに比べて、大量のメモリリソースを節約できます。
標準の商用共有ホスティングについて話している場合のもう1つの問題は、Apacheがフル機能であり、ほぼすべてのモジュール(mod_securityなどが必要なものを含む)があり、すべての.htaccess構成が機能するため、ユーザーはそれを気に入るはずです。など-DrupalやWordPressなどをインストールしようとすると、他の何かでサポートの頭痛の種に遭遇します(内部ユーザーと話している場合は問題ははるかに少なくなります)。
個人的には、最高のセキュリティと拡張性を実現するために、CGI+suexecを使い始めるのを簡単にすることをお勧めします。ユーザーがFCGIまたはmod_phpを望んでいて、提案やコミュニケーションのための優れたチャネルがある場合、ユーザーはそれを求めますが、どちらもパフォーマンスがわずかに向上するだけで、はるかに大きな頭痛の種になるので、私の提案です。最初はどちらも実行しませんが、要求があれば応答します。
標準のApache+CGI+suexecの代わりにLighttpd+FCGIのような「面白い」何かをしたいという願望に共感しますが、私は本当にそれをお勧めできません。
複数のサーバーを実行している場合は、一部のサーバーにCGIを配置し、他のサーバーのパワーユーザーのために別のサーバーを配置することになります。そして、phpBBの古いお尻バージョンのようなもののためにすべてのwwwdirsをcrongrepするようにしてください!