2009-02-22 172 views
1

我一直在我的網站上運行大部分PHP應用程序,都是由NGINX提供服務的fastcgi後端。我有一個新的應用程序,它似乎與Apache很好地結合在一起;例如,它很大程度上依賴於動態編寫的.htaccess文件。我正在努力將其修改爲使用NGINX本地工作,但這還沒有準備好。同時,我將把NGINX代理的所有連接直接連接到Apache,並讓Apache處理它。但是,我使用的是內存有限的VPS,我寧願不爲NGINX(帶有自己的APC緩存)運行一組PHP-CGI進程,而爲Apache運行另一組PHP APC緩存)。有沒有人有幸在兩者之間共享PHP?在Apache和NGINX之間共享PHP-CGI

mod_ fcgid似乎不支持使用已經運行的服務器,所以我嘗試了mod_fastcgi。這似乎起初工作,但吸收了相當多的內存(承諾 - 它正在增長,而不僅僅是靜態)。更糟糕的是,我無法在我的apache配置中獲得DirectoryIndex行來使用mod_fastcgi!

我加

 
    AddHandler php5-fastcgi .php 
    FastCgiExternalServer /var/www -host 127.0.0.1:9000 

我的Apache的配置,並且所有.PHP頁面時處理,而不是像http://example.com/foo/路徑呢服務器/foo/index.php!如果我刪除FastCgiExternalServer,那麼它會找到index.php,但當然只是將它顯示爲文本。

我假設這是因爲DirectoryIndex是在FastCgiExternalServer之後處理的,但我不知道如何改變它。

+0

您可以發佈解決方案作爲答案並接受它。 – 2009-02-22 13:13:57

+0

完成。很高興知道。謝謝! – Mikeage 2009-02-22 19:35:52

回答

8

問題已解決。竅門是使用以下幾行

 
FastCGIExternalServer /var/www/fast-cgi-fake-handler -host 127.0.0.1:9000 
AddType application/x-httpd-fastphp5 .php 
Action application/x-httpd-fastphp5 /fast-cgi-fake-handler 

Action +中的相對路徑+ FastCGIExternalServer中的完整路徑做到了!