私のウェブサイトでは、ほとんどの PHP アプリを NGINX が提供する fastcgi バックエンドで実行しています。Apache とうまく統合されていると思われる新しいアプリケーションがあります。たとえば、動的に書き込まれる .htaccess ファイルに大きく依存しています。NGINX でネイティブに動作するように修正する作業を行っていますが、まだ準備ができていません。それまでの間、NGINX プロキシを使用して、そのパスへのすべての接続を Apache に直接転送し、Apache に処理させるつもりでした。
ただし、私はメモリが制限された VPS を使用しており、NGINX (独自の APC キャッシュを使用) と Apache (APC キャッシュにより多くのメモリを使用) 用の PHP-CGI プロセスのセットを実行したくありません。この 2 つの間で PHP を共有できた人はいますか?
mod_fcgid は、既に稼働しているサーバーの使用をサポートしていないようです。そのため、mod_fastcgi を試してみました。これは最初はうまくいくように見えましたが、かなりの量のメモリを消費していました (コミット - 静的ではなく成長していました)。さらに悪いことに、mod_fastcgi で動作するように、Apache 構成で DirectoryIndex 行を取得できませんでした!
追加した
AddHandler php5-fastcgi .php FastCgiExternalServer /var/www -ホスト 127.0.0.1:9000
私の Apache 設定に、すべての .php ページが処理されますが、http: //example.com/foo/ のようなパスは /foo/index.php をサーバー化しません! FastCgiExternalServer を削除すると、index.php が検出されますが、もちろんテキストとして表示されます。
DirectoryIndex が FastCgiExternalServer の後に処理されるためだと思いますが、これを変更する方法がわかりません。