由于某种需求,多是由于早期的项目须要低版本的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,单一的线程运行程序,选择非线程安全版