Symfony sur IIS

Note : ce tuto fonctionne aussi bien sur une version Core de Windows.

Préparation de votre website :

Avant de commencer, suivre : Faire fonctionner PHP sous IIS

Dans un premier temps, télécharger Symfony

Extraire les fichiers dans un dossier dans C:\inetpub\wwwroot\

extraire

Lancer votre IIS management console

start console

Créer votre WebSite (Clique droit sur Site > Add WebSite)

Baser votre ServerRoot sur le dossier web de votre projet.

add website

Double clique sur Default Document, clique droit, add …

default page

Installer URL Rewrite :

Télécharger rewrite_amd64_en-US.msi

Supprimer l’extension .pptx du fichier téléchargé.

Placer ce fichier sur le C:\

Lancer une invite de commande (CTRL + R > cmd) et taper :

START /w msiexec /I C:\rewrite_amd64_en-US.msi

Paramétrer votre website :

Éditer votre fichier web.config qui se trouve dans C:\inetpub\wwwroot\nom_de_votre_projet\web\web.config

Ajouter ces lignes entre les balises <system.webServer>.

<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>

Les finissions :

Tester votre configuration :

http://url_de_votre_serveur/config.php

test symfony

Il y a quelques problèmes concernant les droits sur les dossiers :

  • app/cache/
  • app/logs/

Pour régler ce problème, il faut modifier les droits NTFS sur ces dossiers :

Clique droit sur cache > propriété > sécurité > edit …

Ajouter au  groupe USERS le droit d’écrire.

droits cache

Faire la même chose pour le dossier LOG

Rafraichir la page config.php

retest symfony

Votre configuration IIS, permet de faire fonctionner symfony.

Faire fonctionner PHP sous IIS

Télécharger ces archives :

Supprimer les extensions .pptx et extraire les fichiers

extraire

Créer un dossier PHP dans C:\Program Files (x86)\ et coller le dossier extrait (v5.3)

v5.3

Installer IIS

select role

Dans application developpement sélectionner CGI

fonctionnalitées iis php

Lancer votre IIS management console

start console

Double clique sur Handler Mappings, faire un clique droit et cliquer sur add Module Mapping

IIS management CGI

add module mapping

Remplir la fenêtre comme sur la capture d’écran et cliquer sur OK

module mapping

Créer le FastCGI en cliquant sur YES

create FastCGI

Tester le fonctionnement en créant une page PHP.

Créer un fichier index.php dans C:\inetpub\wwwroot\

extension

Entrer ces lignes dans le fichier

<?php
phpinfo();
?>

Tester :

phpinfo()

Administrer IIS d’un Windows Server Core à partir d’un Windows en GUI

Windows Core

Sur le Windows Core, entrer ces commandes :

powershell

Import-Module ServerManager

Add-WindowsFeature Web-Mgmt-Service

Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\WebManagement\Server -Name EnableRemoteManagement -Value 1

Set-Service -name WMSVC -StartupType Automatic

Start-service WMSVC

Windows Core remote IIS

Windows GUI

Sur le Windows GUI installer la console IIS :

add server

select role

Décocher toutes les cases :

unselect

Ne garder que le Management console :

management console

Cliquer sur Installer :

console IIS

Lancer la console d’administration de IIS

start console

Faire un clique droit sur page start

page start

Entrer l’adresse sur serveur. Sur un domaine Active Directory : nom_de_la_machine.nom_du_domaine.tld

fqdn server

Entrer les identifiants de l’administrateur du domaine

credential

Accepter le certificat en cliquant sur Connect

certificate

Entrer un nom pour ce serveur et cliquer sur Finish

IIS server name console

Vous pouvez administrer votre IIS à partir du Windows en GUI.

remote IIS