由於某種需求,多是由於早期的項目須要低版本的php,和目前開發所用的版本不太一致,咱們須要給不一樣的虛擬主機配置不一樣版本的PHP。避免去額外配置多個Apache,等iis和apache共存的麻煩。php
下文引量說明:html
D:/Apache/ Apache安裝目錄apache
D:/php53/ PHP5.3版本目錄,以上版本類同windows
D:/WEB/* 虛擬主機主目錄api
#準備工做安全
測試系統(windows7x64)服務器
所需文件 apache2.2(x86)、PHP(nts)、fcgid(mod_fcgid-2.3.6-win32-x86)app
1.常規手動部署apache方法(不會apache配置的請先移步看下Apache基本手工配置方法),解壓fcgid,取其mod_fcgid.so至modules目錄ide
PHP各版本解壓到不一樣目錄並配置,任意位置,方便便可。測試
2.打開httpd.conf 註釋掉如下相似配置
#LoadModule php5_module "D:/php53/php5apache2_2.dll" #PHPIniDir "D:/php53/"
3.增長配置(尾部或中部便可)
#加載fcgid擴展模塊(額外說明,fcgid根據實際apache版本對應,apache2版本測試2.3.6正常) LoadModule fcgid_module modules/mod_fcgid.so #添加映射 AddHandler fcgid-script .fcgi .php # 設置PHP_FCGI_MAX_REQUESTS大於或等於FcgidMaxRequestsPerProcess,防止php-cgi進程在處理完全部請求前退出 FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000 #php-cgi每一個進程的最大請求數 FcgidMaxRequestsPerProcess 1000 #php-cgi最大的進程數 FcgidMaxProcesses 3 #最大執行時間 FcgidIOTimeout 120 FcgidIdleTimeout 120 #限制最大請求字節 (單位b) FcgidMaxRequestLen 2097152 AddType application/x-httpd-php .php #------這裏是默認虛擬主機配置 #php.ini的存放目錄 FcgidInitialEnv PHPRC "D:/php5.4.4/" #php-cgi的路徑 FcgidWrapper "D:/php5.4.4/php-cgi.exe" .php
4.修改添加執行權限(如若否則,可能會提示HTTP錯誤,禁止訪問403)
ExecCGI 爲附加值
<Directory /> Options FollowSymLinks ExecCGI AllowOverride None Order deny,allow Deny from all </Directory>
5. 虛擬主機文件配置 (每一個虛擬主機獨立的配置段中只須要更改其配置版本路徑便可,如下配置爲PHP5.3.1虛擬主機配置)
<VirtualHost *:80> ServerName "apihost" ServerAlias www.apihost.com api.apihost.com FcgidInitialEnv PHPRC "D:/php5.3.1/" FcgidWrapper "D:/php5.3.1/php-cgi.exe" .php DocumentRoot "D:/WEB/apihost/wwwroot/" ErrorLog "D:/WEB/apihost/log/error.log" CustomLog "D:/WEB/apihost/log/access.log" common </VirtualHost>
重啓Apache完工!
以上內容爲小編測試使用記錄,網上相似的文章並很少,有其餘默認CGI配置方式+htaccess配置過程,經小測試沒有成功。
若是你有更好的方法能夠在底部留言哦!
附件下載:mod_fcgid-2.3.6-win32-x86
#如下爲小編整理的引文,供你們參考使用。
1.mod_fcgid指令的中文翻譯
http://blog.csdn.net/xuejiazhi/article/details/9022961
2.mod_fcgid下載地址(vc10以上)
http://www.apachelounge.com/download/VC10/
3.apache+php多版本共存解決方案
http://www.zhixing123.cn/php/19008.html
4.apache多版本php配置過程
http://www.cnblogs.com/xiaoyaoxia/archive/2011/09/29/2195434.html
5.WampServer中Apache使用FastCGI模式跑PHP5.3nts版
http://my.oschina.net/Twitter/blog/210044
6.PHP中VC六、VC九、TS、NTS版本的區別與用法詳解
http://www.jb51.net/article/42422.htm
補充:ISAPI來執行PHP,每個請求不會當即結束,選擇線程安全版
FastCGI執行PHP,單一的線程運行程序,選擇非線程安全版