win2003 IIS6配置PHP 5.3.3(fastCGI方式+eAccelerator)+ASP.NET 4.0(MVC3)
直入正題。
這個(gè)環(huán)境的部署很有講究,折騰了一天,大概說(shuō)一下思路:
自從哪個(gè)PHP的版本開(kāi)始(5.2也不知道多少),就分了thread-safe版和non-thread-safe版,簡(jiǎn)稱(chēng)就是ts和nts版本,還區(qū)分了VC6和VC編譯的版本,我作一下解釋。(可以參見(jiàn)官方:http://windows.php.net/)
VC6是用在Apache服務(wù)器上的,而VC9則適用于IIS,這個(gè)比較明確,官方也給了明確說(shuō)明。
ts和nts版本就比較講究了。這個(gè)大家可以參考(http://blog.163.com/daizhen_dz@yeah/blog/static/129411342201042992157604/),我也是從這里學(xué)習(xí)到的。
IIS添加fastCGI模塊,使其能夠得以運(yùn)行,再配置fastCGI的配置文件,添加對(duì)php-cgi.exe的支持。
結(jié)論就是,以fastCGI方式運(yùn)行PHP會(huì)得到性能和資源的平衡。
MVC3的站,大都是通過(guò)沒(méi)有后綴的方式請(qǐng)求的(controller/action的形式),我的解決方式我認(rèn)為很合理:在PHP站中什么都不改,而針對(duì).NET 4.0的站,添加對(duì)*(所有請(qǐng)求)請(qǐng)求的攔截處理,使用aspnet-isapi來(lái)處理請(qǐng)求,這樣既不影響PHP性能(不會(huì)先經(jīng)過(guò)aspnet的isapi處理),也不影響.NET站的運(yùn)行。
環(huán)境需要以下資源:
對(duì)于以上環(huán)境做一些解釋
我是從http://www.sitebuddy.com/PHP/Accelerators/eAccelerator_windows_binaries_builds 這里下載的,這個(gè)哥們編譯了好多版本的eAccelerator,但是最新的版本也只能支持到PHP 5.3.3。
我嘗試了用5.4.12加載eAccelerator for PHP 5.3.3,結(jié)果證明不行,PHP錯(cuò)誤日志輸出版本不匹配,也嘗試了低版本的PHP,依然不行。因此我還是將PHP降級(jí)到5.3.3,運(yùn)行后成功。
具體安裝步驟比較復(fù)雜,我寫(xiě)個(gè)簡(jiǎn)明版的。。主要就是些配置方面的東西,關(guān)鍵要把原理搞明白。
打開(kāi)C:\WINDOWS\system32\inetsrv,這是IIS fastCGI的目錄,修改fcgiext.ini文件,末尾添上
[Types] php=PHP[PHP] ExePath=C:\PHP\php-cgi.exe InstanceMaxRequests=10000 ActivityTimeout=600 RequestTimeout=600 EnvironmentVars=PHP_FCGI_MAX_REQUESTS:10000,PHPRC:C:\PHP\
基本就是這個(gè)過(guò)程了,這樣就達(dá)到了既能跑.NET站,也能跑PHP站的目的了。
posted on 2013-04-22 11:26?原版橘子皮 閱讀(...) 評(píng)論(...) 編輯 收藏轉(zhuǎn)載于:https://www.cnblogs.com/sy890622/archive/2013/04/22/3403057.html
總結(jié)
以上是生活随笔為你收集整理的win2003 IIS6配置PHP 5.3.3(fastCGI方式+eAccelerator)+ASP.NET 4.0(MVC3)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《原神》潜能焕发第三天通关方法
- 下一篇: (译)利用ASP.NET加密和解密Web