Compartir a través de


Variables de entorno <environmentVariables> del elemento <application> de FastCGI

El elemento <environmentVariables> del elemento <application> de FastCGI especifica una lista de variables de entorno que Internet Information Services (IIS) 7 pasará a un proceso FastCGI cuando se inicie. El elemento <environmentVariables> contiene una colección de elementos <environmentVariable> que definen los pares nombre-valor individuales para cada variable de entorno.

Cada aplicación FastCGI instalada en IIS 7 puede permitir o requerir variables de entorno para configurar cómo funciona la aplicación FastCGI. Por ejemplo, una aplicación FastCGI puede requerir una variable de entorno que especifique dónde se encuentra el archivo de configuración de la aplicación, mientras que otra aplicación FastCGI puede requerir una variable de entorno que especifique el número de solicitudes tras las cuales deberá reciclarse.

Compatibilidad

Versión Notas
IIS 10.0 El elemento <environmentVariables> no se modificó en IIS 10.0.
IIS 8.5 El elemento <environmentVariables> no se modificó en IIS 8.5.
IIS 8.0 El elemento <environmentVariables> no se modificó en IIS 8.0.
IIS 7.5 El elemento <environmentVariables> no se modificó en IIS 7.5.
IIS 7.0 El elemento <environmentVariables> del elemento <application> se introdujo en IIS 7.0.
IIS 6,0 N/D

Configuración

Para usar el entorno FastCGI, primero debe instalar el servicio de rol de CGI. El proceso de instalación registra el servicio de rol de la interfaz CGI en los elementos <globalModules> y <modules>. No es necesario realizar ningún otro paso para instalar el entorno FastCGI.

Windows Server 2012 o Windows Server 2012 R2

  1. En la barra de tareas, haga clic en Administrador del servidor.
  2. En Administrador del servidor, haga clic en el menú Administrar y, después, haga clic en Agregar roles y características.
  3. En el asistente para Agregar roles y características, haga clic en Siguiente. Seleccione el tipo de instalación y haga clic en Siguiente. Seleccione el servidor de destino y haga clic en Siguiente.
  4. En la página Roles de servidor, expanda Servidor web (IIS), expanda Servidor web, expanda Desarrollo de aplicaciones y, a continuación, seleccione CGI. Haga clic en Next.
    Captura de pantalla que muestra la página Roles de servidor que resalta la casilla C G I.
  5. En la página Seleccionar características, haz clic en Siguiente.
  6. En la página Confirmar selecciones de instalación, haga clic en Instalar.
  7. En la página Resultados , haga clic en Cerrar.

Windows 8 o Windows 8.1

  1. En la pantalla Inicio, mueva el puntero hasta la esquina inferior izquierda, haga clic con el botón derecho en el botón Inicio y, a continuación, haga clic en Panel de control.
  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
  3. Expanda sucesivamente Internet Information Services, World Wide Web Services y Características de desarrollo de aplicaciones y, a continuación, seleccione CGI.
    Captura de pantalla que muestra la casilla Internet Information Services en la que se resalta la casilla C G I.
  4. Haga clic en OK.
  5. Haga clic en Cerrar.

Windows Server 2008 o Windows Server 2008 R2

  1. En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, luego, haga clic en Administrador del servidor.
  2. En el panel de jerarquía del Administrador del servidor, expanda Roles y, luego, haga clic en Servidor web (IIS).
  3. En el panel Servidor web (IIS), desplácese hasta la sección Servicios de rol y, luego, haga clic en Agregar servicios de rol.
  4. En la página Seleccionar servicios de rol del Asistente para agregar servicios de rol, seleccione CGI y haga clic en Siguiente.
    Captura de pantalla que muestra la página Seleccionar servicios de rol que resalta la casilla C G I.
  5. En la página Confirmar selecciones de instalación, haz clic en Instalar.
  6. En la página Resultados , haga clic en Cerrar.

Windows Vista o Windows 7

  1. En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
  2. En Panel de control, haga clic en Programas y características y después en Activar o desactivar las características de Windows.
  3. Expanda Internet Information Services, seleccione CGIy, a continuación, haga clic en Aceptar.
    Captura de pantalla que muestra la página Internet Information Services que resalta la casilla C G I.

Procedimientos

Nota para los usuarios de IIS 7.0: Algunos de los pasos de esta sección pueden requerir que instale Administration Pack para IIS 7.0 de Microsoft, que incluye una interfaz de usuario para la configuración de FastCGI. Para instalar Microsoft Administration Pack para IIS 7.0, consulte la siguiente dirección URL:

Creación de una asignación global de controladores de FastCGI para PHP

Nota:

Para que funcione el procedimiento siguiente, ya debe haber instalado archivos binarios que ejecutarán la ruta de acceso del archivo o la extensión de nombre de archivo que especifique. En este ejemplo se usa una implementación de PHP disponible en www.php.net.

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, haga clic en el nombre del servidor para el que desea configurar asignaciones de controladores de FastCGI.

  3. En el panel Inicio, haga doble clic en Asignaciones de controlador.
    Captura de pantalla que muestra la carpeta Asignaciones de controladores resaltada en el panel Inicio.

  4. En el panel Acciones , haga clic en Agregar asignación de módulo.
    Captura de pantalla que muestra el panel Acciones con los campos Nombre y Ruta de acceso.

  5. Escriba la siguiente información:

    • Escriba la extensión de nombre de archivo en el cuadro de texto Ruta de acceso de la solicitud. Por ejemplo, "*.php".
    • Haga clic en FastCgiModule en la lista desplegable Módulo.
    • Escriba la ruta de acceso al motor de scripting en el cuadro Ejecutable. Por ejemplo, "C:\PHP\php-cgi.exe".
    • En el cuadro Nombre, escriba un nombre único para la asignación de controladores. Por ejemplo, "PHP-FastCGI".

    Captura de pantalla que muestra la ventana Agregar asignación de módulos con los campos Ruta de acceso de solicitud y Módulo.

    • Haga clic en Restricciones de solicitudes.
    • Seleccione Invocar controlador solo si la solicitud está asignada a.
    • Haga clic para seleccionar la opción Archivo o carpeta.
    • Haga clic en OK.
      Captura de pantalla que muestra la ventana Restricciones de solicitud con el botón de radio Archivo o carpeta seleccionado.
  6. Haga clic en OK.

  7. Si en el cuadro de diálogo Agregar asignación de módulos se le pide que cree una aplicación FastCGI, haga clic en .
    Captura de pantalla que muestra el mensaje Agregar asignación de módulos para crear una aplicación fast C G I.

    Nota:

    Esta acción crea automáticamente una aplicación FastCGI para la asignación de controladores que acaba de crear. Si elige No, puede crear manualmente una aplicación FastCGI más adelante.

Creación de una aplicación FastCGI para PHP

Nota:

Para que funcione el procedimiento siguiente, ya debe haber instalado archivos binarios que ejecutarán la ruta de acceso del archivo o la extensión de nombre de archivo que especifique. En este ejemplo se usa una implementación de PHP disponible en www.php.net.

Nota:

Al agregar una aplicación FastCGI, no se agrega automáticamente una asignación de controlador. Para ello, tendría que seguir los pasos descritos en la sección Cómo crear una asignación global de controladores FastCGI para PHP de este artículo.

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, haga clic en el nombre del servidor para el que desea configurar las opciones de FastCGI.

  3. En el panel Inicio, haga doble clic en Configuración de FastCGI.
    Captura de pantalla que muestra el panel Inicio resaltando el icono fast C G I Configuración.

  4. En el panel Acciones, haga clic en Agregar aplicación.
    Captura de pantalla que muestra el panel Acciones para agregar la aplicación.

  5. En el cuadro de diálogo Agregar aplicación FastCGI, escriba la siguiente información:

    • Escriba la ruta de acceso al motor de scripting en el cuadro Ruta de acceso completa. Por ejemplo, "C:\PHP\php-cgi.exe".

    • Escriba el número máximo de solicitudes para la aplicación FastCGI.

      Nota:

      Para PHP, este número debe ser menor o igual que el número máximo de solicitudes para un entorno PHP, que se configura mediante la variable de entorno PHP_FCGI_MAX_REQUESTS.

    Captura de pantalla que muestra la ventana Agregar aplicación de C G I rápida con los campos Ruta de acceso completa y Argumentos.

  6. Haga clic en los puntos suspensivos (...) situados junto a EnvironmentVariables para abrir el editor de colecciones de variables de entorno.

  7. En el cuadro de diálogo Editor de colecciones EnvironmentVariables, haga clic en Agregar.
    Captura de pantalla que muestra la ventana Editor de recopilación de variables de entorno para agregar miembros.

  8. Escriba la siguiente información y, a continuación, haga clic en Aceptar.

    • En Nombre, escriba "PHP_FCGI_MAX_REQUESTS".
    • En Valor, escriba "10000".

    Captura de pantalla que muestra el cuadro de diálogo Editor de recopilación de variables de entorno que resalta el nombre.

  9. Haga clic en Aceptar para cerrar el cuadro de diálogo Agregar aplicación FastCGI.

Adición de una variable de entorno de FastCGI para PHP

Nota:

Para que funcione el procedimiento siguiente, ya debe haber instalado archivos binarios que ejecutarán la ruta de acceso del archivo o la extensión de nombre de archivo que especifique. En este ejemplo se usa una implementación de PHP disponible en www.php.net.

  1. Abra el Administrador de Internet Information Services (IIS):

    • Si usa Windows Server 2012 o Windows Server 2012 R2:

      • En la barra de tareas, haga clic en Administrador del servidor, en Herramientas y, a continuación, en Administrador de Internet Information Services (IIS).
    • Si usa Windows 8 o Windows 8.1:

      • Mantenga presionada la tecla Windows, presione la letra X y haga clic en Panel de control.
      • En Panel de control, haga clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Server 2008 o Windows Server 2008 R2:

      • En la barra de tareas, haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Internet Information Services (IIS).
    • Si usa Windows Vista o Windows 7:

      • En la barra de tareas, haga clic en Inicio y, luego, haga clic en Panel de control.
      • Haga doble clic en Herramientas administrativas y, a continuación, haga doble clic en Administrador de Internet Information Services (IIS).
  2. En el panel Conexiones, haga clic en el nombre del servidor para el que desea configurar las opciones de FastCGI.

  3. En el panel Inicio, haga doble clic en Configuración de FastCGI.
    Captura de pantalla que muestra el panel Inicio resaltado fast C G I Configuración carpeta.

  4. Resalte la aplicación PHP en el panel Configuración de FastCGI y, a continuación, haga clic en Editar en el panel Acciones.
    Captura de pantalla que muestra la página fast C G I Configuración resaltando el nombre de ruta de acceso completa.

  5. En el cuadro de diálogo Editar aplicación FastCGI, haga clic en los puntos suspensivos (...) situados junto a EnvironmentVariables para abrir el editor de colecciones de variables de entorno.
    Captura de pantalla que muestra el cuadro de diálogo Editar aplicación de C G I rápido con campos Ruta de acceso completa y Argumentos.

  6. En el cuadro de diálogo Editor de colecciones EnvironmentVariables, haga clic en Agregar.
    Captura de pantalla que muestra el cuadro de diálogo Editor de recopilación de variables de entorno para agregar miembros.

  7. Escriba la siguiente información y, a continuación, haga clic en Aceptar.

    • En Nombre, escriba "PHP_FCGI_MAX_REQUESTS".
    • En Valor, escriba "10000".

    Captura de pantalla que muestra el cuadro de diálogo Editor de recopilación de variables de entorno que resalta el nombre de la variable de entorno.

  8. Haga clic en Aceptar para cerrar el cuadro de diálogo Agregar aplicación FastCGI.

Configuración

Atributos

Ninguno.

Elementos secundarios

Elemento Descripción
environmentVariable Elemento opcional.

Agrega una variable de entorno a la colección de variables de entorno.

Ejemplo de configuración

En el ejemplo de configuración siguiente se agrega una aplicación FastCGI para PHP, se establece el atributo instanceMaxRequests en "10000" y se establece la variable de entorno PHP_FCGI_MAX_REQUESTS en "10000".

<fastCgi>
   <application fullPath="C:\PHP\php-cgi.exe"
         arguments=""
         maxInstances="4"
         idleTimeout="300"
         activityTimeout="30"
         requestTimeout="90"
         instanceMaxRequests="10000"
         protocol="NamedPipe"
         flushNamedPipe="false">
      <environmentVariables>
         <environmentVariable
            name="PHP_FCGI_MAX_REQUESTS"
            value="10000" />
      </environmentVariables>
   </application>
</fastCgi>

Nota:

Con PHP, el valor de la variable de entorno PHP_FCGI_MAX_REQUESTS debe ser un número menor o igual que el valor especificado por el atributo instanceMaxRequests del elemento <application> de FastCGI.

En el ejemplo de configuración siguiente se agrega una asignación global de controladores FastCGI para archivos PHP a IIS y se especifica la ruta de acceso completa a un archivo ejecutable FastCGI.

<configuration>
   <location path="" overrideMode="Allow">
      <system.webServer>
         <handlers>
            <add name="PHP-FastCGI"
                path="*.php"
                verb="GET,HEAD,POST"
                modules="FastCgiModule"
                scriptProcessor="C:\PHP\php-cgi.exe"
                resourceType="Either"
                requireAccess="Script" />
         </handlers>
      </system.webServer>
   </location>
</configuration>

Nota:

La configuración de FastCGI se puede establecer por sitio mediante el uso de la aplicación FastCGI con formato especial y por asignaciones de controladores, que se distinguen mediante la coincidencia de los atributos fullPath y arguments de un elemento <application> con el atributo scriptProcessor correspondiente en la asignación <handlers> para el proceso FastCGI. Para crear estas asignaciones, la configuración de los atributos fullPath y arguments en un elemento <application> debe agregarse al atributo scriptProcessor en la asignación <handlers> para el proceso FastCGI y separarse con el carácter "|" de barra vertical. Esta combinación sirve como clave única en cada aplicación FastCGI. Por ejemplo, el fragmento de configuración siguiente muestra dos elementos <fastCgi>/<application> de ejemplo y sus asignaciones de <controladores> correspondientes para dos controladores PHP específicos del sitio:

<fastCgi>
   <application fullPath="C:\PHP\php-cgi.exe"
      arguments="-d open_basedir=C:\Websites\Website1" />
   <application fullPath="C:\PHP\php-cgi.exe"
      arguments="-d open_basedir=C:\Websites\Website2" />
</fastCgi>

<system.webServer>
   <handlers accessPolicy="Read, Script"> 
      <add name="PHP via FastCGI 1"
         path="*.php"
         verb="*"
         modules="FastCgiModule"
         scriptProcessor="C:\PHP\php-cgi.exe|-d open_basedir=C:\Websites\Website1"
         resourceType="Unspecified"
         requireAccess="Script" />
      <add name="PHP via FastCGI 2"
         path="*.php"
         verb="*"
         modules="FastCgiModule"
         scriptProcessor="C:\PHP\php-cgi.exe|-d open_basedir=C:\Websites\Website2"
         resourceType="Unspecified"
         requireAccess="Script" />
</handlers>
</system.webServer>

Código de ejemplo

En los ejemplos de código siguientes se agrega una aplicación FastCGI para PHP, se establece el atributo instanceMaxRequests en "10000" y se establece la variable de entorno PHP_FCGI_MAX_REQUESTS en "10000". En cada ejemplo también se agrega una asignación global de controladores FastCGI para archivos PHP a IIS y se especifica la ruta de acceso completa a un archivo ejecutable FastCGI.

AppCmd.exe

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

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

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

Nota:

Debe asegurarse de establecer el parámetro de confirmación en apphost cuando use AppCmd.exe para configurar estas opciones. Esto confirma los valores de configuración en la sección de ubicación adecuada del archivo ApplicationHost.config.

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("system.webServer/fastCgi");
         ConfigurationElementCollection fastCgiCollection = fastCgiSection.GetCollection();
         ConfigurationElement applicationElement = fastCgiCollection.CreateElement("application");
         applicationElement["fullPath"] = @"C:\PHP\php-cgi.exe";
         applicationElement["arguments"] = @"";
         applicationElement["maxInstances"] = 4;
         applicationElement["idleTimeout"] = 300;
         applicationElement["activityTimeout"] = 30;
         applicationElement["requestTimeout"] = 90;
         applicationElement["instanceMaxRequests"] = 10000;
         applicationElement["protocol"] = @"NamedPipe";
         applicationElement["flushNamedPipe"] = false;

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

         ConfigurationSection handlersSection = config.GetSection("system.webServer/handlers");
         ConfigurationElementCollection handlersCollection = handlersSection.GetCollection();
         ConfigurationElement addElement = handlersCollection.CreateElement("add");
         addElement["name"] = @"PHP-FastCGI";
         addElement["path"] = @"*.php";
         addElement["verb"] = @"GET,HEAD,POST";
         addElement["modules"] = @"FastCgiModule";
         addElement["scriptProcessor"] = @"C:\PHP\php-cgi.exe";
         addElement["resourceType"] = @"Either";
         addElement["requireAccess"] = @"Script";
         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("system.webServer/fastCgi")
      Dim fastCgiCollection As ConfigurationElementCollection = fastCgiSection.GetCollection
      Dim applicationElement As ConfigurationElement = fastCgiCollection.CreateElement("application")
      applicationElement("fullPath") = "C:\PHP\php-cgi.exe"
      applicationElement("arguments") = ""
      applicationElement("maxInstances") = 4
      applicationElement("idleTimeout") = 300
      applicationElement("activityTimeout") = 30
      applicationElement("requestTimeout") = 90
      applicationElement("instanceMaxRequests") = 10000
      applicationElement("protocol") = "NamedPipe"
      applicationElement("flushNamedPipe") = False

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

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

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";

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

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

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

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"

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

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

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

adminManager.CommitChanges()