FastCGI <fastCgi>
Vue d’ensemble
L’élément <fastCgi>
contient une collection d’éléments <application>
, chacun d’entre eux créant une définition de pool d'applications FastCGI. Internet Information Services (IIS) 7 inclus le composant FastCGI. Ce composant vous offre une plus grande fiabilité et de meilleures performances et vous permet d’exécuter l’infrastructure d’application PHP et d’autres infrastructures d’application web sur IIS 7.
La définition de pool d’applications FastCGI la plus simple nécessite d’inclure l’attribut fullPath dans un élément <application>
pour définir les fichiers binaires à utiliser pour l’infrastructure d’application spécifique. Pour l’infrastructure PHP, définissez l’attribut fullPath sur le répertoire et le nom de fichier des fichiers binaires PHP.
D’autres attributs sont facultatifs et vous laissent configurer un certain nombre d’autres paramètres. Ceux-ci incluent le nombre maximal de requêtes qu’un processus de travail FastCGI peut traiter avant d’être recyclé, le nombre maximal de processus de travail pour un pool d'applications et la durée maximale de traitement d’une requête FastCGI.
Remarque
Pour traiter les demandes à l’aide de FastCGI, vous devez d’abord mapper le chemin d’accès et les extensions de nom de fichier spécifiques au module FastCGI et spécifier le processus FastCGI cible en tant que processeur de script.
Nouveautés dans IIS 7.5
IIS 7.5 a ajouté les attributs suivants à l’élément <fastCgi>
/<application>
:
- L’attribut monitorChangesTo vous permet de spécifier un fichier permettant de surveiller les modifications susceptibles d’affecter le comportement d’une application FastCGI. Par exemple, si vous utilisez l’infrastructure PHP, vous pouvez configurer IIS pour surveiller le fichier PHP.INI pour les modifications en spécifiant le chemin complet du fichier dans l’attribut monitorChangesTo.
- L’attribut stderrMode spécifie la façon dont IIS 7 gérera les erreurs renvoyées par une application FastCGI via le flux STDERR.
- L’attribut signalBeforeTerminateSeconds vous permet de configurer IIS pour attendre une période spécifiée après que IIS signale à une application FastCGI qu’il doit arrêter. Cela permet à une application FastCGI de nettoyer tous les paramètres avant que IIS ne termine le processus.
Compatibilité
Version | Notes |
---|---|
IIS 10.0 | L’élément <fastCgi> n’a pas été modifié dans IIS 10.0. |
IIS 8.5 | L’élément <fastCgi> n’a pas été modifié dans IIS 8.5. |
IIS 8.0 | L’élément <fastCgi> n’a pas été modifié dans IIS 8.0. |
IIS 7.5 | L’élément <application> de la collection <fastCgi> a été mis à jour dans IIS 7.5 avec les attributs monitorChangesTo, stderrMode et signalBeforeTerminateSeconds. |
IIS 7.0 | L’élément <fastCgi> 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
- Dans la barre des tâches, cliquez sur Gestionnaire de serveur.
- Dans Gestionnaire de serveur, cliquez sur le menu Gérer, puis sur Ajouter des rôles et des fonctionnalités.
- 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.
- À la page Rôles de serveur, développez Serveur web (IIS), Serveur web, Développement d’applications, puis sélectionnez CGI. Sélectionnez Suivant.
- Dans la page Sélectionner des fonctionnalités, cliquez sur Suivant.
- Dans la page Confirmer les sélections d’installation, cliquez sur Installer.
- Dans la page Résultats , cliquez sur Fermer.
Windows 8 ou Windows 8.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.
- Dans Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.
- Développez Internet Information Services, Services World Wide Web, Fonctionnalités de développement d’applications, puis sélectionnez CGI.
- Cliquez sur OK.
- Cliquez sur Fermer.
Windows Server 2008 ou Windows Server 2008 R2
- Dans la barre des tâches, cliquez sur Démarrer, pointez sur Outils d’administration, puis cliquez sur Gestionnaire de serveur.
- Dans le volet hiérarchie du Gestionnaire de serveur, développez Rôles, puis cliquez sur Serveur web (IIS).
- 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.
- À 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.
- Dans la page Confirmer les sélections pour l'installation, cliquez sur Installer.
- Dans la page Résultats , cliquez sur Fermer.
Windows Vista ou Windows 7
- Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
- Dans Panneau de configuration, cliquez sur Programmes et fonctionnalités, puis sur Activer ou désactiver des fonctionnalités Windows.
- Développez Internet Information Services, sélectionnez CGI, puis cliquez sur OK.
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 https://www.php.net/.
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).
Dans le volet Connexions, cliquez sur le nom du serveur pour lequel vous souhaitez configurer les mappages de gestionnaires FastCGI.
Dans le volet Accueil, double-cliquez sur Mappages de gestionnaires.
Dans le volet Actions , cliquez sur Ajouter un mappage de modules.
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 ».
Cliquez sur Restrictions des demandes.
Sélectionnez Appeler le gestionnaire uniquement si la demande est mappée.
Cliquez pour sélectionner l’option Fichier ou Dossier.
Cliquez sur OK.
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.
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 de gestionnaire FastCGI pour PHP de cet article.
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).
Dans le volet Connexions, cliquez sur le nom du serveur pour lequel vous souhaitez configurer les paramètres FastCGI.
Dans le volet Accueil, double-cliquez sur Paramètres FastCGI.
Dans le volet Actions, cliquez sur Ajouter un pool d’applications
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
.
Cliquez sur les points de suspension (…) en regard de EnvironmentVariables pour ouvrir l’éditeur de collections de variables d’environnement.
Dans la boîte de dialogue Éditeur de collections EnvironmentVariables, cliquez sur Ajouter.
Entrez les informations suivantes, puis cliquez sur OK.
Entrez « PHP_FCGI_MAX_REQUESTS » pour le nom.
Entrez « 10000 » pour la valeur.
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 https://www.php.net/.
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).
Dans le volet Connexions, cliquez sur le nom du serveur pour lequel vous souhaitez configurer les paramètres FastCGI.
Dans le volet Accueil, double-cliquez sur Paramètres FastCGI.
Mettez en surbrillance l’application PHP dans le volet Paramètres FastCGI, puis cliquez sur Modifier dans le volet Actions
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.
Dans la boîte de dialogue Éditeur de collections EnvironmentVariables, cliquez sur Ajouter.
Entrez les informations suivantes, puis cliquez sur OK.
Entrez « PHP_FCGI_MAX_REQUESTS » pour le nom.
Entrez « 10000 » pour la valeur.
Cliquez sur OK pour fermer la boîte de dialogue Ajouter une application FastCGI.
Configuration
Vous pouvez configurer l’élément <fastCgi>
au niveau du serveur dans le fichier ApplicationHost.config ou bien au niveau du site, au niveau de l’application ou au niveau du répertoire dans le fichier Web.config.
Attributs
Aucune.
Éléments enfants
Élément | Description |
---|---|
application |
Élément facultatif. Ajouter une définition du pool de processus FastCGI à la collection de définitions de pool de processus FastCGI. |
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()