忘记密码?

一键登录

草根吧源码论坛

IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】

查看: 72|回复: 0

IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】

[复制链接]

1717

主题

2203

热度

608

贡献

民审

Rank: 8Rank: 8

发表于 2016-11-17 10:02:17 | 显示全部楼层 |阅读模式 | 百度  360  谷歌 
分享到:
本帖最后由 民审-M 于 2016-11-17 10:13 编辑

FastCGI的<FASTCGI>概观

该<fastCgi>元素包含集合<application>的元素,每个创建一个FastCGI应用程序池定义。Internet信息服务(IIS)7包含的FastCGI组件。此组件为您提供了更高的可靠性和更好的性能,让您运行IIS 7的PHP应用程序框架和其他Web应用程序框架。

最简单的FastCGI应用程序池定义要求您包括完整路径中的一个属性<application>元素定义二进制文件用于特定应用程序框架。对于PHP框架,设置完整路径属性到PHP二进制文件的目录和文件名。

其他属性是可选的,并允许您配置一些其他的参数。这些包括,它被再循环之前的FastCGI工作进程可以处理的请求的最大数目,工作进程的应用程序池的最大数量,和一FastCGI请求可以采取的最大时间量。

注意:为了通过使用FastCGI处理请求,您必须首先映射路径和具体的文件扩展名的FastCGI模块和指定目标FastCGI进程作为脚本处理器。

新的IIS 7.5中

IIS 7.5中添加了以下属性的<fastCgi>/ <application>元素:

  • 该monitorChangesTo属性可以让您指定的文件监视可能影响FastCGI应用程序的行为变化。例如,如果您使用的PHP框架,您可以配置IIS通过指定在该文件的完整路径监视更改php.ini文件monitorChangesTo属性。
  • 该stderrMode属性指定如何IIS 7将处理从通过STDERR流的FastCGI应用程序返回的错误。
  • 该signalBeforeTerminateSeconds属性,您可以配置IIS以等待指定的时间段IIS信号,它需要关闭FastCGI应用之后。这让FastCGI应用程序清理任何设置IIS终止进程之前。
兼容性
笔记
IIS 10.0
该<fastCgi>元素不是在IIS 10.0修改。
IIS 8.5
该<fastCgi>元素没有在IIS 8.5修改。
IIS 8.0
该<fastCgi>元素没有在IIS 8.0修改。
IIS 7.5
在<application>该元素<fastCgi>集合在IIS 7.5与被更新monitorChangesTo,stderrMode和signalBeforeTerminateSeconds属性。
IIS 7.0
该<fastCgi>元素在IIS 7.0中引入的。
IIS 6.0
N / A
建立

要使用FastCGI的环境中,您必须首先安装CGI角色服务。在安装过程中都注册公共网关接口(CGI)角色服务<globalModules>和<modules>元素。不需要执行任何其他步骤来安装的FastCGI环境。

在WINDOWS SERVER 2012或WINDOWS SERVER 2012 R2
  • 在任务栏上,单击服务器管理器。
  • 在服务器管理器,单击管理菜单,然后单击添加角色和功能。
  • 在添加角色和功能向导,单击下一步。选择安装类型,然后单击下一步。选择目标服务器,然后单击下一步。
  • 在服务器角色页面上,展开Web服务器(IIS) ,展开Web服务器,展开应用程序开发,然后选择CGI。点击下一步。
    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_Setup_WinServer2012-small
  • 在选择功能页上,单击下一步。
  • 在确认安装选择页面,点击安装。
  • 在结果页面上,单击关闭。
WINDOWS 8的或WINDOWS 8.1
  • 在开始屏幕上,移动指针一路左下角,右键单击开始按钮,然后点击控制面板。
  • 在控制面板,单击程序和功能,然后单击启用Windows功能打开或关闭。
  • 展开Internet信息服务,展开万维网服务,展开应用程序开发功能,然后选择CGI。
    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_Setup_Win8-small
  • 点击OK。
  • 点击关闭。
在WINDOWS SERVER 2008或WINDOWS SERVER 2008 R2
  • 在任务栏上,单击开始,指向管理工具,然后单击服务器管理器。
  • 在服务器管理器层次结构窗格中,展开角色,然后单击Web服务器(IIS) 。
  • 在Web服务器(IIS)窗格中,滚动到角色服务部分,然后单击添加角色服务。
  • 在选择角色服务的页面添加角色服务向导,选择CGI,然后单击下一步。
    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_application_setup_1-small
  • 在确认安装选择页面,点击安装。
  • 在结果页面上,单击关闭。
WINDOWS VISTA或WINDOWS 7
  • 在任务栏上,单击开始,然后单击控制面板。
  • 在控制面板,单击程序和功能,然后单击打开Windows功能打开或关闭。
  • 展开Internet信息服务,然后选择CGI,然后单击确定。
    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_application_setup_2-small
如何

注意IIS 7.0的用户:有些本节中的步骤可能需要您安装微软管理包的IIS 7.0,其中包括FastCGI设置的用户界面。要安装Microsoft管理包的IIS 7.0,请参阅以下网址:

如何创建一个PHP FASTCGI的全球处理器映射

注:以下步骤将工作之前,必须已经安装,将执行文件路径或您指定的文件扩展名的二进制文件。本例使用可从PHP执行www.php.net

  • 打开Internet信息服务(IIS)管理器:
    • 如果您使用的是Windows Server 2012中或Windows Server 2012 R2:
      • 在任务栏上,单击服务器管理器,单击工具,然后单击Internet信息服务(IIS)管理器。
    • 如果您使用的是Windows 8或Windows 8.1:
      • 按住的Windows键,按字母点ˉx,然后单击控制面板。
      • 点击管理工具,然后双击Internet信息服务(IIS)管理器。
    • 如果您使用的是Windows Server 2008或Windows Server 2008 R2的:
      • 在任务栏上,单击开始,指向管理工具,然后单击Internet信息服务(IIS)管理器。
    • 如果您使用的是Windows Vista或Windows 7:
      • 在任务栏上,单击开始,然后单击控制面板。
      • 双击管理工具,然后双击Internet信息服务(IIS)管理器。

  • 在连接窗格中,单击要配置的FastCGI处理程序映射服务器名称。
  • 在主页窗格中,双击处理程序映射。
    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_application_howto_1-small
  • 在操作窗格中,单击添加模块映射...
    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_application_howto_2-small
  • 输入以下信息:
    • 输入文件扩展名的请求路径文本框。例如,“*的.php”。
    • 点击FastCgiModule在模块下拉列表中。
    • 输入路径中的脚本引擎可执行文件框。例如,“C:\ PHP \ PHP-cgi.exe文件”。
    • 在处理程序映射输入唯一的名称名称框。例如,“PHP-FastCGI的。”

    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_application_howto_3-small
  • 单击请求限制...
    • 选择  调用处理程序只有在请求被映射到。
    • 单击以选中文件或文件夹选项。
    • 点击OK。
      草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_application_howto_12-small
  • 点击OK。
  • 如果系统提示您创建的FastCGI应用程序添加模块映射对话框中,单击是。 注意:这将自动为您刚才创建的处理程序映射FastCGI应用。如果选择否,您可以手动以后创建一个FastCGI应用程序。
    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_application_howto_4-small

如何创建PHP FASTCGI应用

注:以下步骤将工作之前,必须已经安装,将执行文件路径或您指定的文件扩展名的二进制文件。本例使用可从PHP执行www.php.net

注:添加FastCGI应用程序不会自动添加一个处理程序映射。要做到这一点,你需要遵循的步骤如何创建一个PHP的FastCGI处理程序映射这个话题的部分。

  • 打开Internet信息服务(IIS)管理器:
    • 如果您使用的是Windows Server 2012中或Windows Server 2012 R2:
      • 在任务栏上,单击服务器管理器,单击工具,然后单击Internet信息服务(IIS)管理器。
    • 如果您使用的是Windows 8或Windows 8.1:
      • 按住的Windows键,按字母点ˉx,然后单击控制面板。
      • 点击管理工具,然后双击Internet信息服务(IIS)管理器。
    • 如果您使用的是Windows Server 2008或Windows Server 2008 R2的:
      • 在任务栏上,单击开始,指向管理工具,然后单击Internet信息服务(IIS)管理器。
    • 如果您使用的是Windows Vista或Windows 7:
      • 在任务栏上,单击开始,然后单击控制面板。
      • 双击管理工具,然后双击Internet信息服务(IIS)管理器。

  • 在连接窗格中,单击要配置的FastCGI设置服务器名。
  • 在主页窗格中,双击FastCGI设置。
    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_application_howto_5-small
  • 在操作窗格中,单击添加应用程序...
    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_application_howto_6-small
  • 在添加FastCGI应用程序对话框中,输入以下信息:
    • 输入要在脚本引擎的路径完整路径框。例如,“C:\ PHP \ PHP-cgi.exe文件”。
    • 输入FastCGI应用程序请求的最大数目。
      注:对于PHP,这个数目必须较少或等于为PHP的环境,这是通过使用PHP_FCGI_MAX_REQUESTS环境变量配置请求的最大数目。

    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_application_howto_7-small
  • 单击省略号(...)旁边EnvironmentVariables打开环境变量集合编辑器。
  • 在EnvironmentVariables集合编辑器对话框中,单击添加。
    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_application_howto_8-small
  • 输入以下信息,然后单击确定。
    • 输入“PHP_FCGI_MAX_REQUESTS”为名称。
    • 输入“10000”的价值。

    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_application_howto_9-small
  • 单击确定关闭添加FastCGI应用程序对话框。

如何添加FASTCGI的环境变量PHP

注:以下步骤将工作之前,必须已经安装,将执行文件路径或您指定的文件扩展名的二进制文件。本例使用可从PHP执行www.php.net

  • 打开Internet信息服务(IIS)管理器:
    • 如果您使用的是Windows Server 2012中或Windows Server 2012 R2:
      • 在任务栏上,单击服务器管理器,单击工具,然后单击Internet信息服务(IIS)管理器。
    • 如果您使用的是Windows 8或Windows 8.1:
      • 按住的Windows键,按字母点ˉx,然后单击控制面板。
      • 点击管理工具,然后双击Internet信息服务(IIS)管理器。
    • 如果您使用的是Windows Server 2008或Windows Server 2008 R2的:
      • 在任务栏上,单击开始,指向管理工具,然后单击Internet信息服务(IIS)管理器。
    • 如果您使用的是Windows Vista或Windows 7:
      • 在任务栏上,单击开始,然后单击控制面板。
      • 双击管理工具,然后双击Internet信息服务(IIS)管理器。

  • 在连接窗格中,单击要配置的FastCGI设置服务器名。
  • 在主页窗格中,双击FastCGI设置。
    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_application_howto_5-small
  • 突出显示PHP应用程序FastCGI设置面板,然后点击编辑...在操作窗格
    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_application_howto_10-small
  • 在编辑FastCGI应用程序对话框中,单击省略号(...)旁边EnvironmentVariables打开环境变量集合编辑器。
    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_application_howto_11-small
  • 在EnvironmentVariables集合编辑器对话框中,单击添加。
    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_application_howto_8-small
  • 输入以下信息,然后单击确定。
    • 输入“PHP_FCGI_MAX_REQUESTS”为名称。
    • 输入“10000”的价值。

    草根吧 IIS 7.0 7.5 8.0 8.5 10.0 FastCGI的<FASTCGI>综合配置教程【官方】 Internet,信息服务,应用程序,处理器,二进制 精品教程 fastCgi_application_howto_9-small
  • 单击确定关闭添加FastCGI应用程序对话框。
组态

您可以配置<fastCgi>在ApplicationHost.config文件中或在网站级别,服务器级别的元素,在应用层面,还是在Web.config文件中的目录级别。

属性

没有。

子元素
元件
描述
application
可选元素。

添加FastCGI进程池定义的FastCGI进程池定义的集合。
配置示例

以下配置示例增加了对PHP FastCGI应用程序,设置instanceMaxRequests属性设置为“10000”,并设置PHP_FCGI_MAX_REQUESTS环境变量设置为“10000”

  1. <fastCgi>
  2.    <application fullPath="C:\PHP\php-cgi.exe"
  3.          arguments=""
  4.          maxInstances="4"
  5.          idleTimeout="300"
  6.          activityTimeout="30"
  7.          requestTimeout="90"
  8.          instanceMaxRequests="10000"
  9.          protocol="NamedPipe"
  10.          flushNamedPipe="false">
  11.       <environmentVariables>
  12.          <environmentVariable
  13.             name="PHP_FCGI_MAX_REQUESTS"
  14.             value="10000" />
  15.       </environmentVariables>
  16.    </application>
  17. </fastCgi>
复制代码

                                                                                                                             

注:对于PHP的价值PHP_FCGI_MAX_REQUESTS环境变量必须是一个数字,较小或等于指定的值instanceMaxRequests FastCGI的属性<application>元素。

以下配置示例增加了对PHP文件到IIS的全球的FastCGI处理程序映射,并指定完整路径FastCGI的可执行文件。

  1. <configuration>
  2.    <location path="" overrideMode="Allow">
  3.       <system.webServer>
  4.          <handlers>
  5.             <add name="PHP-FastCGI"
  6.                 path="*.php"
  7.                 verb="GET,HEAD,POST"
  8.                 modules="FastCgiModule"
  9.                 scriptProcessor="C:\PHP\php-cgi.exe"
  10.                 resourceType="Either"
  11.                 requireAccess="Script" />
  12.          </handlers>
  13.       </system.webServer>
  14.    </location>
  15. </configuration>
复制代码

                                                                                                                                              

注:FastCGI的设置,可以为每个站点通过使用特殊格式的FastCGI应用程序,并通过处理器映射,这是通过匹配尊贵配置完整路径和参数属性为

  1. <fastCgi>
  2.    <application fullPath="C:\PHP\php-cgi.exe"
  3.       arguments="-d open_basedir=C:\Websites\Website1" />
  4.    <application fullPath="C:\PHP\php-cgi.exe"
  5.       arguments="-d open_basedir=C:\Websites\Website2" />
  6. </fastCgi>

  7. <system.webServer>
  8.    <handlers accessPolicy="Read, Script">
  9.       <add name="PHP via FastCGI 1"
  10.          path="*.php"
  11.          verb="*"
  12.          modules="FastCgiModule"
  13.          scriptProcessor="C:\PHP\php-cgi.exe|-d open_basedir=C:\Websites\Website1"
  14.          resourceType="Unspecified"
  15.          requireAccess="Script" />
  16.       <add name="PHP via FastCGI 2"
  17.          path="*.php"
  18.          verb="*"
  19.          modules="FastCgiModule"
  20.          scriptProcessor="C:\PHP\php-cgi.exe|-d open_basedir=C:\Websites\Website2"
  21.          resourceType="Unspecified"
  22.          requireAccess="Script" />
  23. </handlers>
  24. </system.webServer>
复制代码

                                                                                                                          

其他信息和有关如何为PHP配置FastCGI设置的例子在下面讨论演练:

使用FastCGI主办IIS 7 PHP应用程序

示例代码

下面的代码示例添加对PHP FastCGI应用程序,设置instanceMaxRequests属性设置为“10000”,并设置PHP_FCGI_MAX_REQUESTS环境变量设置为“10000” 每个样本还增加了对PHP文件到IIS的全球的FastCGI处理程序映射,并指定完整路径FastCGI的可执行文件。

  1. appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='C:\PHP\php-cgi.exe',arguments='',maxInstances='4',idleTimeout='300',activityTimeout='30',requestTimeout='90',instanceMaxRequests='10000',protocol='NamedPipe',flushNamedPipe='False']" /commit:apphost

  2. appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='C:\PHP\php-cgi.exe'].environmentVariables.[name='PHP_FCGI_MAX_REQUESTS',value='10000']" /commit:apphost

  3. appcmd.exe set config -section:system.webServer/handlers /+"[name='PHP-FastCGI',path='*.php',verb='GET,HEAD,POST',modules='FastCgiModule',scriptProcessor='C:\PHP\php-cgi.exe',resourceType='Either',requireAccess='Script']" /commit:apphost
复制代码

注意:您必须确保设置提交参数apphost,当您使用Appcmd.exe来配置这些设置。这种承诺的配置设置在ApplicationHost.config文件的相应位置部分。

C#
  1. using System;
  2. using System.Text;
  3. using Microsoft.Web.Administration;

  4. internal static class Sample
  5. {
  6.    private static void Main()
  7.    {
  8.       using (ServerManager serverManager = new ServerManager())
  9.       {
  10.          Configuration config = serverManager.GetApplicationHostConfiguration();

  11.          ConfigurationSection fastCgiSection = config.GetSection("system.webServer/fastCgi");
  12.          ConfigurationElementCollection fastCgiCollection = fastCgiSection.GetCollection();
  13.          ConfigurationElement applicationElement = fastCgiCollection.CreateElement("application");
  14.          applicationElement["fullPath"] = @"C:\PHP\php-cgi.exe";
  15.          applicationElement["arguments"] = @"";
  16.          applicationElement["maxInstances"] = 4;
  17.          applicationElement["idleTimeout"] = 300;
  18.          applicationElement["activityTimeout"] = 30;
  19.          applicationElement["requestTimeout"] = 90;
  20.          applicationElement["instanceMaxRequests"] = 10000;
  21.          applicationElement["protocol"] = @"NamedPipe";
  22.          applicationElement["flushNamedPipe"] = false;

  23.          ConfigurationElementCollection environmentVariablesCollection = applicationElement.GetCollection("environmentVariables");
  24.          ConfigurationElement environmentVariableElement = environmentVariablesCollection.CreateElement("environmentVariable");
  25.          environmentVariableElement["name"] = @"PHP_FCGI_MAX_REQUESTS";
  26.          environmentVariableElement["value"] = @"10000";
  27.          environmentVariablesCollection.Add(environmentVariableElement);
  28.          fastCgiCollection.Add(applicationElement);

  29.          ConfigurationSection handlersSection = config.GetSection("system.webServer/handlers");
  30.          ConfigurationElementCollection handlersCollection = handlersSection.GetCollection();
  31.          ConfigurationElement addElement = handlersCollection.CreateElement("add");
  32.          addElement["name"] = @"PHP-FastCGI";
  33.          addElement["path"] = @"*.php";
  34.          addElement["verb"] = @"GET,HEAD,POST";
  35.          addElement["modules"] = @"FastCgiModule";
  36.          addElement["scriptProcessor"] = @"C:\PHP\php-cgi.exe";
  37.          addElement["resourceType"] = @"Either";
  38.          addElement["requireAccess"] = @"Script";
  39.          handlersCollection.AddAt(0, addElement);

  40.          serverManager.CommitChanges();
  41.       }
  42.    }
  43. }
复制代码

        VB.NET
  1. Imports System
  2. Imports System.Text
  3. Imports Microsoft.Web.Administration

  4. Module Sample

  5.    Sub Main()
  6.       Dim serverManager As ServerManager = New ServerManager
  7.       Dim config As Configuration = serverManager.GetApplicationHostConfiguration

  8.       Dim fastCgiSection As ConfigurationSection = config.GetSection("system.webServer/fastCgi")
  9.       Dim fastCgiCollection As ConfigurationElementCollection = fastCgiSection.GetCollection
  10.       Dim applicationElement As ConfigurationElement = fastCgiCollection.CreateElement("application")
  11.       applicationElement("fullPath") = "C:\PHP\php-cgi.exe"
  12.       applicationElement("arguments") = ""
  13.       applicationElement("maxInstances") = 4
  14.       applicationElement("idleTimeout") = 300
  15.       applicationElement("activityTimeout") = 30
  16.       applicationElement("requestTimeout") = 90
  17.       applicationElement("instanceMaxRequests") = 10000
  18.       applicationElement("protocol") = "NamedPipe"
  19.       applicationElement("flushNamedPipe") = False

  20.       Dim environmentVariablesCollection As ConfigurationElementCollection = applicationElement.GetCollection("environmentVariables")
  21.       Dim environmentVariableElement As ConfigurationElement = environmentVariablesCollection.CreateElement("environmentVariable")
  22.       environmentVariableElement("name") = "PHP_FCGI_MAX_REQUESTS"
  23.       environmentVariableElement("value") = "10000"
  24.       environmentVariablesCollection.Add(environmentVariableElement)
  25.       fastCgiCollection.Add(applicationElement)

  26.       Dim handlersSection As ConfigurationSection = config.GetSection("system.webServer/handlers")
  27.       Dim handlersCollection As ConfigurationElementCollection = handlersSection.GetCollection
  28.       Dim addElement As ConfigurationElement = handlersCollection.CreateElement("add")
  29.       addElement("name") = "PHP-FastCGI"
  30.       addElement("path") = "*.php"
  31.       addElement("verb") = "GET,HEAD,POST"
  32.       addElement("modules") = "FastCgiModule"
  33.       addElement("scriptProcessor") = "C:\PHP\php-cgi.exe"
  34.       addElement("resourceType") = "Either"
  35.       addElement("requireAccess") = "Script"
  36.       handlersCollection.AddAt(0, addElement)

  37.       serverManager.CommitChanges()
  38.    End Sub

  39. End Module
复制代码


VB.NET

  1. Imports System
  2. Imports System.Text
  3. Imports Microsoft.Web.Administration

  4. Module Sample

  5.    Sub Main()
  6.       Dim serverManager As ServerManager = New ServerManager
  7.       Dim config As Configuration = serverManager.GetApplicationHostConfiguration

  8.       Dim fastCgiSection As ConfigurationSection = config.GetSection("system.webServer/fastCgi")
  9.       Dim fastCgiCollection As ConfigurationElementCollection = fastCgiSection.GetCollection
  10.       Dim applicationElement As ConfigurationElement = fastCgiCollection.CreateElement("application")
  11.       applicationElement("fullPath") = "C:\PHP\php-cgi.exe"
  12.       applicationElement("arguments") = ""
  13.       applicationElement("maxInstances") = 4
  14.       applicationElement("idleTimeout") = 300
  15.       applicationElement("activityTimeout") = 30
  16.       applicationElement("requestTimeout") = 90
  17.       applicationElement("instanceMaxRequests") = 10000
  18.       applicationElement("protocol") = "NamedPipe"
  19.       applicationElement("flushNamedPipe") = False

  20.       Dim environmentVariablesCollection As ConfigurationElementCollection = applicationElement.GetCollection("environmentVariables")
  21.       Dim environmentVariableElement As ConfigurationElement = environmentVariablesCollection.CreateElement("environmentVariable")
  22.       environmentVariableElement("name") = "PHP_FCGI_MAX_REQUESTS"
  23.       environmentVariableElement("value") = "10000"
  24.       environmentVariablesCollection.Add(environmentVariableElement)
  25.       fastCgiCollection.Add(applicationElement)

  26.       Dim handlersSection As ConfigurationSection = config.GetSection("system.webServer/handlers")
  27.       Dim handlersCollection As ConfigurationElementCollection = handlersSection.GetCollection
  28.       Dim addElement As ConfigurationElement = handlersCollection.CreateElement("add")
  29.       addElement("name") = "PHP-FastCGI"
  30.       addElement("path") = "*.php"
  31.       addElement("verb") = "GET,HEAD,POST"
  32.       addElement("modules") = "FastCgiModule"
  33.       addElement("scriptProcessor") = "C:\PHP\php-cgi.exe"
  34.       addElement("resourceType") = "Either"
  35.       addElement("requireAccess") = "Script"
  36.       handlersCollection.AddAt(0, addElement)

  37.       serverManager.CommitChanges()
  38.    End Sub

  39. End Module
复制代码
JAVASCRIPT
  1. var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
  2. adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

  3. var fastCgiSection = adminManager.GetAdminSection("system.webServer/fastCgi", "MACHINE/WEBROOT/APPHOST");
  4. var fastCgiCollection = fastCgiSection.Collection;
  5. var applicationElement = fastCgiCollection.CreateNewElement("application");
  6. applicationElement.Properties.Item("fullPath").Value = "C:\\PHP\\php-cgi.exe";
  7. applicationElement.Properties.Item("arguments").Value = "";
  8. applicationElement.Properties.Item("maxInstances").Value = 4;
  9. applicationElement.Properties.Item("idleTimeout").Value = 300;
  10. applicationElement.Properties.Item("activityTimeout").Value = 30;
  11. applicationElement.Properties.Item("requestTimeout").Value = 90;
  12. applicationElement.Properties.Item("instanceMaxRequests").Value = 10000;
  13. applicationElement.Properties.Item("protocol").Value = "NamedPipe";
  14. applicationElement.Properties.Item("queueLength").Value = 1000;
  15. applicationElement.Properties.Item("flushNamedPipe").Value = false;
  16. applicationElement.Properties.Item("rapidFailsPerMinute").Value = 10;

  17. var environmentVariablesCollection = applicationElement.ChildElements.Item("environmentVariables").Collection;
  18. var environmentVariableElement = environmentVariablesCollection.CreateNewElement("environmentVariable");
  19. environmentVariableElement.Properties.Item("name").Value = "PHP_FCGI_MAX_REQUESTS";
  20. environmentVariableElement.Properties.Item("value").Value = "10000";
  21. environmentVariablesCollection.AddElement(environmentVariableElement);
  22. fastCgiCollection.AddElement(applicationElement);

  23. var handlersSection = adminManager.GetAdminSection("system.webServer/handlers", "MACHINE/WEBROOT/APPHOST");
  24. var handlersCollection = handlersSection.Collection;
  25. var addElement = handlersCollection.CreateNewElement("add");
  26. addElement.Properties.Item("name").Value = "PHP-FastCGI";
  27. addElement.Properties.Item("path").Value = "*.php";
  28. addElement.Properties.Item("verb").Value = "GET,HEAD,POST";
  29. addElement.Properties.Item("modules").Value = "FastCgiModule";
  30. addElement.Properties.Item("scriptProcessor").Value = "C:\\PHP\\php-cgi.exe";
  31. addElement.Properties.Item("resourceType").Value = "Either";
  32. addElement.Properties.Item("requireAccess").Value = "Script";
  33. handlersCollection.AddElement(addElement, 0);

  34. adminManager.CommitChanges();
复制代码
VBSCRIPT
  1. Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
  2. adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

  3. Set fastCgiSection = adminManager.GetAdminSection("system.webServer/fastCgi", "MACHINE/WEBROOT/APPHOST")
  4. Set fastCgiCollection = fastCgiSection.Collection
  5. Set applicationElement = fastCgiCollection.CreateNewElement("application")
  6. applicationElement.Properties.Item("fullPath").Value = "C:\PHP\php-cgi.exe"
  7. applicationElement.Properties.Item("arguments").Value = ""
  8. applicationElement.Properties.Item("maxInstances").Value = 4
  9. applicationElement.Properties.Item("idleTimeout").Value = 300
  10. applicationElement.Properties.Item("activityTimeout").Value = 30
  11. applicationElement.Properties.Item("requestTimeout").Value = 90
  12. applicationElement.Properties.Item("instanceMaxRequests").Value = 10000
  13. applicationElement.Properties.Item("protocol").Value = "NamedPipe"
  14. applicationElement.Properties.Item("queueLength").Value = 1000
  15. applicationElement.Properties.Item("flushNamedPipe").Value = false
  16. applicationElement.Properties.Item("rapidFailsPerMinute").Value = 10

  17. Set environmentVariablesCollection = applicationElement.ChildElements.Item("environmentVariables").Collection
  18. Set environmentVariableElement = environmentVariablesCollection.CreateNewElement("environmentVariable")
  19. environmentVariableElement.Properties.Item("name").Value = "PHP_FCGI_MAX_REQUESTS"
  20. environmentVariableElement.Properties.Item("value").Value = "10000"
  21. environmentVariablesCollection.AddElement(environmentVariableElement)
  22. Call fastCgiCollection.AddElement(applicationElement)

  23. Set handlersSection = adminManager.GetAdminSection("system.webServer/handlers", "MACHINE/WEBROOT/APPHOST")
  24. Set handlersCollection = handlersSection.Collection
  25. Set addElement = handlersCollection.CreateNewElement("add")
  26. addElement.Properties.Item("name").Value = "PHP-FastCGI"
  27. addElement.Properties.Item("path").Value = "*.php"
  28. addElement.Properties.Item("verb").Value = "GET,HEAD,POST"
  29. addElement.Properties.Item("modules").Value = "FastCgiModule"
  30. addElement.Properties.Item("scriptProcessor").Value = "C:\PHP\php-cgi.exe"
  31. addElement.Properties.Item("resourceType").Value = "Either"
  32. addElement.Properties.Item("requireAccess").Value = "Script"
  33. Call handlersCollection.AddElement(addElement, 0)

  34. adminManager.CommitChanges()
复制代码



帖子地址: 

本文来源于草根吧源码论坛 www.caogen8.co,欢迎大家下载。
如果您没有贡献需要充值,可以直接在线充值,点击充值
如果你需要加入本站赞助VIP会员,可以直接在线开通,点击开通
如果找不到您要的资源,请搜索一下,点击搜索
回复

举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆 用百度帐号登录 一键登录:

本版积分规则

收藏帖子 返回列表 搜索
快速回复 返回顶部 返回列表