} } }

    Windows2003上应用IIS7 Express应用FastCgi运行php

    添加时间:2013-5-28 点击量:

         先说一下靠山,因为是本身租来的VPS经管代码、文档及跑一些本身用的一些办事法度,为了便宜又稳定就推敲租了台windows2003的vps,内存统共只1G,很捉襟见肘。


         在Web办事这一块,同一台装了2003的办事器上,须要跑PHP及ASP.NET,IIS6上安装了PHP后,加装Rewrite组件,可以较正常的跑wordpress,但后出处于rewrite组件过期了,去网上找了各类版本的安装,仍然无用,老是提示已过期。


         于是只好推敲用用nginx做的反向,动态解析转向到IIS6及Apache上,但如许整体内存占用看起来有点大,于是停用了Apache,转而用nginx加PHP-cgi.exe来跑wordpress,发明接见速度似乎提拔了一些,然则php过程动不动就主动退出,于是又写个经管php-cgi.exe的守护过程。后来,nginx又不正常了,时不时出点小毛病,而php-cgi用守护过程只启动一个过程,也时常出题目,若是启动一堆的话,加上守护过程与php-cgi所占用的内存,还不如直接nginx转apache算了。


         总之,断定在windows下,想好好跑php,又要节俭内存,真的不轻易。


         然后推敲到IIS7.5 Express可以在WIN2003上跑,不单能以fastcgi的体式格式支撑php,还自带Rewrite组件,只需简单改改web.config的rule规矩就可以了。


         于是百度了IIS7.5 Express后,安装,还须要对applicationHost.config进行设备,起首得找到这个文件在哪里,若是能在我的文档中IIS7Express目次下找到,那就是它了,不然应当就是在IIS7 Express的安装目次下。


         1、先批改:defaultDocument节,参加 <add value=index.php />



    <defaultDocument enabled=true>
    
    <files>
    <add value=Default.htm />
    <add value=Default.asp />
    <add value=index.htm />
    <add value=index.html />
    <add value=iisstart.htm />
    <add value=default.aspx />
    <add value=index.php />
    </files>
    </defaultDocument>



         2、找到fastcgi节。



    <fastCgi>
    
    <application fullPath=C:\php\php-cgi.exe monitorChangesTo=php.ini activityTimeout=600 requestTimeout=600 instanceMaxRequests=10000>
    <environmentVariables>
    <environmentVariable name=PHP_FCGI_MAX_REQUESTS value=10000 />
    <environmentVariable name=PHPRC value=C:Program Files (x86)iis expressPHPv5.4 />
    </environmentVariables>
    </application>
    </fastCgi>


       3、找到handlles,参加



     <add name=PHP_FastCGI path=.php verb=GET,HEAD,POST modules=FastCgiModule scriptProcessor=C:\PHP\php-cgi.exe resourceType=Either />
    


        尤其要重视的一是,这一句好加在最前面,也就是在<handlles>下面的第一句,避免被其它Handle抢先处理惩罚了。


        以上设备中,C:\php\php-cgi.exe 的项目组调换成本身的php文件夹中的php-cgi.exe的地位。


      4、在<site>设备节下,直接批改站点信息,或直接用appcmd.exe add site来添加站点。



      5、找到诸如wordpress的安装文件夹,创建一个web.config文件,在configuration设备节下,添加Gzip紧缩规矩。



    <system.webServer>
    
    <urlCompression doStaticCompression=true doDynamicCompression=true />
    </system.webServer>


     6、同样在web.config中,Wordpress的rewrite完全的web.config文件内容如下:



    <configuration>
    
    <system.webServer>
    <rewrite>
    <rules>
    <rule name=wordpress patternSyntax=Wildcard>
    <match url= />
    <conditions>
    <add input={REQUEST_FILENAME} matchType=IsFile negate=true />
    <add input={REQUEST_FILENAME} matchType=IsDirectory negate=true />
    </conditions>
    <action type=Rewrite url=index.php />
    </rule>
    </rules>
    </rewrite>
    </system.webServer>
    <system.webServer>
    <urlCompression doStaticCompression=true doDynamicCompression=true />
    </system.webServer>
    </configuration>


     如许就完全设备完毕了,然后在IIS7 Express目次下,找到IISExpress.exe,直接双击运行,或者用号令行来履行指定加载哪个站点. 



    iisexpress.exe /site:站点名称1
    
    iisexpress.exe /site:站点名称2


     接见一下,就会发明接见速度比在windows下应用apache要快得多,并且少跑一个nginx,内存占用整体上也少了很多。

    所有随风而逝的都属于昨天的,所有历经风雨留下来的才是面向未来的。—— 玛格丽特·米切尔 《飘》
    分享到: