Comment installer PHP 8 sur IIS 10 ?

I. Présentation

Après avoir vu comment installer et configurer IIS 10 sur Windows Server 2022, nous allons voir comment installer PHP 8 (ou PHP 7.4) sur un serveur Web IIS 10. De nombreuses applications et sites reposent sur PHP, alors c'est à mon sens incontournable de savoir ajouter PHP sur un serveur IIS. Plus précisément, je vais installer PHP 8.1.4 sur Windows Server 2022, mais vous pouvez appliquer cette procédure avec d'autres versions de PHP et Windows.

Pour installer PHP sur un serveur IIS, il y a deux manières de procéder :

  • À partir de la Web Platform Installer (WPI) de IIS
  • À partir des sources d'installation PHP

La première méthode est clairement la plus rapide, mais à mon avis ce n'est pas la bonne méthode à utiliser, car les packages de la WPI sont très en retard. Par exemple, PHP 8.0.0 est disponible, mais les dernières versions, notamment la 8.1.4 n'est pas disponible. Concernant PHP 7.4, la version la plus récente est 7.4.13 alors que la version 7.4.28 est disponible.

Si vous souhaitez suivre les mises à jour de PHP, notamment pour bénéficier des derniers correctifs de sécurité, je vous recommande d'appliquer la seconde méthode. Cela tombe bien, car c'est la seconde méthode que je vais détailler dans ce tutoriel, même si je vais commencer par vous montrer la WPI pour illustrer mes propos. 😉

Note : je pars du principe que le rôle IIS est déjà installé sur votre serveur Windows (voir mon tutoriel d'installation IIS si besoin).

II. IIS : installation de PHP via Web Platform Installer

Pour installer PHP à partir de la WPI, il faut commencer par l'installer dans IIS. Pour cela, au sein de la console IIS, sur la gauche il faut cliquer "Obtenir de nouveaux composants Web Platform" afin d'être redirigé vers le site du téléchargement.

Après avoir téléchargé et installé l'extension, l'entrée "Web Platform Installer" est visible dans la page d'accueil du serveur IIS.

En accédant à la Web Platform, on peut rechercher "PHP" pour voir tous les paquets correspondants. Là, vous verrez PHP 8.0.0 et PHP 7.4.13, mais pas de versions plus récentes.

C'est dommage, et à mon sens rédhibitoire : passons à la seconde méthode afin d'installer la version PHP que l'on souhaite, à partir des sources officielles.

III. Ajouter PHP à IIS 10

A. Télécharger PHP pour Windows

Commençons par télécharger les sources de PHP. Dans cet article, je vais installer PHP 8.1.4 qui est la dernière version, mais vous pouvez partir sur PHP 7.4 : la procédure est la même.

Vous devez télécharger les sources au format "Zip" de la version "Non Thread Safe" comme le précise la documentation Microsoft.

Installation de PHP 8.1 pour IIS

Dans le nom, on peut voir "VS16 x64" et sur la gauche du site ceci : "The VC15 and VS16 builds require to have the Visual C++ Redistributable for Visual Studio 2015-2019 x64 or x86 installed". Bon, il faut donc que l'on installe Microsoft Visual C++ 2015-2019 sur notre serveur (liens de téléchargement ci-dessus), comme ceci :

Maintenant, nous allons attaquer la partie PHP. Tout d'abord, il faut extraire le contenu de l'archive "php-8.1.4-nts-Win32-vs16-x64.zip" vers le dossier "C:\PHP" (ou ailleurs), car c'est ici que je vais "installer" PHP sur mon serveur.

Installer PHP sur Windows

En fait, PHP ne s'installe pas comme un exécutable classique, comme vous pouvez le constater.

B. Ajouter PHP à la variable d'environnement "Path"

Désormais, nous allons modifier la variable d'environnement "Path" afin d'ajouter le chemin "C:\PHP". Grâce à cette modification, nous pourrons appeler "php" dans une console et Windows sait qu'il devra rechercher dans "C:\PHP".

Accédez aux propriétés avancées du système (Paramètres > Système > A propos de > Paramètres avancés du système) et cliquez sur "Variables d'environnement" (1). Ensuite, sélectionnez la variable "Path" (2) et cliquez sur le bouton "Modifier" (3). Une fenêtre s'ouvre... Cliquez sur "Nouveau" (4) puis indiquez "C:\PHP" (5). Validez une première fois (6), puis une seconde fois (7).

Si l'on ouvre une console PowerShell et que l'on indique la commande ci-dessous, elle va fonctionner ! C'est aussi un moyen de voir qu'en ligne de commande, PHP répond bien.

php -info

C. Installer le rôle CGI sur IIS

Pour que PHP fonctionne, nous devons ajouter le module "CGI" à notre serveur IIS. Il n'est pas inclus par défaut lorsque l'on installe IIS. Pour l'installer, suivez ces étapes :

1 - Ouvrez le gestionnaire de serveur et cliquez sur "Gérer" puis "Ajouter des rôles et fonctionnalités".

2 - Passez les écrans jusqu'à l'étape "Rôles de serveurs"

3 - Cochez la case correspondante au rôle "CGI" sous : Web Server (IIS) > Web Server > Application Development.

IIS ajouter CGI pour PHP

Poursuivez et lancez l'installation, ce qui devrait prendre quelques secondes.

D. Mapper PHP dans IIS

Il est temps d'intégrer PHP à IIS. Ouvrez la console IIS, cliquez sur le nom de votre serveur en haut à gauche puis sur "Mappages de gestionnaires".

Ensuite, cliquez en haut à droite sur "Ajouter un mappage de modules..." et renseignez les champs comme ceci :

  • Chemin des demandes : *.php
  • Module : FastCgiModule
  • Exécutable : C:\PHP\php-cgi.exe
  • Nom : PHP

En fait, on indique à IIS que lorsqu'il y a une demande d'un client web sur un fichier ".php", il doit la traiter grâce à l'exécutable "php-cgi.exe" qui s'appuie sur le module CGI de IIS que l'on vient d'installer. Vous obtenez ceci :

Cliquez sur "OK" puis validez avec "Oui".

Voilà, PHP est intégré à IIS ! 🙂

IV. Tester PHP sur IIS

Pour vérifier que PHP fonctionne bien avec notre serveur IIS lorsque l'on accède à une page PHP, et bien nous allons créer une page PHP. La racine de mon site étant "C:\www", je vais créer la page "test_php.php" dans ce dossier. Cette page va simplement exécuter la fonction phpinfo() pour afficher toute la configuration PHP active. Voici son code source :

<?php
phpinfo();
?>

Une fois que la page web est prête, on va tenter d'y accéder à partir d'un navigateur via l'URL suivante :

http://adresse-ip-serveur/test_php.php

La page s'affiche, PHP fonctionne bien ! On peut voir que c'est bien la version PHP 8.1.4 de PHP !

PHP 8.1 sur IIS 10

Remarque : cette page est pratique pour visualiser la configuration complète de PHP, mais vous ne devez pas la laisser accessible à tout le monde, car elle donne des informations sensibles sur la configuration. Si votre serveur est exposé sur Internet, supprimez le fichier après avoir testé.

V. Modifier la configuration de PHP avec IIS

Pour modifier la configuration de PHP, il faut éditer le fichier "php.ini" comme on le fait sur une machine Linux. Ce fichier se trouve tout simplement dans "C:\PHP", sauf que pour le moment il se nomme autrement :

php.ini-production

On peut voir qu'il contient la configuration de PHP :

Le problème, c'est que si vous modifiez ce fichier, cela ne changera rien. En fait, il faut le renommer en "php.ini" à la place de son nom d'origine "php.ini-production". Une fois que c'est fait, vous pouvez modifier les différentes options. Par exemple, la directive "upload_max_filesize" qui sert à gérer la taille maximale autorisée pour charger un fichier (par défaut 2 Mo).

Configuration php.ini sur Windows avec IIS

À chaque fois qu'une modification est effectuée dans "php.ini", il faut recharger le pool d'application pour que les changements soient pris en compte. Pour cela, dans la console IIS cliquez sur "Pools d'applications", puis effectuez un clic droit sur "DefaultAppPool" afin de cliquer sur "Recycler".

Un petit tour sur la page où s'affiche le phpinfo() permettra de vérifier que le changement est bien pris en compte ! 🙂

Voilà, PHP est installé sur le serveur Web IIS ! Votre application qui a besoin d'utiliser PHP devrait fonctionner !

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

florian has 4110 posts and counting.See all posts by florian

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.