民审-M

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

作者:民审-M   发布时间:2016-11-17 10:02   回复数:0   浏览数:503
民审-M
5030民审-M金牌草根
2016-11-17 10:02:17
5030 2016-11-17 10:02:17
本帖最后由 民审-M 于 2016-11-17 10:13 编辑

FastCGI的<FASTCGI>概观[p=24, null, left]该<fastCgi>元素包含集合<application>的元素,每个创建一个FastCGI应用程序池定义。Internet信息服务(IIS)7包含的FastCGI组件。此组件为您提供了更高的可靠性和更好的性能,让您运行IIS 7的PHP应用程序框架和其他Web应用程序框架。[/p][p=24, null, left]最简单的FastCGI应用程序池定义要求您包括完整路径中的一个属性<application>元素定义二进制文件用于特定应用程序框架。对于PHP框架,设置完整路径属性到PHP二进制文件的目录和文件名。[/p][p=24, null, left]其他属性是可选的,并允许您配置一些其他的参数。这些包括,它被再循环之前的FastCGI工作进程可以处理的请求的最大数目,工作进程的应用程序池的最大数量,和一FastCGI请求可以采取的最大时间量。[/p][p=24, null, left]注意:为了通过使用FastCGI处理请求,您必须首先映射路径和具体的文件扩展名的FastCGI模块和指定目标FastCGI进程作为脚本处理器。[/p]新的IIS 7.5中[p=24, null, left]IIS 7.5中添加了以下属性的<fastCgi>/ <application>元素:[/p]

    [*]该monitorChangesTo属性可以让您指定的文件监视可能影响FastCGI应用程序的行为变化。例如,如果您使用的PHP框架,您可以配置IIS通过指定在该文件的完整路径监视更改php.ini文件monitorChangesTo属性。
    [*]该stderrMode属性指定如何IIS 7将处理从通过STDERR流的FastCGI应用程序返回的错误。
    [*]该signalBeforeTerminateSeconds属性,您可以配置IIS以等待指定的时间段IIS信号,它需要关闭FastCGI应用之后。这让FastCGI应用程序清理任何设置IIS终止进程之前。
兼容性[tr=transparent][td]版[tr=transparent][td]IIS 10.0[tr=transparent][td]IIS 8.5[tr=transparent][td]IIS 8.0[tr=transparent][td]IIS 7.5[tr=transparent][td]IIS 7.0[tr=transparent][td]IIS 6.0
笔记
该<fastCgi>元素不是在IIS 10.0修改。
该<fastCgi>元素没有在IIS 8.5修改。
该<fastCgi>元素没有在IIS 8.0修改。
在<application>该元素<fastCgi>集合在IIS 7.5与被更新monitorChangesTo,stderrMode和signalBeforeTerminateSeconds属性。
该<fastCgi>元素在IIS 7.0中引入的。
N / A
建立[p=24, null, left]要使用FastCGI的环境中,您必须首先安装CGI角色服务。在安装过程中都注册公共网关接口(CGI)角色服务<globalModules>和<modules>元素。不需要执行任何其他步骤来安装的FastCGI环境。[/p]在WINDOWS SERVER 2012或WINDOWS SERVER 2012 R2

    [*]在任务栏上,单击服务器管理器。
    [*]在服务器管理器,单击管理菜单,然后单击添加角色和功能。
    [*]在添加角色和功能向导,单击下一步。选择安装类型,然后单击下一步。选择目标服务器,然后单击下一步。
    [*]在服务器角色页面上,展开Web服务器(IIS) ,展开Web服务器,展开应用程序开发,然后选择CGI。点击下一步。
    [color=rgb(28, 160, 218)]
    [*]在选择功能页上,单击下一步。
    [*]在确认安装选择页面,点击安装。
    [*]在结果页面上,单击关闭。
WINDOWS 8的或WINDOWS 8.1

    [*]在开始屏幕上,移动指针一路左下角,右键单击开始按钮,然后点击控制面板。
    [*]在控制面板,单击程序和功能,然后单击启用Windows功能打开或关闭。
    [*]展开Internet信息服务,展开万维网服务,展开应用程序开发功能,然后选择CGI。
    [color=rgb(28, 160, 218)]
    [*]点击OK。
    [*]点击关闭。
在WINDOWS SERVER 2008或WINDOWS SERVER 2008 R2

    [*]在任务栏上,单击开始,指向管理工具,然后单击服务器管理器。
    [*]在服务器管理器层次结构窗格中,展开角色,然后单击Web服务器(IIS) 。
    [*]在Web服务器(IIS)窗格中,滚动到角色服务部分,然后单击添加角色服务。
    [*]在选择角色服务的页面添加角色服务向导,选择CGI,然后单击下一步。
    [color=rgb(28, 160, 218)]
    [*]在确认安装选择页面,点击安装。
    [*]在结果页面上,单击关闭。
WINDOWS VISTA或WINDOWS 7

    [*]在任务栏上,单击开始,然后单击控制面板。
    [*]在控制面板,单击程序和功能,然后单击打开Windows功能打开或关闭。
    [*]展开Internet信息服务,然后选择CGI,然后单击确定。
    [color=rgb(28, 160, 218)]
如何[p=24, null, left]注意IIS 7.0的用户:有些本节中的步骤可能需要您安装微软管理包的IIS 7.0,其中包括FastCGI设置的用户界面。要安装Microsoft管理包的IIS 7.0,请参阅以下网址:[/p]如何创建一个PHP FASTCGI的全球处理器映射[p=24, null, left]注:以下步骤将工作之前,必须已经安装,将执行文件路径或您指定的文件扩展名的二进制文件。本例使用可从PHP执行[color=rgb(28, 160, 218)]www.php.net。[/p]

    [*]打开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处理程序映射服务器名称。
[*]在主页窗格中,双击处理程序映射。
[color=rgb(28, 160, 218)]
[*]在操作窗格中,单击添加模块映射...
[color=rgb(28, 160, 218)]
[*]输入以下信息:

    [*]输入文件扩展名的请求路径文本框。例如,“*的.php”。
    [*]点击FastCgiModule在模块下拉列表中。
    [*]输入路径中的脚本引擎可执行文件框。例如,“C:\ PHP \ PHP-cgi.exe文件”。
    [*]在处理程序映射输入唯一的名称名称框。例如,“PHP-FastCGI的。”

[color=rgb(28, 160, 218)][*]单击请求限制...

    [*]选择  调用处理程序只有在请求被映射到。
    [*]单击以选中文件或文件夹选项。
    [*]点击OK。
    [color=rgb(28, 160, 218)]
[*]点击OK。
[*]如果系统提示您创建的FastCGI应用程序添加模块映射对话框中,单击是。 注意:这将自动为您刚才创建的处理程序映射FastCGI应用。如果选择否,您可以手动以后创建一个FastCGI应用程序。
[color=rgb(28, 160, 218)]

如何创建PHP FASTCGI应用[p=24, null, left]注:以下步骤将工作之前,必须已经安装,将执行文件路径或您指定的文件扩展名的二进制文件。本例使用可从PHP执行[color=rgb(28, 160, 218)]www.php.net。[/p][p=24, null, left]注:添加FastCGI应用程序不会自动添加一个处理程序映射。要做到这一点,你需要遵循的步骤[color=rgb(28, 160, 218)]如何创建一个PHP的FastCGI处理程序映射这个话题的部分。[/p]

    [*]打开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设置。
[color=rgb(28, 160, 218)]
[*]在操作窗格中,单击添加应用程序...
[color=rgb(28, 160, 218)]
[*]在添加FastCGI应用程序对话框中,输入以下信息:

    [*]输入要在脚本引擎的路径完整路径框。例如,“C:\ PHP \ PHP-cgi.exe文件”。
    [*]输入FastCGI应用程序请求的最大数目。
    注:对于PHP,这个数目必须较少或等于为PHP的环境,这是通过使用PHP_FCGI_MAX_REQUESTS环境变量配置请求的最大数目。

[color=rgb(28, 160, 218)][*]单击省略号(...)旁边EnvironmentVariables打开环境变量集合编辑器。
[*]在EnvironmentVariables集合编辑器对话框中,单击添加。
[color=rgb(28, 160, 218)]
[*]输入以下信息,然后单击确定。

    [*]输入“PHP_FCGI_MAX_REQUESTS”为名称。
    [*]输入“10000”的价值。

[color=rgb(28, 160, 218)][*]单击确定关闭添加FastCGI应用程序对话框。

如何添加FASTCGI的环境变量PHP[p=24, null, left]注:以下步骤将工作之前,必须已经安装,将执行文件路径或您指定的文件扩展名的二进制文件。本例使用可从PHP执行[color=rgb(28, 160, 218)]www.php.net。[/p]

    [*]打开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设置。
[color=rgb(28, 160, 218)]
[*]突出显示PHP应用程序FastCGI设置面板,然后点击编辑...在操作窗格
[color=rgb(28, 160, 218)]
[*]在编辑FastCGI应用程序对话框中,单击省略号(...)旁边EnvironmentVariables打开环境变量集合编辑器。
[color=rgb(28, 160, 218)]
[*]在EnvironmentVariables集合编辑器对话框中,单击添加。
[color=rgb(28, 160, 218)]
[*]输入以下信息,然后单击确定。

    [*]输入“PHP_FCGI_MAX_REQUESTS”为名称。
    [*]输入“10000”的价值。

[color=rgb(28, 160, 218)][*]单击确定关闭添加FastCGI应用程序对话框。
组态[p=24, null, left]您可以配置<fastCgi>在ApplicationHost.config文件中或在网站级别,服务器级别的元素,在应用层面,还是在Web.config文件中的目录级别。[/p]属性[p=24, null, left]没有。[/p]子元素[tr=transparent][td]元件[tr=transparent][td][color=rgb(28, 160, 218)]application
描述
可选元素。

添加FastCGI进程池定义的FastCGI进程池定义的集合。
配置示例[p=24, null, left]以下配置示例增加了对PHP FastCGI应用程序,设置instanceMaxRequests属性设置为“10000”,并设置PHP_FCGI_MAX_REQUESTS环境变量设置为“10000”[/p]&lt;fastCgi&gt;
   &lt;application fullPath=\&quot;C:\PHP\php-cgi.exe\&quot;
         arguments=\&quot;\&quot;
         maxInstances=\&quot;4\&quot;
         idleTimeout=\&quot;300\&quot;
         activityTimeout=\&quot;30\&quot;
         requestTimeout=\&quot;90\&quot;
         instanceMaxRequests=\&quot;10000\&quot;
         protocol=\&quot;NamedPipe\&quot;
         flushNamedPipe=\&quot;false\&quot;&gt;
      &lt;environmentVariables&gt;
         &lt;environmentVariable
            name=\&quot;PHP_FCGI_MAX_REQUESTS\&quot;
            value=\&quot;10000\&quot; /&gt;
      &lt;/environmentVariables&gt;
   &lt;/application&gt;
&lt;/fastCgi&gt;
                                                                                                                [p=24, null, left]注:对于PHP的价值PHP_FCGI_MAX_REQUESTS环境变量必须是一个数字,较小或等于指定的值instanceMaxRequests FastCGI的属性<application>元素。[/p][p=24, null, left]以下配置示例增加了对PHP文件到IIS的全球的FastCGI处理程序映射,并指定完整路径FastCGI的可执行文件。[/p]&lt;configuration&gt;
   &lt;location path=\&quot;\&quot; overrideMode=\&quot;Allow\&quot;&gt;
      &lt;system.webServer&gt;
         &lt;handlers&gt;
            &lt;add name=\&quot;PHP-FastCGI\&quot;
                path=\&quot;*.php\&quot;
                verb=\&quot;GET,HEAD,POST\&quot;
                modules=\&quot;FastCgiModule\&quot;
                scriptProcessor=\&quot;C:\PHP\php-cgi.exe\&quot;
                resourceType=\&quot;Either\&quot;
                requireAccess=\&quot;Script\&quot; /&gt;
         &lt;/handlers&gt;
      &lt;/system.webServer&gt;
   &lt;/location&gt;
&lt;/configuration&gt;
                                                                                                                                          [p=24, null, left]注:FastCGI的设置,可以为每个站点通过使用特殊格式的FastCGI应用程序,并通过处理器映射,这是通过匹配尊贵配置完整路径和参数属性为[/p]&lt;fastCgi&gt;
   &lt;application fullPath=\&quot;C:\PHP\php-cgi.exe\&quot;
      arguments=\&quot;-d open_basedir=C:\Websites\Website1\&quot; /&gt;
   &lt;application fullPath=\&quot;C:\PHP\php-cgi.exe\&quot;
      arguments=\&quot;-d open_basedir=C:\Websites\Website2\&quot; /&gt;
&lt;/fastCgi&gt;

&lt;system.webServer&gt;
   &lt;handlers accessPolicy=\&quot;Read, Script\&quot;&gt;
      &lt;add name=\&quot;PHP via FastCGI 1\&quot;
         path=\&quot;*.php\&quot;
         verb=\&quot;*\&quot;
         modules=\&quot;FastCgiModule\&quot;
         scriptProcessor=\&quot;C:\PHP\php-cgi.exe|-d open_basedir=C:\Websites\Website1\&quot;
         resourceType=\&quot;Unspecified\&quot;
         requireAccess=\&quot;Script\&quot; /&gt;
      &lt;add name=\&quot;PHP via FastCGI 2\&quot;
         path=\&quot;*.php\&quot;
         verb=\&quot;*\&quot;
         modules=\&quot;FastCgiModule\&quot;
         scriptProcessor=\&quot;C:\PHP\php-cgi.exe|-d open_basedir=C:\Websites\Website2\&quot;
         resourceType=\&quot;Unspecified\&quot;
         requireAccess=\&quot;Script\&quot; /&gt;
&lt;/handlers&gt;
&lt;/system.webServer&gt;
[indent]                                                                                                           [/indent][p=24, null, left]其他信息和有关如何为PHP配置FastCGI设置的例子在下面讨论演练:[/p][indent][p=24, null, left][color=rgb(31, 40, 52)][color=rgb(28, 160, 218)]使用FastCGI主办IIS 7 PHP应用程序[/p][/indent]示例代码[p=24, null, left]下面的代码示例添加对PHP FastCGI应用程序,设置instanceMaxRequests属性设置为“10000”,并设置PHP_FCGI_MAX_REQUESTS环境变量设置为“10000” 每个样本还增加了对PHP文件到IIS的全球的FastCGI处理程序映射,并指定完整路径FastCGI的可执行文件。[/p]appcmd.exe set config -section:system.webServer/fastCgi /+\&quot;[fullPath='C:\PHP\php-cgi.exe',arguments='',maxInstances='4',idleTimeout='300',activityTimeout='30',requestTimeout='90',instanceMaxRequests='10000',protocol='NamedPipe',flushNamedPipe='False']\&quot; /commit:apphost

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

appcmd.exe set config -section:system.webServer/handlers /+\&quot;[name='PHP-FastCGI',path='*.php',verb='GET,HEAD,POST',modules='FastCgiModule',scriptProcessor='C:\PHP\php-cgi.exe',resourceType='Either',requireAccess='Script']\&quot; /commit:apphost
[p=24, null, left]注意:您必须确保设置提交参数apphost,当您使用Appcmd.exe来配置这些设置。这种承诺的配置设置在ApplicationHost.config文件的相应位置部分。[/p]C#using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using (ServerManager serverManager = new ServerManager())
      {
         Configuration config = serverManager.GetApplicationHostConfiguration();

         ConfigurationSection fastCgiSection = config.GetSection(\&quot;system.webServer/fastCgi\&quot;);
         ConfigurationElementCollection fastCgiCollection = fastCgiSection.GetCollection();
         ConfigurationElement applicationElement = fastCgiCollection.CreateElement(\&quot;application\&quot;);
         applicationElement[\&quot;fullPath\&quot;] = @\&quot;C:\PHP\php-cgi.exe\&quot;;
         applicationElement[\&quot;arguments\&quot;] = @\&quot;\&quot;;
         applicationElement[\&quot;maxInstances\&quot;] = 4;
         applicationElement[\&quot;idleTimeout\&quot;] = 300;
         applicationElement[\&quot;activityTimeout\&quot;] = 30;
         applicationElement[\&quot;requestTimeout\&quot;] = 90;
         applicationElement[\&quot;instanceMaxRequests\&quot;] = 10000;
         applicationElement[\&quot;protocol\&quot;] = @\&quot;NamedPipe\&quot;;
         applicationElement[\&quot;flushNamedPipe\&quot;] = false;

         ConfigurationElementCollection environmentVariablesCollection = applicationElement.GetCollection(\&quot;environmentVariables\&quot;);
         ConfigurationElement environmentVariableElement = environmentVariablesCollection.CreateElement(\&quot;environmentVariable\&quot;);
         environmentVariableElement[\&quot;name\&quot;] = @\&quot;PHP_FCGI_MAX_REQUESTS\&quot;;
         environmentVariableElement[\&quot;value\&quot;] = @\&quot;10000\&quot;;
         environmentVariablesCollection.Add(environmentVariableElement);
         fastCgiCollection.Add(applicationElement);

         ConfigurationSection handlersSection = config.GetSection(\&quot;system.webServer/handlers\&quot;);
         ConfigurationElementCollection handlersCollection = handlersSection.GetCollection();
         ConfigurationElement addElement = handlersCollection.CreateElement(\&quot;add\&quot;);
         addElement[\&quot;name\&quot;] = @\&quot;PHP-FastCGI\&quot;;
         addElement[\&quot;path\&quot;] = @\&quot;*.php\&quot;;
         addElement[\&quot;verb\&quot;] = @\&quot;GET,HEAD,POST\&quot;;
         addElement[\&quot;modules\&quot;] = @\&quot;FastCgiModule\&quot;;
         addElement[\&quot;scriptProcessor\&quot;] = @\&quot;C:\PHP\php-cgi.exe\&quot;;
         addElement[\&quot;resourceType\&quot;] = @\&quot;Either\&quot;;
         addElement[\&quot;requireAccess\&quot;] = @\&quot;Script\&quot;;
         handlersCollection.AddAt(0, addElement);

         serverManager.CommitChanges();
      }
   }
}
      VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

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

      Dim fastCgiSection As ConfigurationSection = config.GetSection(\&quot;system.webServer/fastCgi\&quot;)
      Dim fastCgiCollection As ConfigurationElementCollection = fastCgiSection.GetCollection
      Dim applicationElement As ConfigurationElement = fastCgiCollection.CreateElement(\&quot;application\&quot;)
      applicationElement(\&quot;fullPath\&quot;) = \&quot;C:\PHP\php-cgi.exe\&quot;
      applicationElement(\&quot;arguments\&quot;) = \&quot;\&quot;
      applicationElement(\&quot;maxInstances\&quot;) = 4
      applicationElement(\&quot;idleTimeout\&quot;) = 300
      applicationElement(\&quot;activityTimeout\&quot;) = 30
      applicationElement(\&quot;requestTimeout\&quot;) = 90
      applicationElement(\&quot;instanceMaxRequests\&quot;) = 10000
      applicationElement(\&quot;protocol\&quot;) = \&quot;NamedPipe\&quot;
      applicationElement(\&quot;flushNamedPipe\&quot;) = False

      Dim environmentVariablesCollection As ConfigurationElementCollection = applicationElement.GetCollection(\&quot;environmentVariables\&quot;)
      Dim environmentVariableElement As ConfigurationElement = environmentVariablesCollection.CreateElement(\&quot;environmentVariable\&quot;)
      environmentVariableElement(\&quot;name\&quot;) = \&quot;PHP_FCGI_MAX_REQUESTS\&quot;
      environmentVariableElement(\&quot;value\&quot;) = \&quot;10000\&quot;
      environmentVariablesCollection.Add(environmentVariableElement)
      fastCgiCollection.Add(applicationElement)

      Dim handlersSection As ConfigurationSection = config.GetSection(\&quot;system.webServer/handlers\&quot;)
      Dim handlersCollection As ConfigurationElementCollection = handlersSection.GetCollection
      Dim addElement As ConfigurationElement = handlersCollection.CreateElement(\&quot;add\&quot;)
      addElement(\&quot;name\&quot;) = \&quot;PHP-FastCGI\&quot;
      addElement(\&quot;path\&quot;) = \&quot;*.php\&quot;
      addElement(\&quot;verb\&quot;) = \&quot;GET,HEAD,POST\&quot;
      addElement(\&quot;modules\&quot;) = \&quot;FastCgiModule\&quot;
      addElement(\&quot;scriptProcessor\&quot;) = \&quot;C:\PHP\php-cgi.exe\&quot;
      addElement(\&quot;resourceType\&quot;) = \&quot;Either\&quot;
      addElement(\&quot;requireAccess\&quot;) = \&quot;Script\&quot;
      handlersCollection.AddAt(0, addElement)

      serverManager.CommitChanges()
   End Sub

End Module

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

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

      Dim fastCgiSection As ConfigurationSection = config.GetSection(\&quot;system.webServer/fastCgi\&quot;)
      Dim fastCgiCollection As ConfigurationElementCollection = fastCgiSection.GetCollection
      Dim applicationElement As ConfigurationElement = fastCgiCollection.CreateElement(\&quot;application\&quot;)
      applicationElement(\&quot;fullPath\&quot;) = \&quot;C:\PHP\php-cgi.exe\&quot;
      applicationElement(\&quot;arguments\&quot;) = \&quot;\&quot;
      applicationElement(\&quot;maxInstances\&quot;) = 4
      applicationElement(\&quot;idleTimeout\&quot;) = 300
      applicationElement(\&quot;activityTimeout\&quot;) = 30
      applicationElement(\&quot;requestTimeout\&quot;) = 90
      applicationElement(\&quot;instanceMaxRequests\&quot;) = 10000
      applicationElement(\&quot;protocol\&quot;) = \&quot;NamedPipe\&quot;
      applicationElement(\&quot;flushNamedPipe\&quot;) = False

      Dim environmentVariablesCollection As ConfigurationElementCollection = applicationElement.GetCollection(\&quot;environmentVariables\&quot;)
      Dim environmentVariableElement As ConfigurationElement = environmentVariablesCollection.CreateElement(\&quot;environmentVariable\&quot;)
      environmentVariableElement(\&quot;name\&quot;) = \&quot;PHP_FCGI_MAX_REQUESTS\&quot;
      environmentVariableElement(\&quot;value\&quot;) = \&quot;10000\&quot;
      environmentVariablesCollection.Add(environmentVariableElement)
      fastCgiCollection.Add(applicationElement)

      Dim handlersSection As ConfigurationSection = config.GetSection(\&quot;system.webServer/handlers\&quot;)
      Dim handlersCollection As ConfigurationElementCollection = handlersSection.GetCollection
      Dim addElement As ConfigurationElement = handlersCollection.CreateElement(\&quot;add\&quot;)
      addElement(\&quot;name\&quot;) = \&quot;PHP-FastCGI\&quot;
      addElement(\&quot;path\&quot;) = \&quot;*.php\&quot;
      addElement(\&quot;verb\&quot;) = \&quot;GET,HEAD,POST\&quot;
      addElement(\&quot;modules\&quot;) = \&quot;FastCgiModule\&quot;
      addElement(\&quot;scriptProcessor\&quot;) = \&quot;C:\PHP\php-cgi.exe\&quot;
      addElement(\&quot;resourceType\&quot;) = \&quot;Either\&quot;
      addElement(\&quot;requireAccess\&quot;) = \&quot;Script\&quot;
      handlersCollection.AddAt(0, addElement)

      serverManager.CommitChanges()
   End Sub

End ModuleJAVASCRIPT
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = \&quot;MACHINE/WEBROOT/APPHOST\&quot;;

var fastCgiSection = adminManager.GetAdminSection(\&quot;system.webServer/fastCgi\&quot;, \&quot;MACHINE/WEBROOT/APPHOST\&quot;);
var fastCgiCollection = fastCgiSection.Collection;
var applicationElement = fastCgiCollection.CreateNewElement(\&quot;application\&quot;);
applicationElement.Properties.Item(\&quot;fullPath\&quot;).Value = \&quot;C:\\PHP\\php-cgi.exe\&quot;;
applicationElement.Properties.Item(\&quot;arguments\&quot;).Value = \&quot;\&quot;;
applicationElement.Properties.Item(\&quot;maxInstances\&quot;).Value = 4;
applicationElement.Properties.Item(\&quot;idleTimeout\&quot;).Value = 300;
applicationElement.Properties.Item(\&quot;activityTimeout\&quot;).Value = 30;
applicationElement.Properties.Item(\&quot;requestTimeout\&quot;).Value = 90;
applicationElement.Properties.Item(\&quot;instanceMaxRequests\&quot;).Value = 10000;
applicationElement.Properties.Item(\&quot;protocol\&quot;).Value = \&quot;NamedPipe\&quot;;
applicationElement.Properties.Item(\&quot;queueLength\&quot;).Value = 1000;
applicationElement.Properties.Item(\&quot;flushNamedPipe\&quot;).Value = false;
applicationElement.Properties.Item(\&quot;rapidFailsPerMinute\&quot;).Value = 10;

var environmentVariablesCollection = applicationElement.ChildElements.Item(\&quot;environmentVariables\&quot;).Collection;
var environmentVariableElement = environmentVariablesCollection.CreateNewElement(\&quot;environmentVariable\&quot;);
environmentVariableElement.Properties.Item(\&quot;name\&quot;).Value = \&quot;PHP_FCGI_MAX_REQUESTS\&quot;;
environmentVariableElement.Properties.Item(\&quot;value\&quot;).Value = \&quot;10000\&quot;;
environmentVariablesCollection.AddElement(environmentVariableElement);
fastCgiCollection.AddElement(applicationElement);

var handlersSection = adminManager.GetAdminSection(\&quot;system.webServer/handlers\&quot;, \&quot;MACHINE/WEBROOT/APPHOST\&quot;);
var handlersCollection = handlersSection.Collection;
var addElement = handlersCollection.CreateNewElement(\&quot;add\&quot;);
addElement.Properties.Item(\&quot;name\&quot;).Value = \&quot;PHP-FastCGI\&quot;;
addElement.Properties.Item(\&quot;path\&quot;).Value = \&quot;*.php\&quot;;
addElement.Properties.Item(\&quot;verb\&quot;).Value = \&quot;GET,HEAD,POST\&quot;;
addElement.Properties.Item(\&quot;modules\&quot;).Value = \&quot;FastCgiModule\&quot;;
addElement.Properties.Item(\&quot;scriptProcessor\&quot;).Value = \&quot;C:\\PHP\\php-cgi.exe\&quot;;
addElement.Properties.Item(\&quot;resourceType\&quot;).Value = \&quot;Either\&quot;;
addElement.Properties.Item(\&quot;requireAccess\&quot;).Value = \&quot;Script\&quot;;
handlersCollection.AddElement(addElement, 0);

adminManager.CommitChanges();VBSCRIPT
Set adminManager = WScript.CreateObject(\&quot;Microsoft.ApplicationHost.WritableAdminManager\&quot;)
adminManager.CommitPath = \&quot;MACHINE/WEBROOT/APPHOST\&quot;

Set fastCgiSection = adminManager.GetAdminSection(\&quot;system.webServer/fastCgi\&quot;, \&quot;MACHINE/WEBROOT/APPHOST\&quot;)
Set fastCgiCollection = fastCgiSection.Collection
Set applicationElement = fastCgiCollection.CreateNewElement(\&quot;application\&quot;)
applicationElement.Properties.Item(\&quot;fullPath\&quot;).Value = \&quot;C:\PHP\php-cgi.exe\&quot;
applicationElement.Properties.Item(\&quot;arguments\&quot;).Value = \&quot;\&quot;
applicationElement.Properties.Item(\&quot;maxInstances\&quot;).Value = 4
applicationElement.Properties.Item(\&quot;idleTimeout\&quot;).Value = 300
applicationElement.Properties.Item(\&quot;activityTimeout\&quot;).Value = 30
applicationElement.Properties.Item(\&quot;requestTimeout\&quot;).Value = 90
applicationElement.Properties.Item(\&quot;instanceMaxRequests\&quot;).Value = 10000
applicationElement.Properties.Item(\&quot;protocol\&quot;).Value = \&quot;NamedPipe\&quot;
applicationElement.Properties.Item(\&quot;queueLength\&quot;).Value = 1000
applicationElement.Properties.Item(\&quot;flushNamedPipe\&quot;).Value = false
applicationElement.Properties.Item(\&quot;rapidFailsPerMinute\&quot;).Value = 10

Set environmentVariablesCollection = applicationElement.ChildElements.Item(\&quot;environmentVariables\&quot;).Collection
Set environmentVariableElement = environmentVariablesCollection.CreateNewElement(\&quot;environmentVariable\&quot;)
environmentVariableElement.Properties.Item(\&quot;name\&quot;).Value = \&quot;PHP_FCGI_MAX_REQUESTS\&quot;
environmentVariableElement.Properties.Item(\&quot;value\&quot;).Value = \&quot;10000\&quot;
environmentVariablesCollection.AddElement(environmentVariableElement)
Call fastCgiCollection.AddElement(applicationElement)

Set handlersSection = adminManager.GetAdminSection(\&quot;system.webServer/handlers\&quot;, \&quot;MACHINE/WEBROOT/APPHOST\&quot;)
Set handlersCollection = handlersSection.Collection
Set addElement = handlersCollection.CreateNewElement(\&quot;add\&quot;)
addElement.Properties.Item(\&quot;name\&quot;).Value = \&quot;PHP-FastCGI\&quot;
addElement.Properties.Item(\&quot;path\&quot;).Value = \&quot;*.php\&quot;
addElement.Properties.Item(\&quot;verb\&quot;).Value = \&quot;GET,HEAD,POST\&quot;
addElement.Properties.Item(\&quot;modules\&quot;).Value = \&quot;FastCgiModule\&quot;
addElement.Properties.Item(\&quot;scriptProcessor\&quot;).Value = \&quot;C:\PHP\php-cgi.exe\&quot;
addElement.Properties.Item(\&quot;resourceType\&quot;).Value = \&quot;Either\&quot;
addElement.Properties.Item(\&quot;requireAccess\&quot;).Value = \&quot;Script\&quot;
Call handlersCollection.AddElement(addElement, 0)

adminManager.CommitChanges()


游客
登录后才可以回帖,登录 或者 注册