L’hébergement d’applications PHP sur des plateformes Windows est de plus en plus fréquent. Les IT Pro veulent continuer à exploiter leur compétence sur une plateforme unique sans être obligé de maintenir des plateformes annexes qu’ils ne maîtrisent pas forcément.
De plus, Microsoft a finalement prouvé après plusieurs années que l’hébergement d’applications PHP sur IIS était une pratique saine, pérenne et équivalente à une plateforme Linux/Unix en termes d’administration et de performance.
Nous allons voir dans cet article comment mettre en place simplement une plateforme IIS pour héberger des applications PHP grâce au module FastCGI. Il existe actuellement pour cela deux méthodes. La première est ce que nous faisions à l’époque avec IIS 5.1 et 6.0, c'est-à-dire une installation manuelle mais celle-ci est maintenant beaucoup plus simple. La deuxième méthode est l’usage d’un outil appelé Web Platform Installer, Web PI pour les intimes, qui est un vrai accélérateur pour l’installation de solutions PHP ou .NET tels que Joomla, WordPress, Drupal, BlogEngine, etc.
Nous allons installer PHP 5.3 sur un environnement Windows Server 2008, soit sur un IIS 7.0. Nous pourrions également profiter des nombreuses avancées de IIS 7.5 avec Windows Server 2008 R2 ou encore installer PHP sur Windows Vista ou Windows 7 pour monter une plateforme de développement. Depuis Windows Server 2008, l’extension FastCGI pour IIS est intégrée au système d’exploitation, nous n’avons donc plus besoin de la télécharger comme ce que nous faisons à l’époque avec Windows Server 2003 par exemple.
Nous devons nous assurer que notre fuseau horaire est correctement configuré, que les dernières mises à jour ont été appliquées et que nous disposons des sources de PHP téléchargées depuis http://windows.php.net/. Nous reviendrons sur ce point plus tard dans cet article mais vous pouvez exécuter n’importe quelle version de PHP sur IIS, les dernières étant PHP 5.3.1 et PHP 5.2.11.
Lorsque les prérequis sont remplis, nous pouvons lancer la console « Server Manager » afin d’installer le rôle IIS et d’ajouter la fonctionnalité CGI qui est la seule fonctionnalité nécessaire permettant d’exécuter du PHP sur une plateforme Microsoft.
FastCGI va en fait réutiliser les processus CGI pour supporter les requêtes multiples et donc apporter un gain important en performance par rapport à l’époque. Enfin, pour conclure avec les performances, il faudra se reposer sur l’extension Windows Cache (http://www.iis.net/expand/WinCacheForPhp) pour PHP qui est maintenant disponible afin d’avoir un niveau équivalent versus une plateforme Linux. L’extension Windows Cache pour PHP est d’ailleurs proposée dans Web PI.
Lors du téléchargement des sources de PHP, nous avons le choix entre une archive Zip, un installer MSI ou encore un mode Debug. Ce dernier ne nous intéresse pas. Nous utiliserons l’archive PHP qui propose par défaut 2 fichiers de configuration php.ini. Il y en a un préconfiguré pour le développement et un préconfiguré pour la production. Ensuite nous devons configurer le Handler Mapping de IIS sauf si nous passions par l’installer de PHP qui s’occupe lui-même de cette étape.
L’installer PHP permet également de configurer les variables d’environnement pour que les pages PHP soient interprétées par l’exécutable php-win.exe. On peut également activer des extensions simplement ou encore installer le manuel PHP qui s’avère toujours très utile.
Une fois que nous avons téléchargé et extrait l’archive des sources PHP dans un dossier tel que « C:\PHP5.3\ », nous pouvons lancer la console IIS. Il faut ensuite se rendre dans le site qui hébergera votre application PHP et cliquer sur « Handler Mapping ». Ensuite, il suffit de cliquer sur « Add Module Mapping » en haut à droite de la console et renseigner les différents champs. Le module FastCGIModule est directement proposé et il nous suffira d’aller chercher l’exécutable php-cgi.exe dans le dossier d’installation de PHP. La bonne pratique est bien évidemment de placer les sources de PHP sur une autre partition.
Nous avons maintenant une entrée supplémentaire appelée PHP_via_FastCGI et notre serveur IIS est capable d’interpréter les pages PHP. Si nous voulions utiliser différentes versions de PHP sur notre serveur, il nous suffirait d’ajouter un nouveau module Mapping pointant vers l’exécutable php-cgi.exe de la version de PHP souhaitée en question.
Téléchargez cette ressource
Livre blanc Sécurité et Stockage des documents
Découvrez dans ce livre blanc Kyocera les outils logiciels qui permettent une approche holistique et efficace de la collecte, du stockage, de la gestion et de la sécurisation des documents en entreprise.
Tech - Par
William Bories - Publié le 22 avril 2011