簡體   English   中英

在Apache和NGINX之間共享PHP-CGI

[英]Sharing PHP-CGI between Apache and NGINX

我已經在NGINX提供的fastcgi后端上的網站上運行了我的大多數PHP應用程序。 我有一個新的應用程序,它似乎與Apache集成得很好。 例如,它嚴重依賴於動態編寫的.htaccess文件。 我正在努力對其進行修改,以使其能夠與NGINX一起使用,但這還沒有准備好。 同時,我將讓NGINX代理直接將與該路徑的所有連接直接傳遞給Apache,並讓Apache處理它。

然而,我在一個內存有限的VPS,並(使用更多的內存為他們的 APC緩存)我寧願不運行NGINX(用自己的APC緩存)一組PHP,CGI程序的,另一個是Apache的。 有人在兩者之間共享PHP有運氣嗎?

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之后處理的,但是我不知道如何更改。

問題解決了。 訣竅是使用以下幾行

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中的完整路徑做到了!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM