1.apache2.4之後能夠編譯單獨的模塊可使用fastcgi和phpfpm進行配合,打開如下的模塊便可
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
2.php5.3.3之後能夠能夠直接加入編譯選項--enable-fpm便可打開php-fpm模式
3.php5.3.3之前,好比php5.2.17須要添加php-fpm模式補丁編譯安裝(php5.2.X沒有對應的apache版本與之匹配使用,多是沒有對應的方法,nginx能夠正常配合使用)
測試了apache2.2.15和apache2.4.9和Php5.2.17以php-fpm的模式共存,報錯以下:
No input file specified
如下是關於mod_fcgid,mod_fastcgi的說明:
apt-search以後發現有兩個fastcgi模塊:一個是mod_fcgid,一個是mod_fastcgi,用哪一個?先搞清楚這兩個再說。
一、mod_fastcgi是FastCGI.com的項目,使用的是FastCGI受權條款。mod_fcgid是Apache基金會負責的項目,使用的是Apache-2.0受權條款。所以,不只主要負責單位不一樣,其受權方式也不一樣。
二、mod_fastcgi的受權不是標準的自由/開放源碼受權條款,因此顯得與其餘受權條款格格不入,再加上Linux distribution套件管理政策的因素,使得mod_fastcgi難以全面進入全部Distribution官方庫。網上會發現說mod_fastcgi幾乎沒有再繼續開發了,所以也使得網路上許多人轉而推薦mod_fcgid。其實這是最大的誤解。官方說法是,FastCGI protocol 是一個輕量級且成熟的通信協定,因此不太須要再額外加上新功能,而目前的工做主要在於瑕疵修復,也就幾乎沒有任何開發進展。
三、雖然mod_fastcgi與mod_fcgid都支援FastCGI protocol,但設計的概念不一樣。mod_fcgid的理念是快速的結束FastCGI server並再快速的產生一個。這個方法與FastCGI protocol初衷不一樣,FastCGI protocol是但願可以容許long-running request。以PHP 應用爲例,爲了加速PHP 效能,一般會使用bytecode/opcode cache,例如APC、eAccelerator 或Xcache 等。但爲了共享cache,意謂着process/request 必須在同一個shared cache中,而沒法跨不一樣的FastCGI or FCGI process。所以在設計上,只能容許一個PHP process啓動,而後由此spawn多個children process,使得children 可以享用parent的bytecode/opcode。
四、PHP的使用者如今已不須要在mod_fastcgi及mod_fcgid之間做選擇,由於PHP 5.3.3以後提供的PHP-FPM (PHP FastCGI Process Manager),可以更有效率的解決這個問題。何況PHP-FPM使用的是標準BSD-2-Clause License (BSD兩款受權),是個互惠要求性低且相容性高的受權條款。 php