Partager via


Variable d’environnement <environmentVariable>

L’élément <environmentVariable> de l’élément <environmentVariables> ajoute une paire nom/valeur unique d’une variable d’environnement qu’Internet Information Services (IIS) 7 transmettra à un processus FastCGI lors de son lancement.

Chaque application FastCGI installée sur IIS 7 peut autoriser ou exiger des variables d’environnement pour configurer le fonctionnement de l’application FastCGI. Par exemple, une application FastCGI peut nécessiter une variable d’environnement qui spécifie l’emplacement du fichier de configuration de l’application, tandis qu’une autre application FastCGI peut nécessiter une variable d’environnement qui spécifie le nombre de requêtes après lesquelles elle devra être recyclée.

Compatibilité

Version Notes
IIS 10.0 L’élément <environmentVariable> n’a pas été modifié dans IIS 10.0.
IIS 8.5 L’élément <environmentVariable> n’a pas été modifié dans IIS 8.5.
IIS 8.0 L’élément <environmentVariable> n’a pas été modifié dans IIS 8.0.
IIS 7.5 L’élément <environmentVariable> n’a pas été modifié dans IIS 7.5.
IIS 7.0 L’élément <environmentVariable> de l’élément <environmentVariables> a été introduit dans IIS 7.0.
IIS 6.0 S/O

Programme d’installation

Pour utiliser l’environnement FastCGI, vous devez d’abord installer le service de rôle CGI. Le processus d’installation inscrit le service de rôle CGI (Common Gateway Interface) dans les éléments <globalModules> et <modules>. Vous n’avez pas besoin d’effectuer d’autres étapes pour installer l’environnement FastCGI.

Windows Server 2012 ou Windows Server 2012 R2

  1. Dans la barre des tâches, cliquez sur Gestionnaire de serveur.
  2. Dans Gestionnaire de serveur, cliquez sur le menu Gérer, puis sur Ajouter des rôles et des fonctionnalités.
  3. Dans l’Assistant Ajout de rôles et de fonctionnalités, cliquez sur Suivant. Sélectionnez le type d’installation, puis cliquez sur Suivant. Sélectionnez le serveur de destination, puis cliquez sur Suivant.
  4. À la page Rôles de serveur, développez Serveur web (IIS), Serveur web, Développement d’applications, puis sélectionnez CGI. Sélectionnez Suivant.
    Capture d’écran montrant C G I sélectionné pour Windows Server 2012.
  5. Dans la page Sélectionner des fonctionnalités, cliquez sur Suivant.
  6. Dans la page Confirmer les sélections d’installation, cliquez sur Installer.
  7. Dans la page Résultats , cliquez sur Fermer.

Windows 8 ou Windows 8.1

  1. Dans l’écran d’accueil, déplacez le pointeur jusqu’au coin inférieur gauche, cliquez avec le bouton droit sur le bouton Démarrer, puis cliquez sur Panneau de configuration.
  2. Dans Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.
  3. Développez Internet Information Services, Services World Wide Web, Fonctionnalités de développement d’applications, puis sélectionnez CGI.
    Capture d’écran montrant C G I sélectionné pour Windows 8.
  4. Cliquez sur OK.
  5. Cliquez sur Fermer.

Windows Server 2008 ou Windows Server 2008 R2

  1. Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire de serveur.
  2. Dans le volet hiérarchie du Gestionnaire de serveur, développez Rôles, puis cliquez sur Serveur web (IIS).
  3. Dans le volet Serveur web (IIS), faites défiler jusqu’à la section Services de rôle, puis cliquez sur Ajouter des services de rôle.
  4. À la page Sélectionner des services de rôle de l’Assistant Ajout de services de rôle, sélectionnez CGI puis cliquez sur Suivant.
    Capture d’écran montrant la page Sélectionner des services de rôle dans la boîte de dialogue Ajouter des services de rôle pour Windows Server 2008. C G I est sélectionné.
  5. Dans la page Confirmer les sélections pour l'installation, cliquez sur Installer.
  6. Dans la page Résultats , cliquez sur Fermer.

Windows Vista ou Windows 7

  1. Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
  2. Dans Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.
  3. Développez Internet Information Services, sélectionnez CGI, puis cliquez sur OK.
    Capture d’écran montrant C G I sélectionné pour Windows Vista ou Windows 7.

Procédure

Remarque pour les utilisateurs d’IIS 7.0 : certaines étapes décrites dans cette section peuvent nécessiter l’installation du pack d’administration Microsoft pour IIS 7.0, qui inclut une interface utilisateur pour les paramètres FastCGI. Pour installer le pack d’administration Microsoft pour IIS 7.0, consultez l’URL suivante :

Comment créer un mappage de gestionnaire FastCGI global pour PHP

Remarque

Avant que la procédure suivante fonctionne, vous devez avoir déjà installé des fichiers binaires qui exécutent le chemin d’accès du fichier ou l’extension de nom de fichier que vous spécifiez. Cet exemple utilise une implémentation PHP disponible sur www.php.net.

  1. Ouvrez le Gestionnaire Internet Information Services (IIS) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, cliquez sur Outils, puis sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Cliquez sur Démarrer, placez le curseur sur Outils d’administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
      • Double-cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
  2. Dans le volet Connexions, cliquez sur le nom du serveur pour lequel vous souhaitez configurer les mappages de gestionnaires FastCGI.

  3. Dans le volet Accueil, double-cliquez sur Mappages de gestionnaires.
    Capture d’écran montrant le volet Accueil du site web par défaut, avec les mappages de gestionnaires sélectionnés.

  4. Dans le volet Actions , cliquez sur Ajouter un mappage de modules.
    Capture d’écran montrant le volet Mappages de gestionnaires.

  5. Saisissez les informations suivantes :

    • Entrez l’extension de nom de fichier dans la zone de texte Chemin de requête. Par exemple, « *.php ».
    • Cliquez sur FastCgiModule dans la liste déroulante Module.
    • Entrez le chemin d’accès au moteur de script dans la zone Exécutable. Par exemple, « C:\PHP\php-cgi.exe ».
    • Entrez un nom unique pour le mappage de gestionnaire dans la zone Nom. Par exemple, « PHP-FastCGI ».

    Capture d’écran montrant la boîte de dialogue Ajouter un mappage de module.

    • Cliquez sur Restrictions des requêtes.

    • Sélectionnez Appeler le gestionnaire uniquement si la requête est mappée.

    • Cliquez pour sélectionner l’option Fichier ou Dossier.

    • Cliquez sur OK.

      Capture d’écran montrant la boîte de dialogue Restrictions de demande, avec fichier ou dossier sélectionné.

  • Cliquez sur OK.

  • Si vous êtes invité à créer une application FastCGI dans la boîte de dialogue Ajouter un mappage de module, cliquez sur Oui.
    Capture d’écran montrant la zone de message Ajouter un mappage de module.

    Remarque

    Cela crée automatiquement une application FastCGI pour le mappage de gestionnaire que vous venez de créer. Si vous choisissez Non, vous pouvez créer manuellement une application FastCGI ultérieurement.

Comment créer une application FastCGI pour PHP

Remarque

Avant que la procédure suivante fonctionne, vous devez avoir déjà installé des fichiers binaires qui exécutent le chemin d’accès du fichier ou l’extension de nom de fichier que vous spécifiez. Cet exemple utilise une implémentation PHP disponible sur www.php.net.

Remarque

L’ajout d’une application FastCGI n’ajoute pas automatiquement un mappage de gestionnaire. Pour ce faire, vous devez suivre les étapes décrites dans la section Procédure de création d’un mappage global de gestionnaire FastCGI pour PHP de cet article.

  1. Ouvrez le Gestionnaire des services Internet (IIS) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, cliquez sur Outils, puis sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Cliquez sur Démarrer, placez le curseur sur Outils d’administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
      • Double-cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
  2. Dans le volet Connexions, cliquez sur le nom du serveur pour lequel vous souhaitez configurer les paramètres FastCGI.

  3. Dans le volet Accueil, double-cliquez sur Paramètres FastCGI.
    Capture d’écran montrant le volet Accueil DU SERVEUR, avec Fast C G I Paramètres sélectionné.

  4. Dans le volet Actions, cliquez sur Ajouter un pool d’applications...
    Capture d’écran montrant le volet Paramètres Fast C G.

  5. Dans la boîte de dialogue Ajouter une application FastCGI, entrez les informations suivantes :

    • Entrez le chemin d’accès au moteur de script dans la zone Chemin d’accès complet. Par exemple, « C:\PHP\php-cgi.exe ».

    • Entrez le nombre maximal de requêtes pour l’application FastCGI.

      Remarque

      Pour PHP, ce nombre doit être inférieur ou égal au nombre maximal de requêtes pour l’environnement PHP, qui est configuré à l’aide de la variable d’environnement PHP_FCGI_MAX_REQUESTS.

    Capture d’écran montrant la boîte de dialogue Ajouter une application Fast C G I.

  6. Cliquez sur les points de suspension () en regard de EnvironmentVariables pour ouvrir l’éditeur de collections de variables d’environnement.

  7. Dans la boîte de dialogue Éditeur de collections EnvironmentVariables, cliquez sur Ajouter.
    Capture d’écran montrant la boîte de dialogue Éditeur de collection variables d’environnement.

  8. Entrez les informations suivantes, puis cliquez sur OK :

    • Entrez « PHP_FCGI_MAX_REQUESTS » pour le nom.
    • Entrez « 10000 » pour la valeur.

    Capture d’écran montrant la boîte de dialogue Éditeur de collection variables d’environnement avec une entrée sous Membres.

  9. Cliquez sur OK pour fermer la boîte de dialogue Ajouter une application FastCGI.

Ajout d’une variable d’environnement FastCGI pour PHP

Remarque

Avant que la procédure suivante fonctionne, vous devez avoir déjà installé des fichiers binaires qui exécutent le chemin d’accès du fichier ou l’extension de nom de fichier que vous spécifiez. Cet exemple utilise une implémentation PHP disponible sur www.php.net.

  1. Ouvrez le Gestionnaire Internet Information Services (IIS) :

    • Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :

      • Dans la barre des tâches, cliquez sur Gestionnaire de serveur, cliquez sur Outils, puis sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows 8 ou Windows 8.1 :

      • Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
      • Cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :

      • Cliquez sur Démarrer, placez le curseur sur Outils d’administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
    • Si vous utilisez Windows Vista ou Windows 7 :

      • Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
      • Double-cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
  2. Dans le volet Connexions, cliquez sur le nom du serveur pour lequel vous souhaitez configurer les paramètres FastCGI.

  3. Dans le volet Accueil, double-cliquez sur Paramètres FastCGI.
    Capture d’écran montrant le volet Accueil DU SERVEUR. Fast C G I Paramètres est sélectionné.

  4. Mettez en surbrillance l’application PHP dans le volet Paramètres FastCGI, puis cliquez sur Modifier... dans le volet Actions.
    Capture d’écran montrant le volet Fast C G Paramètres, avec p h p dot e x e listé sous Chemin d’accès complet.

  5. Dans la boîte de dialogue Modifier l’application FastCGI, cliquez sur les points de suspension () en regard de EnvironmentVariables pour ouvrir l’éditeur de collections des variables d’environnement.
    Capture d’écran montrant la boîte de dialogue Modifier l’application Fast C G I.

  6. Dans la boîte de dialogue Éditeur de collections EnvironmentVariables, cliquez sur Ajouter.
    Capture d’écran montrant la boîte de dialogue Éditeur de collection variables d’environnement avec des champs vides.

  7. Entrez les informations suivantes, puis cliquez sur OK :

    • Entrez « PHP_FCGI_MAX_REQUESTS » pour le nom.

    • Entrez « 10000 » pour la valeur.

      Capture d’écran montrant la boîte de dialogue Éditeur de collection des variables d’environnement avec 1 entrée sous Membres.

  8. Cliquez sur OK pour fermer la boîte de dialogue Ajouter une application FastCGI.

Configuration

Attributs

Attribut Description
name Attribut de chaîne facultatif.

Spécifie le nom de la variable d’environnement à passer au processus FastCGI.
Value Attribut de chaîne facultatif.

Spécifie la valeur de la variable d’environnement à passer au processus FastCGI.

Éléments enfants

Aucune.

Exemple Configuration

L’exemple de configuration suivant ajoute une application FastCGI pour PHP, définit l’attribut instanceMaxRequests sur « 10000 », et définit la variable d’environnement PHP_FCGI_MAX_REQUESTS sur « 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>

Remarque

Pour PHP, la valeur de la variable d’environnement PHP_FCGI_MAX_REQUESTS doit être un nombre inférieur ou égal à la valeur spécifiée par l’attribut instanceMaxRequests de l’élément FastCGI <application>.

L’exemple de configuration suivant ajoute un mappage de gestionnaire FastCGI global pour les fichiers PHP à IIS et spécifie le chemin d’accès complet d’un fichier exécutable 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>

Remarque

Les paramètres FastCGI peuvent être configurés par site à l’aide d’une application FastCGI spécialement mise en forme et par des mappages de gestionnaires, qui se distinguent en faisant correspondre les attributs fullPath et arguments d’un élément <application> avec l’attribut scriptProcessor correspondant dans le mappage <handlers> pour le processus FastCGI. Pour créer ces mappages, les paramètres des attributs fullPath et arguments d’un élément <application> doivent être ajoutés à l’attribut scriptProcessor dans le mappage <handlers> du processus FastCGI et séparés par le caractère « | » du canal. Cette combinaison sert de clé unique pour chaque application FastCGI. Par exemple, l’extrait de configuration suivant montre deux exemples d’éléments <fastCgi >/<application> et leurs mappages de <gestionnaires> correspondants pour deux gestionnaires PHP spécifiques au 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>

Exemple de code

Les exemples de code suivants ajoutent une application FastCGI pour PHP, définissent l’attribut instanceMaxRequests sur « 10000 », puis définissent la variable d’environnement PHP_FCGI_MAX_REQUESTS sur « 10000 ». Chaque exemple ajoute également un mappage de gestionnaire FastCGI global pour les fichiers PHP à IIS et spécifie le chemin complet d’un fichier exécutable 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

Remarque

Vous devez veiller à définir le paramètre commit sur apphost quand vous utilisez AppCmd.exe pour configurer ces paramètres. Cela valide les paramètres de configuration dans la section d’emplacement appropriée dans le fichier 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()