Logo de Symfony

configurer un environnement wamp avec Symfony et Git

Ce weekend, j’ai décidé de me mettre à Symfony 2. Il s’agit d’un framework PHP. Ça faisait un moment que j’avais envie de me remettre au PHP (depuis la première année de BTS, j’ai un peu oublié) et j’avais une petite idée de projet sympa qui traînait dans ma tête depuis longtemps également. Me voilà donc parti pour installer Wamp puis Symfony et enfin git pour le versionning. Sauf que voilà, ça n’a pas été comme sur des roulettes. Il faut dire que je n’ai pas cherché à faire au plus simple, notamment sauvegarder mon projet web en dehors du dossier web root de Wamp. Je partage donc mon expérience, ça peut toujours servir :)

Contexte

Avant toute chose, il faut que je pose le contexte. j’ai prévu de travailler en paire sur ce projet, donc il me fallait un outil pour le versionning de code. J’ai choisi Git. Au boulot j’utilise SVN avec Eclipse mais cette fois je voulais tester quelque chose de nouveau. Par ailleurs, je ne voulais pas que mon repository git se retrouve dans le dossier www de Wamp. Voilà pour le contexte.

Création du repository sur Github

Première chose à faire, créer un repository sur Github. Deux solutions possibles, soit vous créez votre repository via https://github.com/ et vous le clonez sur votre ordinateur, soit vous faites comme moi, en mode j’ai pas envie de m’embêter avec les lignes de commande pour l’instant et vous téléchargez et installer le client Github for Windows qui propose une belle interface pour créer et gérer ses repositories.

Logo de Github

Installation de Symfony

Au delà du numéro de version, Symfony est téléchargeable en deux versions : version standard avec les vendor bundles, version standard sans les vendor bundles. Les vendors sont des packages qui ajoutent des fonctionnalités et outils à Symfony. Allez savoir pourquoi mais sur la doc de Symfony (voir ici), ils préconisent de télécharger la version sans les vendors si on veut l’embarquer dans un repository git. Ils seront installés après, histoire d’éviter de committer des fichiers inutiles et propres à l’install de chaque développeur. En même temps, il y a un fichier .gitignore qui devrait servir à ça…

Mais admettons. J’ai donc téléchargé l’archive de Symfony sans les vendors et l’ai décompressé dans le repository local que j’avais crée auparavant. Jusque là, tout va bien.

Installation et configuration de Wamp

Pour Wamp, je vous passe la galère que j’ai rencontrée au premier essai. Simplement, sachez que si vous voulez utiliser Symfony 2 avec Wamp, à l’heure actuelle, il vaut mieux oublier la version 64 bits du serveur. Pour ma part, j’ai finalement opté pour la version 32 bits avec PHP 5.4. L’installation ne pose pas de problème particulier.

Une fois Wamp installé, il va falloir le configurer pour qu’il puisse gérer mon site web crée avec Symfony. Rappelez-vous que je l’ai sauvegardé en dehors de l’habituel dossier www du serveur Apache fourni avec Wamp ! Donc, pour pouvoir le charger, il faut créer un virtual host dans Apache!

Pour ça, il faut modifier le fichier httpd-vhosts.conf. En admettant que vous avez installé Wamp dans C:\apache, le fichier se trouve dans C:\apache\bin\apache\apache2.2.22\conf\extra. Vous trouverez le mien en suivant ce lien : pastebin.com/c2pY6nme

Quand j’ai testé la version 64 bits plus récente d’Apache au premier essai, j’ai du rajouter en dessous de chaque Allow from All un Require local. Si au chargement de la page d’accueil de votre site web vous avez un message d’erreur de type 401 Unauthorized access, essayez ça.

Comme j’ai donné un nom de domaine fictif à mon site local, il faut également changer le fichier hosts de Windows. Ce fichier se trouve dans C:\Windows\System32\drivers\etc. Il suffit de faire pointer l’adresse 127.0.0.1 vers le nom de domaine donné au virtual host crée.

Enfin, il faut modifier le fichier httpd.conf d’Apache et décommenter la ligne Include conf/extra/httpd-vhosts.conf. Il suffit de supprimer le ; devant. Si tout s’est bien passé, vous devriez avoir accès à la page de configuration de Symfony via votre navigateur web. Dans mon cas, il s’agissait de www.e-gifters.local/config.php.
page de configuration de Symfony

Installation de l’extension ACP pour PHP

Lors de votre premier accès à la page config.php de votre installation Symfony, plusieurs conseils peuvent vous êtres fournis pour améliorer votre environnement de développement. Parmi eux, il est recommandé d’installer un accélérateur de pages PHP, en l’occurrence APC. Récupérer cette librairie peut s’avérer assez galère car il faut trouver la version qui colle bien avec votre version de PHP. Il faut faire attention à deux indications : la version de PHP (5.3, 5.4, etc.) mais également si c’est TS ou NTS. Vous trouverez cette info en utilisant la fonction phpinfo() sur votre serveur Apache. Pour faire simple, vous pouvez reconfigurer votre serveur et votre fichier hosts pour que l’ip 127.0.0.1 pointe à nouveau vers localhost. La page d’accueil d’Apache fournit un lien vers un appel à cette fonction :)

Différentes version de php_apc peuvent être trouvées ici et . Pour ma part, Symfony m’a demandé la version 3.1.13, donc j’ai téléchargé le fichier sur le premier lien. Il faut copier la dll dans le dossier ext du répertoire php de votre installation Apache. Pour moi, c’était C:\apache\bin\php\php5.4.3\ext.

Il faut ensuite activer la librairie en cliquant sur l’icône de WampServer dans la barre système puis PHP et PHP Extensions. J’ai également suivi les conseils trouvés sur cet article pour activer d’autres extensions pour PHP et ajouter la commande php dans la variable d’environnement PATH de Windows !

Installation des Vendors Symfony

Pour terminer, il a fallu installer les fameux vendors que je n’avais pas avec mon installation standard de Symfony! Au début j’ai suivi la documentation sur le site de Symfony mais ça ne collait pas. En gros, vous avez besoin d’installer Composer qui est un gestionnaire de dépendances pour PHP. Compser pour Windows se télécharge sur http://getcomposer.org/download/. Lors de l’installation, il devrait vous demander de valider la version de php à utiliser (en se basant sur la variable PATH donc il ne faut pas oublier de la configurer!).

Une fois terminé, utilisez un invite de commande, rendez-vous dans le répertoire source de votre application Symfony et tapez la commande composer install. Cette commande devrait télécharger et installer toutes les extensions nécessaires au bon fonctionnement de Symfony. La liste des extensions requises se trouve dans le ficher composer.json.

Dernière étape

Voilà, vous avez à peu près tout de configuré. Il ne reste plus qu’à ajouter le fichier parameters.yml au fichier .gitignore (sur Symfony 2.2, parameters.ini a été renommé en parameters.yml) et à effectuer le commit de votre projet. Si tout s’est bien passé, vous devriez pouvoir afficher dans votre navigateur la page app_dev.php.

Conclusion

Je me suis peut-être un peu compliqué la vie en choisissant un dossier spécifique pour mon repository Git et en ne téléchargeant pas la version de Symfony avec les vendors inclus mais en cherchant sur Internet une solution aux choix que j’avais fait, je me suis retrouvé à faire comme ça. Au final ça fonctionne et ça m’a permis de mettre un peu les mains dans les fichiers de conf et d’apprendre des choses :)

4 Comments

  1. Je pense que tu as fait une erreur de typo pour l’extension PHP accélératrice de page : il s’agit d’APC ;-)

    Sinon, pas mal utile comme article ! Attention tout de même à ne pas mettre ce genre de config en production au risque d’avoir de sérieux problèmes de performance (32 bits, Apache sur Windows, etc.). Sinon, d’un point de vue architecture, c’est ce qui se fait actuellement.

    Répondre

  2. Bonjour,
    Je viens vers toi car j’ai le problème avec l’installation de Symfony 2 sur mon PC dans le dossier wamp/symfony.
    Comment corriger et pouvoir accéder au programme.
    J’ai dois corriger les droits d’accès mais comment faire? Tu notes qu’il faut corriger le fichier C:\apache\bin\apache\apache2.2.22\conf\extra. mais exactement que dois je faire?
    Marc

    Répondre

    1. salut :)

      J’ai mis un lien dans l’article qui pointe vers mon fichier modifié. Tu peux le comparer au tiens pour voir la différence. En fait il faut créer la configuration du virtualHost de toute pièce si je me souviens bien. Le fichier original doit être presque vide ou ne contenir que du code commenté qui sert d’exemple.

      Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *