Après avoirs vu comment installer IIS sur Windows Serveur 2025, nous allons passer à l’installation de PHP sur celui-ci.
Ce tutoriel devrait fonctionner sur les versions antérieures de Windows Serveur et second point : je vous déconseille l’installation de PHP sur IIS et plus généralement sur Windows, qui ne peut permet pas d’avoir de bonne performance applicative et qui est limité dans les extensions disponibles.
Pour moi le seul intérêt de passer par IIS avec une application PHP est l’utilisation possible de SSO.
Il y a quelques temps (voir années), j’ai écris un tutoriel sur l’installation de PHP sur IIS, cette manipulation étaient « facile » car on passait par Web Platform dans IIS qui permettait de faire cette installation à l’aide d’un « store ».
En cliquant sur le lien qui est disponible encore sur Windows Serveur 2025, sur la page de téléchargement, nous avons un message qui nous indique que celle-ci n’est plus disponible depuis le 31/12/2022.
Donc pour faire simple, dans ce tutoriel, on va voir comment installer PHP sur IIS sans passer par Web Platform Installer (WPI).
Prérequis à PHP sur IIS
La première étape va être d’installer Microsoft Visual C++ 2015-2022 afin que PHP fonctionne sur votre serveur IIS, au moment de la rédaction du tuto, PHP est compilé avec VS2016.
Le second prérequis c’est d’avoir la fonctionnalité CGI de IIS d’installé.
Si vous ne l’avez pas d’installer, il suffit de lancer l’assistant d’ajout de rôles et de fonctionnalisé et de venir sélectionner CGI dans la sélection du rôle IIS
Télécharger PHP pour Windows
On va commencer par cette étape, qui va être de récupérer PHP pour Windows, vous pouvez télécharger directement sur le site suivant : https://windows.php.net/download/
Pour IIS, on va utiliser la version Non Thread Safe, je vais commencer par télécharger la version 8.3(.11) de PHP au format Zip.
Une fois téléchargé, décompresser l’archive.
Déplacer l’archive et son contenu dans un dossier dédié aux versions de PHP sur le serveur, par habitude, je les mets dans le dossier suivant C:\PHP puis je déplace le dossier décompressé aux complets dedans.
Libre à vous de trouver comme vous souhaitez faire.
Tester le bon fonctionnement de PHP sur Windows
Depuis le Terminal Windows, aller dans le dossier où se trouve les fichiers de PHP :
Ensuite dans le dossier entrer la commande suivante :
.\php.exe -v
Cela retourne dans la console la version de PHP.
Ce petit test permet de valider que Visual C++ est bien installé à la bonne version sur le serveur.
Je vais profiter cette partie pour faire une petite parenthèse, si vous êtes habitué à Linux et que vous souhaitez utiliser la commande php
depuis n’importe quel emplacement depuis Windows, il faut modifier une variable d’environnement PATH
en indiquant le dossier parent du fichier php.exe
.
Personnellement, je ne fais jamais cette manipulation, car j’ai souvent tendance à avoir plusieurs versions de PHP sur le même serveur et donc il faut penser à mettre à jour régulièrement le chemin de la variable d’environnement. Je préfère utiliser les chemins complets quand je passe en ligne de commande comme pour les tâches planifiés qui me permet de contrôler la version de PHP utilisée.
Ajouter PHP à IIS
Maintenant que tout est prêt, on va passer à la configuration de IIS, qui se fait par un mappage, pour faire court, on va indiquer à IIS, quand il rencontre un fichier .php
de l’envoyer à l’exécutable php-cgi.exe.
Depuis la console IIS, sélectionner le serveur 1 dans le panneau de navigation et cliquer sur Mappages de gestionnaires 1.
On arrive sur une liste de mappages déjà configurés, c’est ici que l’on va ajouter la liaison .php vers l’exécutable, dans le panneau d’Actions, cliquer sur Ajouter un mappage de modules 1.
Voici les éléments de configurations :
- 1 Chemin des demandes : *.php, cela permet d’inclure tous les fichiers .php qui serait présent sur le serveur
- 2 Module : choisir FastCgiModule
- 3 Exécutable : Indiquer le chemin complet du fichier php-cgi.exe
- 4 Nommer le module
Pour valider cliquer sur le bouton OK 5.
Confirmer la création de l’entrée en cliquant sur Oui 1.
Le mappage est ajouté au niveau du serveur.
On va maintenant tester le bon fonctionnement de PHP, pour cela je vais créer un fichier nommer phpinfo.php
qui sera accessible depuis un site de IIS avec la fonction phpinfo();
qui permet d’avoir les informations de version de PHP.
Ensuite appeler la page depuis un navigateur, vous devriez avoir ceci :
Vous pouvez maintenant héberger des sites développer en PHP sur IIS.
Personnaliser la configuration de PHP
Maintenant, je vais vous expliquer comment personnaliser la configuration de PHP avec le fichier php.ini.
Si vous regardez la précédente capture, on peut voir que la directive Loaded configuration File est à la valeur (none)
.
Dans ce cas, PHP est exécuté avec tous ces paramètres par défaut, si vous avez besoin de les modifier, il faut passer par le fichier php.ini.
Dans le dossier où se trouve l’exécutable php.exe, nous avons des modèles de configuration :
- php.ini-development
- php.ini-production
Renommer l’un des deux fichiers en php.ini
.
Redémarrer 1 IIS pour la prise en compte.
Actualiser la page d’information de PHP et on peut voir maintenant que le fichier php.ini est chargé.
Vous pouvez maintenant éditer le fichier php.ini pour adapte la configuration, ne pas oublier de redémarrer le service IIS pour la prise en compte des modifications.
Il est aussi possible via des lignes de configurations particulières de charger des fichiers de configuration supplémentaire qui permettent une configuration de PHP différentes en fonctions du site, ici les modifications dans le fichier php.ini seront appliqués à l’ensemble des sites sur IIS qui utilisent cette version de PHP.
Plusieurs versions de PHP sur IIS
Pour continuer ce tutoriel, on va voir comment mettre plusieurs version de PHP sur le même serveur IIS.
Commencer par télécharger une autre version de PHP, ici je vais prendre la 8.2.
Comme pour la première version de PHP que l’on a installé, décompresser l’archive et placer là à l’endroit souhaiter sur le serveur.
Sur la console IIS, toujours au niveau du serveur, aller de nouveau sur le Mappages de gestionnaires et ajouter de nouveau un mappage de module.
De la même manière configurer la nouvelle version de PHP comme module.
Les deux versions de PHP sont configurées, afin de savoir quelle version est prioritaire, cliquer sur Afficher une liste triée 1.
Sur la capture ci-dessous, on peut voir que c’est la dernière version qui a été ajoutée qui est prioritaire, pour changer l’ordre, il suffit de sélectionner le mappage configuré et d’utiliser les flèches qui se trouve dans la panneau Actions.
On va maintenant modifier le site Demo-IIS pour qu’il utilise PHP 8.2 et non la PHP 8.3, pour cela sélectionner le site 1 et cliquer sur Mappages de gestionnaire 2.
Cliquer ensuite sur Afficher une liste triée 1.
Sélectionner la version de PHP souhaitée 1 et cliquer sur Monter 2.
Un message s’affiche indiquant que vous allez « casser » l’héritage de configuration dans IIS pour ce paramètre, cliquer sur Oui 1.
Au niveau du site, la première version est maintenant la version PHP 8.2.
Sur le site par défaut, j’ai aussi créé un fichier phpinfo.php, comme vous pouvez le voir sur la capture ci-dessous, j’ai bien deux version différentes de PHP sur les deux sites IIS.
Vous savez maintenant comment installer PHP et le configurer sur un serveur Web IIS.