程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Windows2003上使用IIS7 Express使用FastCgi運行php

Windows2003上使用IIS7 Express使用FastCgi運行php

編輯:關於PHP編程

     先說一下背景,因為是自己租來的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文件,在配置節下,添加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,內存占用整體上也少了很多。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved