[翻译]在云端Host FastCGI 应用

      原文链接: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

 

posted @ 2009-06-24 12:02  代震军  阅读(2476)  评论(1编辑  收藏  举报