Cette section contient des notes sur l'installation de PHP avec IIS (
Microsoft Internet Information Server).
Avertissement
En utilisant le mode CGI,
votre serveur est ouvert à de possibles attaques sérieuses. Lisez attentivement
notre section sur la sécurité en mode CGI
pour apprendre comment vous défendre contre ces attaques.
Tout d'abord, lisez les
instructions d'installation du manuel. Ne négligez pas
cette étape, elle fournit des informations essentielles sur
l'installation de PHP sur Windows.
Les utilisateurs de CGI doivent définir la directive PHP
cgi.force_redirect
à 0 dans le php.ini. Lisez la
faq sur
cgi.force_redirect qui vous apprendra des détails importants.
De même, les utilisateurs de CGI peuvent vouloir définir la directive
cgi.redirect_status_env.
Lorsque vous utilisez les directives, assurez-vous qu'elles ne soient pas
commentées dans le php.ini.
Le CGI de PHP 4 est nommé php.exe
tandis qu'en PHP 5, il est nommé php-cgi.exe.
En PHP 5, php.exe est le CLI et non le CGI.
Modifiez la variable d'environnement PATH de Windows
afin d'inclure le dossier de PHP. De cette façon, les fichiers DLLs de PHP,
les exécutables de PHP ainsi que le php.ini peuvent tous résider dans
le dossier de PHP sans être dans le dossier système de Windows. Pour plus
de détails, lisez la FAQ sur la
façon de définir le PATH.
L'utilisateur IIS (habituellement IUSR_MACHINENAME) a besoin de permission
pour lire les différents fichiers et dossiers, comme le php.ini, docroot
ainsi que le dossier temporaire hébergeant les sessions.
Assurez-vous que les directives PHP
extension_dir
et doc_root soient correctement
définies dans le php.ini. Ces directives dépendent du système sur lequel
PHP est installé. En PHP 4, extension_dir vaut
extensions tandis qu'en PHP 5, il vaut
ext. Donc, un exemple de valeur pour extensions_dir
en PHP 5 est "c:\php\ext" et un exemple
de valeur pour doc_root pour IIS est
"c:\Inetpub\wwwroot".
Les fichiers d'extensions DLL de PHP, comme php_mysql.dll et
php_curl.dll, peuvent être trouvés dans le paquet compressé
de PHP (et non dans l'installeur de PHP). En PHP 5, beaucoup d'extensions
font parties de PECL et peuvent être téléchargées dans le paquet "Collection de
modules PECL". Les fichiers comme php_zip.dll et
php_ssh2.dll.
Téléchargez les fichiers PHP ici.
Lors de la définition de l'exécutable, la case "Vérifier que ce fichier existe"
doit également être cochée. Pour un faible coût au niveau performance, IIS (ou PWS)
vérifiera que le fichier de script existe et proposera l'identification avant
d'appeler PHP. Cela signifie que le serveur web fourniera des messages
d'erreur sensiblement identiques à des erreurs 404 au lieu des erreurs CGI
stipulant que PHP n'a pu afficher aucune donnée.
PHP peut être installé en tant que binaire CGI ou en tant
que module SAPI. Dans tous les cas, vous devez démarrer
la console d'administration Microsoft (qui doit apparaître comme
'Internet Services Manager', soit depuis le menu des options
Pack de votre Windows NT 4.0 ou le menu 'Control
Panel=>Administrative Tools' sous Windows 2000/XP).
Faites alors un clic droit sur le noeud du serveur web (ceci
doit apparaître comme 'Default Web Server'), et sélectionnez 'Properties'.
Si vous voulez utiliser le binaire CGI, suivez ce qui suit :
Sous 'Home Directory', 'Virtual Directory', ou 'Directory', faites ce qui suit :
Modifier les permissions d'exécution en 'Scripts only'
Cliquez sur le boutton 'Configuration', et choisissez l'onglet
'Application Mappings'. Cliquez sur 'Add' et définissez le chemin vers l'exécutable
vers le fichier CGI approprié.
Un exemple de valeur pour PHP 5 : C:\php\php-cgi.exe.
Ajoutez .php en tant qu'extension. Laissez 'Method
exclusions' vide, et cochez la case 'Script engine' checkbox.
Maintenant, cliquez sur Ok plusieurs fois.
Définissez la sécurité appropriée. (Ceci est fait dans 'Internet
Service Manager'), et, si votre serveur NT utilise le système de fichiers
NTFS, ajoutez le droit à l'exécution pour I_USR_ pour le dossier
qui contient php.exe / php-cgi.exe.
Pour utiliser le module SAPI, faites ce qui suit :
Si vous ne souhaitez pas faire d'identification HTTP en utilisant PHP,
vous pouvez (et vous devez) ignorer cette étape. Dans les filtres ISAPI,
ajoutez un nouveau filtre ISAPI. Utilisez PHP en tant que nom de filtre,
et ajoutez un chemin vers les fichiers php4isapi.dll /
php5isapi.dll.
Sous 'Home Directory', 'Virtual Directory', ou 'Directory', faites ce qui suit :
Modifiez les permissions d'exécution en 'Scripts only'
Cliquez sur le bouton "Configuration" et
ajoutez une nouvelle entrée dans "Application Mappings".
Cliquez sur 'Add' et définissez le chemin d'exécution vers la bibliothèque
DLL ISAPI appropriée. Un exemple de valeur pour PHP 5 est :
C:\php\php5isapi.dll.
Ajoutez .php en tant qu'extension. Laissez 'Method
exclusions' vide, et cochez la case 'Script engine'.
Maintenant, cliquez que Ok plusieurs fois.
Arrêtez totalement IIS (NET STOP iisadmin)
Démarrez IIS (NET START w3svc)
Avec IIS 6 (2003 serveur), ouvrez le gestionnaire IIS, allez aux extensions de
services web, choisissez "Add a new Web service extension", entrez-y un nom comme
PHP, cliquez sur le boutton 'Add' et pour la valeur, choisissez soit le
fichier ISAPI (php4isapi.dll ou
php5isapi.dll), soit le fichier CGI (php.exe ou
php-cgi.exe), puis cochez "Set extension status to
Allowed" et validez en cliquant sur OK.
Afin d'utiliser index.php en tant que page par défaut,
faites ce qui suit : depuis l'onglet 'Documents', choisissez 'Add'.
Entrez-y index.php et validez en cliquant sur OK.
Ajustez l'ordre en choisissant 'Move Up' ou 'Move Down'. Ceci est similaire
à la définission de 'DirectoryIndex' sous Apache.
L'étape ci-dessus doit être répétée pour chaque extension qui doit être associée
aux scripts PHP. .php est le plus courant, cependant
.php3 peut être requis pour certaines applications.
Si vous atteignez 100 % d'utilisation du CPU après quelques minutes, désactivez
l'option de configuration Cache ISAPI Application de IIS.
PWS 4 ne supporte pas ISAPI, uniquement PHP CGI doit être utilisé.
Éditez le fichier pws-php4cgi.reg /
pws-php5cgi.reg (regardez dans le dossier SAPI pour PHP4
ou dans le dossier principal pour PHP 5) pour indiquer la localisation de votre
fichier php.exe /
php-cgi.exe.
Les slash doivent être échappés. Par exemple :
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script
Map] ".php"="C:\\php\\php.exe" (modifiez en
C:\\php\\php-cgi.exe si vous utilisez PHP 5).
Maintenant, intégrez ce fichier de registre dans votre système ; vous devriez
juste avoir à double-cliquer dessus.
Dans le gestionnaire PWS Manager, faites un clic droit sur les
dossiers qui supporteront PHP, et sélectionnez "Properties".
Cochez l'option "Execute" et confirmez.
La méthode recommandée pour configurer ces serveurs
est d'utiliser le fichier INF inclus dans la distribution
(pws-php4cgi.reg dans le dossier SAPI pour PHP 4 ou
pws-php5cgi.reg dans le dossier principal pour PHP 5).
Vous pouvez éditer ce fichier, pour vous assurer que les
extensions et les dossiers d'installation de PHP sont bien
ceux de votre configuration. Ou alors, vous pouvez suivre les
instructions suivantes pour le faire manuellement.
Avertissement
Ces instructions requièrent la manipulation du fichier de
registre de Windows. Une erreur peut laisser votre système dans un
état instable. Nous vous recommandons vivement de sauvegarder ce
fichier en lieu sûr. L'équipe de développement et les
traducteurs de cette documentation ne pourront pas être tenus responsable
d'un quelconque dommage qui pourrait survenir dans votre registre.
Dans le menu "edit", sélectionnez : New->String Value.
Entrez l'extension que vous voulez utiliser pour les scripts PHP.
Par exemple : .php
Double-cliquez sur la chaîne, et entrez le chemin jusqu'Ã
php.exe dans le champ "value data". Exemple :
C:\php\php.exe "%s" %s pour PHP 4 ou
C:\php\php-cgi.exe "%s" %s pour PHP 5.
Répétez ces étapes pour chaque extension que vous désirez associer à vos scripts
PHP.
Les étapes suivantes n'affectent pas la configuration du serveur
web, et ne s'appliquent que si vous voulez que vos scripts PHP
soient exécutés lorsqu'il sont exécutés en ligne de commande
(par exemple, run C:\messcripts\test.php)
ou en double-cliquant sur l'icône. Vous pouvez ignorer
ces étapes si vous préférez que vos scripts PHP s'ouvrent dans un
éditeur de texte, plutôt que de les voir s'exécuter lorsque vous
double-cliquez dessus.
Naviguez jusqu'Ã : HKEY_CLASSES_ROOT
Dans le menu edit, sélectionnez : New->Key.
Donnez le nom de votre extension à la clé.
Par exemple : .php
Sélectionnez le nom de la nouvelle clé dans le panneau de
droite, et double-cliquez dans "default value", puis entrez
phpfile.
Répétez ces instructions pour toutes les extensions que vous avez
associé aux scripts PHP.
Créez une autre New->Key sous
HKEY_CLASSES_ROOT et nommez-la
phpfile.
Sélectionnez la nouvelle clé phpfile et, dans
le panneau de droite, double-cliquez dans "default value" et
entrez PHP Script.
Faites un clic droit dans phpfile et sélectionnez
New->Key, appelez-la Shell.
Faites un clic droit dans Shell et sélectionnez
New->Key, appelez-la open.
Faites un clic droit dans open et sélectionnez
New->Key, appelez-la
command.
Sélectionnez la nouvelle clé command et dans le
panneau de droite, faites un double-clic dans "default value", puis entrez
le chemin jusqu'Ã php.exe. Par exemple :
c:\php\php.exe -q %1 (n'oubliez pas le
%1).
Quittez Regedit.
Si vous utilisez PWS sous Windows, redémarrez pour prendre en
compte le nouveau registre.
Les utilisateurs de PWS et IIS 3 sont prêts à utiliser
leur serveur. Avec IIS 3, vous pouvez utiliser un outil bien pratique de
Steven Genusa pour configurer votre carte des scripts.