2

私のウェブサイトでは、ほとんどの 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 の後に処理されるためだと思いますが、これを変更する方法がわかりません。

4

1 に答える 1

9

問題が解決しました。トリックは、次の行を使用することでした

FastCGIExternalServer /var/www/fast-cgi-fake-handler -host 127.0.0.1:9000
AddType アプリケーション/x-httpd-fastphp5 .php
アクションアプリケーション/x-httpd-fastphp5 /fast-cgi-fake-handler

Action の相対パス + FastCGIExternalServer のフルパスでできました!

于 2009-02-22T19:33:42.527 に答える