【原创】让IIS支持PHP5.3.x的最简便方法+让IIS支持FastCGI的方法
网上有很多文章长篇累牍的说了一堆乱七八糟的配置方案,看的我眼花。。。
我说一下自己的配置方法吧,很简单的。
首先整一个wampserver,直接装好apache(这个用不着),php,mysql,phpmyadmin。
然后打开IIS,双击“本地计算机”。
右键点“网站”,选择“属性”,选择“主目录”,选择“配置”,选择“添加”,点“浏览”,在“文件名”里输入“C:\wamp\bin\php\php5.3.0\php-cgi.exe”并点击打开。“扩展名”中输入“php”。点“确定”、再“确定”。
右键点“Web服务扩展”,选择“添加一个新的Web扩展”,“扩展名”输入“PHP”,点“添加”,输入“C:\wamp\bin\php\php5.3.0\php-cgi.exe”并点“确认”,勾选“设置扩展状态为允许”,点“确定”。
最后到C:\wamp\bin\php\php5.3.0\目录打开php.ini,搜索“cgi.force_redirect =”,然后把前面的分号去掉,等号后面的1改成0。(具体原因可以看ini文件中这段配置的说明,如果不改的话,会报这个错:The specified CGI application misbehaved by not returning a complete set of HTTP headers)
还有就是别忘了给C:\wamp\bin\php\php5.3.0\目录加上IUSR用户的读权限(或许不加也没事)。
这种配置方法用的是cgi方式解析php,据说IIS用FastCGI方式是效率最高的,不过配置比较麻烦,俺就不研究了。
______________________________________________
最近研究了一下如何让IIS支持FastCGI,发现其实很简单,具体配置如下:
首先去http://www.iis.net/downloads/default.aspx?tabid=34&i=1877&g=6这里下载微软fastcgi安装程序。win2003是IIS6,注意下载对应的版本。
然后安装即可,安装程序会在IIS的Web服务扩展中加入FastCGI Handler,然后在windows\system32\inetsrv目录放几个文件,我们主要关注fcgiext.ini和fcgiext.dll
打开fcgiext.ini,在最后加上以下几行:
[Types]
php = PHP
[PHP]
ExePath=C:\wamp\bin\php\php5.3.5\php-cgi.exe
然后到IIS管理器:
双击“本地计算机”,右键点“网站”,选择“属性”,选择“主目录”,选择“配置”,查找之前设置的php,然后把“文件名”改成“C:\windows\system32\inetsrv\fcgiext.dll”,再“确定”。
最后修改php.ini
把fastcgi.impersonate那行前面的注释去掉,并赋值为1。
另外,我在网上看别人有建议说打开cgi.rfc2616_headers的设置,改为1。但实际使用的时候发现这么设置会造成部分图片无法显示,还有部分php页面返回500错误,虽然我也没有特别搞清楚到底是不是这里的问题,但是改成0后所有php应用都正常显示了。所以不建议各位修改这行。
重启一下IIS,然后看看效果吧!