どのApache / PHP構成を知っていますか、それらはどの程度優れていますか?
あなたが知っているPHP / Apacheの設定方法、その長所と短所についてお聞きしたいと思います。私は自分を始めます: ---------------- ApacheモジュールとしてのPHP ---------------- 長所:特にmpm-workerモードでは、毎回exeを起動する必要がないため、速度が優れています。このモードでは、APCやeAcceleratorなどのさまざまなPHPアクセラレータを使用することもできます。 短所:mpm-workerモードでapacheを実行している場合、phpスクリプトのすべてのグリッチがそのapacheプロセスのスレッドプール全体を不安定にするため、安定性の問題が発生する可能性があります。また、このモードでは、すべてのスクリプトがapacheユーザーに代わって実行されます。これはセキュリティに悪影響を及ぼします。mpm-worker構成には、スレッドセーフモードでコンパイルされたPHPが必要です。少なくともCentOSとRedHatのデフォルトリポジトリにはスレッドセーフなPHPバージョンがないため、これらのOSでは少なくともPHPを自分でコンパイルする必要があります(Apacheでワーカーmpmをアクティブにする方法があります)。スレッドセーフなPHPバイナリの使用は、実験的で不安定であると見なされています。さらに、多くのPHP拡張機能はスレッドセーフモードをサポートしていないか、スレッドセーフモードで十分にテストされていません。 ---------------- CGIとしてのPHP ---------------- これは、 "con"自体のように見える最も遅いデフォルト構成のようです;) ---------------- mod_suphpを介したCGIとしてのPHP ---------------- 長所:suphpを使用すると、スクリプトファイルの所有者に代わってphp sciptsを実行できます。これにより、同じマシン上の異なるサイトを安全に分離できます。また、suphpでは、仮想ホストごとに異なるphp.iniファイルを使用できます。 短所:CGIモードのPHPはパフォーマンスが低下します。このモードでは、APCのようなphpアクセラレータを使用できません。これは、スクリプトを処理するために新しいプロセスが生成されるたびに、前のプロセスのキャッシュが役に立たなくなるためです。ところで、この設定でいくつかのアクセラレータを適用する方法を知っていますか?PHPバイトコードキャッシュにshmを使用することについて何か聞いたことがあります。また、このモードでは.htaccessファイルを介してPHPを構成できません。.htaccess(php_value / php_flagディレクティブ)を介してスクリプトごとのさまざまなオプションを設定する必要がある場合は、P ECL htscannerをインストールする必要があります。 ---------------- suexecを介したCGIとしてのPHP ---------------- この設定はsuphpと同じように見えますが、速度が遅く、安全性が低いと聞きました。ほぼ同じ長所と短所が適用されます。 ---------------- FastCGIとしてのPHP ---------------- 長所:FastCGI標準では、phpプロセスが終了する前に、単一のphpプロセスで複数のスクリプトを処理できます。この方法では、スクリプトごとに新しいphpプロセスを起動する必要がないため、パフォーマンスが向上します。この構成ではPHPアクセラレータを使用することもできます(コメントについては、「cons」セクションを参照)。また、FCGIはsuphpとほぼ同様に、一部のユーザーの代わりにphpプロセスを実行することもできます。mod_fcgidは、最も完全なfcgiのサポートとApacheの柔軟性を備えているようです。 短所:fastcgiモードでphpアクセラレータを使用すると、各PHPプロセスに独自のバイトコードキャッシュがあるため、メモリ消費量が高くなります(バイトコードキャッシュに共有メモリを使用できるアクセラレータがない場合。そのようなものはありますか?)。FastCGIの構成も少し複雑です。さまざまな構成ファイルを作成し、構成を変更する必要があります。 fastcgiは最も安定、安全、高速、かつ柔軟なPHP構成ですが、構成が少し難しいようです。しかし、たぶん、何かを逃しましたか? コメントは大歓迎です!