Installer PHP/Symfony2 sous IIS

"PHP sur IIS Server"

Aujourd’hui, je vous propose une méthode permettant d’exécuter du PHP sur la plateforme IIS. Dans mon cas, j’ai utilisé IIS 7.5 et PHP 5.4.

Installer IIS

Voilà comment installer la plateforme. Cela ce fait simplement via « Ajout de fonctionnalités » dans Windows.

Vous trouverez cette fonctionnalité dans « Panneau de configuration » , « Programmes et fonctionnalités » et dans le panel de gauche « Activer ou désactiver des fonctionnalités Windows ». À ce moment, cochez « Services Internet IIS ».

ATTENTION, il vous faudra ouvrir le port utilisé (par défaut 80 en connexion TCP) pour y avoir accès de l’extérieur. La procédure à suivre se trouve sur le site Microsoft.

Installer PHP

Comment installer PHP simplement ?Je vous donne la méthode.

Télécharger PHP 5.4 Non Thread Safe (dans mon cas, il ne m’était pas possible de plugger une version antérieur à PHP 5.4 pour des raisons techniques mais libre à vous de le faire).

  • Dézippez l’archive et installer le contenu dans un dossier approprié. Je l’ai mis à la racine (C:PHP). Libre à vous de choisir un autre emplacement.
  • Dans votre dossier PHP, créer le fichier php.ini en copiant php.ini-production.
  • Éditez le fichier php.ini
    Décommenter la ligne « extension_dir = « ext » »
    Activer les extensions open_ssl, file_info, php_mbstring.dll en dé-commentant les lignes
    Ajouter le « Europe/Paris » au « date.timezone »

Lier IIS et PHP

Nous allons mapper IIS avec PHP de manière à ce que les fichiers de type *.php soit envoyé à php.exe.

  • Dans IIS Manager, sélectionnez votre serveur dans le partie gauche et cliquez ensuite sur « Mappages de gestionnaires ».
  • Dans le panel de droite, « Ajouter un mappage de modules ».
    Chemin des demandes : *.php Module : FastCgiModule Exécutable : Sélectionner php-cgi.exe Nom : PHP

Lier un IIS et Symfony2

IIS est quelques peu différent de Apache, c’est pourquoi je vous met la procédure à suivre pour facilement plugger un projet Symfony2.

  • Dans IIS Manager, « Ajouter un site web » (clic droit sur le serveur utilisé).
  • Remplir le formulaire
    Chemin d’accès physique : vous devez non pas choisir la racine de votre projet mais le dossier web car seul le dossier d’exécution intéresse IIS.
  • Vous devez maintenant ajouter le fichier par défaut. Dans IIS Manager, choisissez « Document par défaut » et faites « Ajouter ». Dans notre cas, on ajoute app.php mais vous pourriez très bien en ajouter d’autres.
  • Pour de nombreuses raisons, vous avez besoin de paramétrer la réécriture des URL.
    Voici le lien qui vous permettra de simplement ajouter « URL Rewrite »
  • Une fois que l’extension est installé, vous devez configurer la réécriture.
    Modifier le fichier web.config qui se trouve dans votre dossier « web ». C’est ici que toute votre configuration est écrite.
    Dans ce fichier, entre les balises , copiez cette régle :
1
2
3
4
5
6
7
8
9
10
11
12
13
<rewrite>
<rules>
<rule name="Rewriter" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{R:1}" pattern="^(app\\.php|favicon\\.ico)" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="./app.php/{R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>

Et voilà, j’espère que cette longue note vous aura été utile.