想在windows 2003中好好跑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:phpphp-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:PHPphp-cgi.exe" resourceType="Either" />
尤其要注意的一是,這一句最好加在最前面,也就是在<handlles>下面的第一句,避免被其它Handle搶先處理了。
以上配置中,C:phpphp-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,內存占用整體上也少了很多。