win2003 IIS6配置PHP 5.3.3(fastCGI方式+eAccelerator)+ASP.NET 4.0(MVC3)
直入正題。
這個環境的部署很有講究,折騰了一天,大概說一下思路:
自從哪個PHP的版本開始(5.2也不知道多少),就分了thread-safe版和non-thread-safe版,簡稱就是ts和nts版本,還區分了VC6和VC編譯的版本,我作一下解釋。(可以參見官方:http://windows.php.net/)
VC6是用在Apache服務器上的,而VC9則適用于IIS,這個比較明確,官方也給了明確說明。
ts和nts版本就比較講究了。這個大家可以參考(http://blog.163.com/daizhen_dz@yeah/blog/static/129411342201042992157604/),我也是從這里學習到的。
IIS添加fastCGI模塊,使其能夠得以運行,再配置fastCGI的配置文件,添加對php-cgi.exe的支持。
結論就是,以fastCGI方式運行PHP會得到性能和資源的平衡。
MVC3的站,大都是通過沒有后綴的方式請求的(controller/action的形式),我的解決方式我認為很合理:在PHP站中什么都不改,而針對.NET 4.0的站,添加對*(所有請求)請求的攔截處理,使用aspnet-isapi來處理請求,這樣既不影響PHP性能(不會先經過aspnet的isapi處理),也不影響.NET站的運行。
環境需要以下資源:
對于以上環境做一些解釋
我是從http://www.sitebuddy.com/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,運行后成功。
具體安裝步驟比較復雜,我寫個簡明版的。。主要就是些配置方面的東西,關鍵要把原理搞明白。
打開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\
基本就是這個過程了,這樣就達到了既能跑.NET站,也能跑PHP站的目的了。
posted on 2013-04-22 11:26?原版橘子皮 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/sy890622/archive/2013/04/22/3403057.html
總結
以上是生活随笔為你收集整理的win2003 IIS6配置PHP 5.3.3(fastCGI方式+eAccelerator)+ASP.NET 4.0(MVC3)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《原神》潜能焕发第三天通关方法
- 下一篇: Eclipse for android