win IIS6配置PHP 5.3.3(fastCGI方式+eAccelerator)+ 4.0(MVC3)
直入正题。
这个环境的部署很有讲究,折腾了一天,大概说一下思路:
自从哪个PHP的版本开始(5.2也不知道多少),就分了thread-safe版和non-thread-safe版,简称就是ts和nts版本,还区分了VC6和VC编译的版本,我作一下解释。(可以参见官方:/)
VC6是用在Apache服务器上的,而VC9则适用于IIS,这个比较明确,官方也给了明确说明。
ts和nts版本就比较讲究了。这个大家可以参考(/daizhen_dz@yeah/blog/static/12941134242992157604/),我也是从这里学习到的。
IIS添加fastCGI模块,使其能够得以运行,再配置fastCGI的配置文件,添加对php-cgi.exe的支持。
结论就是,以fastCGI方式运行PHP会得到性能和资源的平衡。
MVC3的站,大都是通过没有后缀的方式请求的(controller/action的形式),我的解决方式我认为很合理:在PHP站中什么都不改,而针对.NET 4.0的站,添加对*(所有请求)请求的拦截处理,使用aspnet-isapi来处理请求,这样既不影响PHP性能(不会先经过aspnet的isapi处理),也不影响.NET站的运行。
环境需要以下资源:
fastCGI for IIS(微软官方有下) .NET 4.0 Runtime(官方有下) PHP 5.3.3(为什么要这个版本,后续会解释,下载需要从中windows的PHP里,archives中找,/downloads/releases/archives/) eAccelerator binary for PHP 5.3.3(一开始果断装了最新版的5.4.12,但是eAccelerator自己编译有点麻烦,官方的安装教程是源码安装的,但是服务器上哪来的VS,所以就通过二进制安装,直接找编译好的
对于以上环境做一些解释
只要是.NET 4.0,就不需要额外安装MVC3了,里面自带了,如果是4.0以下版本,还需要装MVC PHP和eAccelerator的版本是很有讲究的。官方的安装教程(/eaccelerator/eaccelerator/wiki)教你的是从源码安装,linux下很合理,windows服务器上哪来的VS给你编译,所以就开始找binary版本(编译好的DLL)了,渠道可以参考官方的(/eaccelerator/eaccelerator/wiki/InstallFromBinary)。
我是从/PHP/Accelerators/eAccelerator_windows_binaries_builds 这里下载的,这个哥们编译了好多版本的eAccelerator,但是最新的版本也只能支持到PHP 5.3.3。
我尝试了用5.4.12加载eAccelerator for PHP 5.3.3,结果证明不行,PHP错误日志输出版本不匹配,也尝试了低版本的PHP,依然不行。因此我还是将PHP降级到5.3.3,运行后成功。
具体安装步骤比较复杂,我写个简明版的。。主要就是些配置方面的东西,关键要把原理搞明白。
PHP下好,放在c:\php里,PHP配置不详解了,再配个eAccelerator。 安装IIS,记得把勾上 打开IIS,添加fastCGI扩展(IIS7默认就带的,win的IIS6得自己配上),不会的话网上搜 让fastCGI支持php cgi扩展。
打开C:\WINDOWS\system32\inetsrv,这是IIS fastCGI的目录,修改fcgiext.ini文件,末尾添上
[Types]php=PHP[PHP]ExePath=C:\PHP\php-cgi.exeInstanceMaxRequests=10000ActivityTimeout=600RequestTimeout=600EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000,PHPRC:C:\PHP\
添加PHP网站,啥都不用配就行了 添加.NET网站。选好版本,假设4.0。为了能处理没有后缀的请求,在”主目录”里”配置”,”映射”,下面那块”通配符应用程序映射”,添加一条 “C:\WINDOWS\\Framework\v4.0.30319\aspnet_isapi.dll“,然后取消勾选”检查文件是否存在”。
基本就是这个过程了,这样就达到了既能跑.NET站,也能跑PHP站的目的了。
posted on -04-22 11:26原版橘子皮 阅读(...) 评论(...) 编辑 收藏
如果觉得《win IIS6配置PHP 5.3.3(fastCGI方式+eAccelerator)+ASP.NET 4.0(MVC3)》对你有帮助,请点赞、收藏,并留下你的观点哦!