原文連結:Hosting FastCGI Applications
Windows Azure 支援 Internet Information Server (IIS) 7.0 FastCGI模組,
以便於開發人員運行那些使用解釋型語言開發的應用,比如:PHP或本地化代碼.
為擷取一個運行FastCGI 應用web role宿主,您必須:
. 在service定義檔案中設定enableNativeCodeExecution
. 在開發環境和Windows Azure啟用FastCGI
. 打包您項目中要用的解析器
IIS 7.0支援FastCGI 的標準實現。更多關於FastCGI使用的詳細資料,參見說明
文檔。 http://www.fastcgi.com/drupal/node/6
啟用FastCGI
要啟用IIS FastCGI模組,請按下列步驟:
. 在IIS上啟用CGI。更多資訊參見 Getting Started with the Windows Azure SDK
. 安裝IIS 7.0中的如下FastCGI 工具:http://support.microsoft.com/kb/967131.
. 添加一個名為web.roleConfig的設定檔到您的項目中。
. 配置FastCGI handlers。
建立web.roleConfig 檔案
使用web.roleConfig檔案可以自動化配置IIS以便於在您的本地開發環境和Windows
Azure運行FastCGI。該檔案中的路徑設定指向您所使用的web role的解析器。
要啟用FastCGI,請在您的根目錄下包含該web.roleConfig檔案並與項目一起打包
發布。注意web.roleConfig是一個可選檔案,它僅在您啟用FastCGI時才需要。
在您的 web.roleConfig檔案中,指定解析器的絕對路徑。要指定該路徑,可以在解
析器檔案名稱前加上%RoleRoot%環境變數。%RoleRoot% 變數會返回當前正在啟動並執行
role所在的絕對路徑。該路徑對應您web role項目的根目錄,同時也是項目web.config
檔案和web.roleConfig的所在位置。
下面是一些正確的web.roleConfig檔案樣本。在您的檔案中,用相對路徑和解析器
檔案名稱來替換myinterpreter.exe。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.webServer>
<fastCgi>
<application fullPath="%RoleRoot%\myinterpreter.exe"/>
</fastCgi>
</system.webServer>
</configuration>
如你正在使用Visual Studio來開發和調試您的 web role,請確保在Build Action
屬性頁面中的Content裡使用web.roleConfig。要設定Build Action,在該解決方案瀏覽器
中右擊該檔案名稱,選擇Properties,然後選擇Build Action中Content的值。
當您要在開發環境或Windows Azure中發布該項目時,web.roleConfig的值將會合
併到IISapplicationHost.config檔案中,然後啟用CGI。
注意:
在web.roleConfig檔案中僅限使用FastCGI的設定。在Windows Azure中,不能
添加其它的伺服器設定用於間接配置applicationHost.config檔案。
為FastCGI配置Handlers
一個handler用於處理一種特定的資源請求。當一個包含副檔名的請求被伺服器
處理時,通過配置handler,您可以指示解析器處理特定的副檔名檔案。比如,當您想使
用PHP解析器來處理包有以.php為副檔名的請求時,您可以建立handler來通知IIS將這些
請求交由該解析器進行處理。
您可在項目的web.config檔案裡配置,在System.webServer節點下設定web role
來運行FastCGI應用。FastCGI模組會使用您所建立的FastCGI handler來處理每個請求。
要想向web.config檔案中添加handlers,需要將handlers元素放在system.webServer
元素中。下面的例子顯示如何添加一個.php檔案擴充handler。
<system.webServer>
…
<handlers>
…
<add name="PHP via FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="%RoleRoot%\php\php-cgi.exe" resourceType="Unspecified" />
</handlers>
</system.webServer>
See IIS 7.0: handlers Element (IIS Settings Schema)
將解析器與項目一起打包
你必須將要使用的FastCGI與您的項目放在一起。為了讓Windows Azure支援該解析器,
須以xcopy方式進行布署。
解析器的位置要對應相對路徑和檔案名稱。而該檔案名稱就是在webRole.config中指定的
應用程式的完整路徑屬性。
作者: daizhj,代震軍,LaoD
Tags: FastCGI,php,Host
網址: http://daizhj.cnblogs.com/
原文連結:http://www.cnblogs.com/daizhj/archive/2009/06/24/1510089.html