php_iis
Voici une petite note technique sur les connecteurs PHP avec IIS 7 après celle sur IIS 6.0. Et oui, si on ne veut utiliser qu’un seul serveur web IIS pour appeler des pages Coldfusion et PHP par exemple, il faut installer ce fameux connecteur.

Pré-requis :
- IIS 7.0
- PHP (5.2 ou supérieur)

Paramétrage :

  • 1) Pour ce faire, il faut d’abord activer le module FastCGI dans windows

Ouvrez une invite de commande et rentrer : optionalfeatures.exe
Dans la fenêtre, dépliez “Internet Information Services” puis “World Wide Web Services” et enfin “Application Development Features”. Cochez dans la liste : “CGI”.

  • 2) Ensuite, modifiez dans le fichier de config de PHP (php.ini) les paramètres CGI et FastCGI :

fastcgi.impersonate = 1
fastcgi.logging = 0
cgi.fix_pathinfo=1
cgi.force_redirect = 0

  • 3) Enfin, il faut paramétrer l’extension PHP dans IIS
  • * Soit en lancant les scripts suivants :
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI ^
/+[fullPath='c:\PHP\php-cgi.exe']
Modifiez le chemin de votre installation de PHP dans le paramètre fullPath, si elle est différente. Ce script permet de rajouter un pool de processus FAST CGI qui utilise php-cgi.exe pour l’exécution des pages PHP.

 

%windir%\system32\inetsrv\appcmd set config /section:system.webServer/handlers ^
/+[name='PHP_via_FastCGI', path='*.php',verb='*',modules='FastCgiModule',^
scriptProcessor='c:\PHP\php-cgi.exe',resourceType='Either']
Et cette commande permet de créer un mapping *.php dans IIS. Il faut aussi modifier le chemin de votre installation de PHP dans le paramètre scriptProcessor si elle est différente.

 

  • * Soit via l’interface :
Ouvrez IIS, sélectionnez votre serveur à gauche et ouvrez “Handler Mappings”
handler_mappings
Dans le panneau à gauche, cliquez sur “Add Module Mapping” et saisissez les valeurs suivantes dans les champs :
add_module_mappings

Vous pouvez maintenant appeler des pages php via IIS!

Erreur possible :

 - ERROR 500 : The FastCGI process exited unexpectedly

Pour ma part sur windows 7, j’ai du décommenter les extensions dans php.ini

;PHPExt
;extension=php_bz2.dll
[...]

J’ai récupéré plus d’informations sur l’erreur en lançant l’exécutable php-cgi.exe, où j’ai eu le message suivant :

PHP Startup: Unable to load dynamic library 'C:\Windows\System32; [...] ext\php_bz2.dll - The specified module could not be found.

Autre possibilité trouvée dans les forums, vérifiez votre path des extensions : extension_dir il doit pointer sur votre installation de PHP.

 

Plus d’infos sur :
http://www.php.net/manual/en/install.windows.iis7.php

 

SBU

 Last News