Nouveau projet avec Symfony2.
Le but de ce post est de dérouler l’installation du framework symfony et sa mise en route (ici sur une machine linux).
Le « book » Symfony est très complet et permet de se familiariser avec le framework et la terminologie correspondante. Pour cette première partie, la documentation correspondante se trouve ici: http://symfony.com/doc/current/book/installation.html
Pour commencer, on va se placer dans le répertoire contenant l’ensemble de nos projets sur notre machine. Dans mon cas il s’agit de « ~/dev ».
cd ~/dev
Puis, nous allons télécharger la dernière version du framework à partir de http://symfony.com/download
Nous allons récupérer la version « without vendors » car nous travaillons avec git et cela va nous permettre de faciliter les mises à jour ultérieures du framework.
Ici, nous récupérons le framework (version 2.0.5 à la date de rédaction):
wget -O sf2.tgz http://symfony.com/download?v=Symfony_Standard_2.0.5.tgz
Puis, extraction de l’archive (attention, un repertoire Symfony va être créé; vérifiez si ce répertoire n’existe pas déjà):
tar zxvf sf2.tgz
Renommage du répertoire:
mv Symfony/ recette
Suppresion de l’archive:
rm sf2.tgz
Plusieurs options sont envisageables pour la gestion des droits sur les fichiers, pour le cache et les logs. Notre système d’exploitation permettant d’utiliser les ACL, c’est cette option que nous retiendrons:
cd recette sudo setfacl -R -m u:www-data:rwx -m u:pascal:rwx app/cache app/logs sudo setfacl -dR -m u:www-data:rwx -m u:pascal:rwx app/cache app/logs
Ceci permet de donner les droits nécessaires à la fois à www-data (pour apache) et à pascal qui est l’utilisateur du terminal shell en cours (et surtout celui qui va créer et modifier les fichiers, vider et remplir le cache…).
Nous allons maintenant récupérer le framework et les bundles de Symfony2:
./bin/vendors install
A partir de là, nous avons un framework tout prêt à être utilisé. Profitons-en pour créer un virtual host.
sudo vi /etc/apache2/sites-available/recette.conf
Voici son contenu, à adapter avec vos chemins:
<VirtualHost *:80> DocumentRoot "/home/pascal/dev/recette/web/" ServerName recette.local DirectoryIndex index.php <Directory "/home/pascal/dev/recette/web/"> AllowOverride All Allow from All </Directory> </VirtualHost>
Ajout du site et prise en compte par apache:
sudo a2ensite recette.conf sudo service apache2 reload
Mise à jour du fichier hosts:
sudo vi /etc/hosts
Nous ajoutons la ligne suivante:
127.0.0.1 recette.local
Maintenant, si on se rend avec notre navigateur à l’adresse suivant:
http://recette.local
nous devrions avoir une jolie erreur 404 mais si on regarde de plus près l’icone du site, nous devrions avoir
ce qui est plutôt bon signe, rajoutons app_dev.php qui est le contrôleur par défaut et ca devrait être mieux:
http://recette.local/app_dev.php
Nous allons à présent vérifier si notre système est compatible avec Symfony2:
http://recette.local/config.php
Il est important de corriger les erreurs et de tenir compte des recommandations en corrigeant/adaptant notre configuration pour répondre à cela. Il est par exemple important d’ajuster le paramètre « date.timezone » du php.ini. Dans mon cas, il est paramétré comme cela:
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone = "Europe/Paris"
En cas de modification, ne pas oublier de recharger apache…
sudo service apache2 reload
C’est tout pour le moment, prochaine étape la configuration de notre application et la suppression du bundle de démo.