Cet article a pour but d'expliquer comment mettre en place un projet Symfony depuis la sandox sous Ubuntu. Le but de ce post est de proposer une recette clé en main pour ne rien oublier lors de la création de vos nombreux projets avec le framework PHP Symfony.
Si vous ne savez pas encore où stocker votre projet, nous recommandons de créer un dossier Workspace
à la racine de votre Home Directory :
mkdir $HOME/workspace
Nous pouvons récupérer la sandbox depuis la page "Installation" sur le site de Symfony, puis, télécharger la version sandbox pour Symfony 1.4.
Autrement, il est possible de télécharger la sandox avec la dernière version du framework Symfony 1.4x grâce à ces liens :
Ou enfin :
$ wget http://www.symfony-project.org/get/sf_sandbox_1_4.tgz $HOME/workspace
Décompresser l'archive récupérée :
$ tar -zxvf $HOME/workspace/sf_sandbox_1_4.tgz
Puis, renommer ce dossier en PROJECT_NAME :
$ cp -R $HOME/workspace/sf_sandbox_1_4 $HOME/workspace/PROJECT_NAME
Nous allons créer (ou éditer, si vous l'avez déjà créé) un fichier vhost. Dans notre cas, nous avons un fichier vhost nommé sfProject dans lequel nous déclarons tous les projets Symfony que nous développons. Vous pouvez également créer un fichier vhost par projet afin de les activer/désactiver plus facilement au niveau d'Apache.
$ sudo gedit /etc/apache2/sites-available/sfProject
Puis, déclarons le vhost pour notre nouveau projet :
ServerName local.PROJECT_NAME
DocumentRoot /home/USER_NAME/workspace/PROJECT_NAME/web
Options Indexes FollowSymLinks
AllowOverride All
Alias /sf /home/USER_NAME/workspace/PROJECT_NAME/lib/vendor/symfony/data/web/sf
Order Allow,Deny
Allow from all
# Possible values include: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn
ErrorLog /var/log/apache2/PROJECT_NAME_error.log
CustomLog /var/log/apache2/PROJECT_NAME_access.log combined
Puis, activons le vhost si celui-ci est crée :
$ sudo a2ensite sfProject
Cette commande crée un lien symbolique depuis votre fichier /etc/apache2/sites-available/sfProject vers /etc/apache2/sites-enabled/sfProject.
Pour vérifier si votre fichier est bien déclaré comme "à activer" au chargement d'apache, il faut regarder s'il est bien présent dans le dossier /etc/apache2/sites-enabled/
$ ls -l /etc/apache2/sites-enabled/
Cette ligne doit apparaitre :
$ lrwxrwxrwx 1 root root 28 2010-07-05 18:24 sfProject -> ../sites-available/sfProject
Enfin, pensez à redémarrer votre serveur Apache si vous avez apporté des modifications ou venez de créer le vhost ou encore de l'activer/désactiver.
$ sudo /etc/init.d/apache2 restart
Pour pouvoir utiliser notre vhost Apache nouvellement créée, il faut envoyer nos requêtes HTTP vers notre serveur (en local) avec le bon host en paramètre. Pour cela, le plus simple est de modifier le fichier host afin d'envoyer toutes les requêtes vers votre serveur Apache.
$ sudo gedit /etc/hosts
Puis, ajoutez la correspondance suivante :
127.0.0.1 local.PROJECT_NAME
Pour tester, exécutons une simple commande ping :
$ ping local.PROJECT_NAME
Si nous avons bien configuré notre fichier host, nous devons obtenir ce résultat :
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.049 ms
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.049 ms
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.049 ms
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.049 ms
...
Le projet Symfony doit maintenant être créé.
Vous devez avoir le résultat suivant affiché dans votre navigateur à l'adresse http://local.PROJECT_NAME
.
Il ne vous reste plus qu'à faire votre projet avec Symfony !
Pour tout de suite vous familiariser avec les commandes, définissez l'auteur du code source :
$ cd $HOME/workspace/PROJECT_NAME
Puis :
$ php symfony configure:author "FirstName LastName"
Si vous avez besoin d'une aide ou d'une expertise concernant vos projets Symfony1, vous pouvez nous contacter.