Compartilhar via


Variáveis ​​ambientais <environmentVariables> do elemento <application> do FastCGI

O elemento <environmentVariables> do elemento<application> do FastCGI especifica uma lista de variáveis de ambiente que o Internet Information Services (IIS) 7 passará para um processo de FastCGI quando for iniciado. O elemento <environmentVariables> contém uma coleção de elementos <environmentVariable> que definem os pares nome/valor individuais para cada variável de ambiente.

Cada aplicativo FastCGI instalado no IIS 7 pode permitir ou exigir variáveis de ambiente para configurar como o aplicativo FastCGI funciona. Por exemplo, um aplicativo FastCGI pode exigir uma variável de ambiente que especifica onde o arquivo de configuração do aplicativo está localizado, enquanto outro aplicativo FastCGI pode exigir uma variável de ambiente que especifica o número de solicitações após as quais ele precisará ser reciclado.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <environmentVariables> não foi modificado no IIS 10.0.
IIS 8.5 O elemento <environmentVariables> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <environmentVariables> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <environmentVariables> não foi modificado no IIS 7.5.
IIS 7.0 O elemento <environmentVariables> do elemento <application> do FastCGI foi introduzido no IIS 7.0.
IIS 6,0 N/D

Instalação

Para usar o ambiente FastCGI, primeiro você deve instalar o serviço de função CGI. O processo de instalação registra o serviço de função CGI (Common Gateway Interface) nos elementos <globalModules> e <modules>. Você não precisa executar outra etapa para instalar o ambiente FastCGI.

Windows Server 2012 R2 ou Windows Server 2012

  1. Na barra de tarefas, clique em Gerenciador do Servidor.
  2. No Gerenciador do Servidor, clique no menu Gerenciar e clique em Adicionar Funções e Recursos.
  3. No assistente Adicionar Funções e Recursos, clique em Avançar. Selecione o tipo de instalação e clique em Avançar. Selecione o servidor de destino e clique em Avançar.
  4. Na página Funções de Servidor, expanda Servidor Web (IIS), Servidor Web, Desenvolvimento do Aplicativo e selecionar CGI. Clique em Avançar.
    A captura de tela mostra a página Funções de Servidor realçando a caixa de seleção C G I.
  5. Na página Selecionar Recursos, clique em Avançar.
  6. Na página Confirmar seleções de instalação, clique em Instalar.
  7. Na página Resultados , clique em Fechar.

Windows 8 ou Windows 8.1

  1. Na tela Iniciar, mova o ponteiro até o canto inferior esquerdo, clique com o botão direito do mouse no botão Iniciar e clique em Painel de Controle.
  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar recursos do Windows.
  3. Expanda Serviços de Informações da Internet, Serviços da World Wide Web, Recursos de Desenvolvimento de Aplicativos e selecione CGI.
    A captura de tela mostra os Serviços de Informações da Internet destacando a caixa de seleção C G I.
  4. Clique em OK.
  5. Clique em Fechar.

Windows Server 2008 R2 ou Windows Server 2008

  1. Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do Servidor.
  2. No painel de hierarquia do Gerenciador do Servidor, expanda Funções e clique em Servidor Web (IIS).
  3. No painel Servidor Web (IIS), role até a seção Serviços de Função e clique em Adicionar Serviços de Função.
  4. Na página Selecionar Serviços de Função do Assistente para Adicionar Serviços de Função, selecione CGI e clique em Avançar.
    A captura de tela mostra a página Selecionar Serviços de Função realçando a caixa de seleção C G I.
  5. Na página Confirmar Seleções de Instalação, clique em Instalar.
  6. Na página Resultados , clique em Fechar.

Windows Vista ou Windows 7

  1. Na barra de tarefas, clique em Iniciar e, depois, em Painel de Controle.
  2. Em Painel de Controle, clique em Programas e Recursos e clique em Ativar ou desativar Recursos do Windows.
  3. Expanda Serviços de Informações da Internet, selecione CGI e, em seguida, clique em OK.
    A captura de tela mostra a página Serviços de Informações da Internet realçando a caixa de seleção C G I.

Instruções

Observação para usuários do IIS 7.0: algumas etapas nesta seção podem exigir que você instale o Microsoft Administration Pack para IIS 7.0, que inclui uma interface do usuário para configurações de FastCGI. Para instalar o Microsoft Administration Pack para IIS 7.0, consulte a seguinte URL:

Como criar um mapeamento global do manipulador FastCGI para PHP

Observação

Antes que o procedimento a seguir funcione, você já deve ter instalado binários que executarão o caminho do arquivo ou a extensão de nome de arquivo que você especificar. Este exemplo usa uma implementação PHP disponível de www.php.net.

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador do IIS (Serviços de Informações da Internet).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador do IIS (Serviços de Informações da Internet).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do IIS (Serviços de Informações da Internet).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, selecione Iniciar e selecione Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, clique no nome do servidor no qual deseja definir os mapeamentos do manipulador do FastCGI.

  3. No painel Página Inicial, clique duas vezes em Mapeamentos de Manipulador.
    A captura de tela mostra o painel Início realçando a pasta Mapeamentos do Manipulador.

  4. No painel Ações , clique em Adicionar Mapeamento de Módulo.
    A captura de tela mostra o painel Ações com os campos Nome e Caminho.

  5. Insira as seguintes informações:

    • Insira a extensão de nome de arquivo na caixa de texto Caminho da solicitação. Por exemplo, "*.php".
    • Clique em FastCgiModule na lista suspensa Módulo.
    • Insira o caminho para o mecanismo de script na caixa Executável. Por exemplo, "C:\PHP\php-cgi.exe".
    • Insira um nome exclusivo para o mapeamento do manipulador na caixa Nome. Por exemplo, "PHP-FastCGI".

    A captura de tela mostra a janela Adicionar mapeamento de módulo com os campos Caminho da solicitação e Módulo.

    • Clique em Restrições de Solicitação.
    • Selecione Invocar identificador somente se a solicitação for mapeada para.
    • Clique para selecionar a opção Arquivo ou Pasta.
    • Clique em OK.
      A captura de tela mostra a janela Solicitar restrições com o botão de opção Arquivo ou pasta selecionado.
  6. Clique em OK.

  7. Se for solicitado que você crie um aplicativo FastCGI na caixa de diálogo Adicionar Mapeamento de Módulo, clique em Sim.
    A captura de tela mostra o prompt Adicionar mapeamento de módulo para criar o aplicativo Fast C G I.

    Observação

    Isso criará automaticamente um aplicativo FastCGI para o mapeamento de manipulador que você acabou de criar. Se você escolher Não, poderá criar manualmente um aplicativo FastCGI posteriormente.

Como criar um aplicativo FastCGI para PHP

Observação

Antes que o procedimento a seguir funcione, você já deve ter instalado binários que executarão o caminho do arquivo ou a extensão de nome de arquivo que você especificar. Este exemplo usa uma implementação PHP disponível de www.php.net.

Observação

A adição de um aplicativo FastCGI não adiciona automaticamente um mapeamento de manipulador. Para fazer isso, você precisaria seguir as etapas na seção Como criar um mapeamento global do manipulador FastCGI para o PHP deste artigo.

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador do IIS (Serviços de Informações da Internet).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador do IIS (Serviços de Informações da Internet).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do IIS (Serviços de Informações da Internet).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, selecione Iniciar e selecione Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, clique no nome do servidor no qual deseja definir as configurações do FastCGI.

  3. No painel Página Inicial, clique duas vezes em Configurações do FastCGI.
    A captura de tela mostra o painel Início realçando o ícone Configurações rápidas de C G I.

  4. No painel Ações, selecione Adicionar Aplicativo.
    A captura de tela mostra o painel Ações para adicionar o aplicativo.

  5. Na caixa de diálogo Adicionar Aplicativo FastCGI, insira as seguintes informações:

    • Insira o caminho para o mecanismo de script na caixa Caminho Completo. Por exemplo, "C:\PHP\php-cgi.exe".

    • Insira o número máximo de solicitações para o aplicativo FastCGI.

      Observação

      Para PHP, esse número deve ser menor ou igual ao número máximo de solicitações para o ambiente PHP, que é configurado usando a variável de ambiente PHP_FCGI_MAX_REQUESTS.

    A captura de tela mostra a janela Adicionar Aplicativo Rápido C G I com os campos Caminho Completo e Argumentos.

  6. Clique nas reticências (...) ao lado de EnvironmentVariables para abrir o editor de coleção de variáveis de ambiente.

  7. Na caixa de diálogo Editor da Coleção EnvironmentVariables, clique em Adicionar.
    A captura de tela mostra a janela Editor de Coleção de Variáveis de Ambiente para adicionar Membros.

  8. Insira as seguintes informações e clique em OK.

    • Insira "PHP_FCGI_MAX_REQUESTS" em Nome.
    • Insira "10000" como o Valor.

    A captura de tela mostra a caixa de diálogo Editor de Coleção de Variáveis de Ambiente realçando o Nome.

  9. Clique em OK para fechar a caixa de diálogo Adicionar Aplicativo FastCGI.

Como adicionar uma variável de ambiente FastCGI para PHP

Observação

Antes que o procedimento a seguir funcione, você já deve ter instalado binários que executarão o caminho do arquivo ou a extensão de nome de arquivo que você especificar. Este exemplo usa uma implementação PHP disponível de www.php.net.

  1. Abra o Gerenciador dos Serviços de Informações da Internet (IIS):

    • Caso você esteja usando o Windows Server 2012 ou o Windows Server 2012 R2:

      • Na barra de tarefas, clique em Gerenciador do Servidor, em Ferramentas e em Gerenciador do IIS (Serviços de Informações da Internet).
    • Se você estiver usando o Windows 8 ou Windows 8.1:

      • Mantenha pressionada a tecla Windows, pressione a letra X e clique em Painel de Controle.
      • Clique em Ferramentas Administrativas e clique duas vezes em Gerenciador do IIS (Serviços de Informações da Internet).
    • Caso você esteja usando o Windows Server 2008 ou o Windows Server 2008 R2:

      • Na barra de tarefas, clique em Iniciar, vá para Ferramentas Administrativas e clique em Gerenciador do IIS (Serviços de Informações da Internet).
    • Se você estiver usando o Windows Vista ou Windows 7:

      • Na barra de tarefas, selecione Iniciar e selecione Painel de Controle.
      • Clique duas vezes em Ferramentas Administrativas e clique duas vezes em Gerenciador dos Serviços de Informações da Internet (IIS).
  2. No painel Conexões, clique no nome do servidor no qual deseja definir as configurações do FastCGI.

  3. No painel Página Inicial, clique duas vezes em Configurações do FastCGI.
    A captura de tela mostra o painel Início realçando a pasta Configurações rápidas de C G I.

  4. Realce o aplicativo PHP no painel Configurações FastCGI e clique em Editar no painel Ações.
    A captura de tela mostra a página Configurações rápidas de C G I realçando o nome do caminho completo.

  5. Na caixa de diálogo Editar Aplicativo FastCGI, clique nas reticências (...) ao lado de EnvironmentVariables para abrir o editor de coleção de variáveis de ambiente.
    A captura de tela mostra a caixa de diálogo Editar aplicativo Rápido C G I com os campos Caminho Completo e Argumentos.

  6. Na caixa de diálogo Editor da Coleção EnvironmentVariables, clique em Adicionar.
    A captura de tela mostra a caixa de diálogo Editor de Coleção de Variáveis de Ambiente para adicionar Membros.

  7. Insira as seguintes informações e clique em OK.

    • Insira "PHP_FCGI_MAX_REQUESTS" em Nome.
    • Insira "10000" como o Valor.

    A captura de tela mostra a caixa de diálogo Editor de Coleção de Variáveis de Ambiente realçando o nome da variável de ambiente.

  8. Clique em OK para fechar a caixa de diálogo Adicionar Aplicativo FastCGI.

Configuração

Atributos

Nenhum.

Elementos filho

Elemento Descrição
environmentVariable Elemento opcional.

Adiciona uma variável de ambiente à coleção de variáveis de ambiente.

Exemplo de configuração

O exemplo de configuração a seguir adiciona um aplicativo FastCGI para PHP, define o atributo instanceMaxRequests como "10000" e define a variável de ambiente PHP_FCGI_MAX_REQUESTS como "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>

Observação

Para PHP, o valor da variável de ambiente PHP_FCGI_MAX_REQUESTS deve ser um número menor ou igual ao valor especificado pelo atributo instanceMaxRequests do elemento <application> do FastCGI.

O exemplo de configuração a seguir adiciona um mapeamento global do manipulador FastCGI para arquivos PHP ao IIS e especifica o caminho completo para um arquivo executável 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>

Observação

As configurações de FastCGI podem ser configuradas por site por meio do uso de aplicativos FastCGI especialmente formatados e por mapeamentos de manipulador, que são diferenciados pela correspondência dos atributos fullPath e arguments para um elemento <application> com o atributo scriptProcessor correspondente no mapeamento <handlers> para o processo FastCGI. Para criar esses mapeamentos, as configurações nos atributos fullPath e arguments para um elemento <application> devem ser adicionadas ao atributo scriptProcessor no mapeamento <handlers> para o processo FastCGI e separados pelo caractere "|" do pipe. Essa combinação serve como uma chave exclusiva para cada aplicativo FastCGI. Por exemplo, o trecho de configuração a seguir mostra dois elementos de exemplo <fastCgi>/<application> e seus mapeamentos de <manipuladores> correspondentes para dois manipuladores PHP específicos do site:

<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>

Exemplo de código

Os códigos de exemplo a seguir adicionam um aplicativo FastCGI para PHP, definem o atributo instanceMaxRequests como "10000" e definem a variável de ambiente PHP_FCGI_MAX_REQUESTS como "10000". Cada amostra também adiciona um mapeamento global do manipulador FastCGI para arquivos PHP ao IIS e especifica o caminho completo para um arquivo executável 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

Observação

Defina o parâmetro commit para apphost quando usar AppCmd.exe para definir essas configurações. Isso confirma os conjuntos de configurações para a seção de local apropriado no arquivo 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()