Installer le framework PHP Symfony sur Ubuntu Dapper Drake
Par NiKo le mardi 20 juin 2006, 16:21 - Ubuntu
- Lien permanent -
21 commentaires -
Tags :
A l'instar de RoR, Symfony est basé sur le motif de conception MVC et utilise une couche d'abstraction d'accès aux données et d'implémentation AJAX. Il est développé en PHP5 par une équipe française, cocorico !
Voyons ensemble comment installer la bête sur une Ubuntu Dapper Drake toute fraîche.
Installation de Symfony
Le meilleur moyen d'installer Symfony mais surtout de le maintenir à jour est d'utiliser le canal PEAR [1] propre au projet. Mais avant tout, vérifions que nous disposons d'un environnement de développement ad-hoc :
$ sudo apt-get install php5 php5-cli php5-mysql php-pear
Le gestionnaire de paquets apt se chargera d'installer les dépendances nécessaires, notamment apache2.
L'installation du canal Symfony nécessite que nous octroyions 16Mo de mémoire vive à PHP. On édite donc le fichier /etc/php5/cli/php.ini et on affecte la nouvelle valeur :
memory_limit = 16M
Bien. Maintenant, installons Symfony et Phing [2] via PEAR :
$ sudo pear upgrade PEAR && sudo pear channel-discover pear.symfony-project.com $ sudo pear install symfony/symfony $ sudo pear install --alldeps http://phing.info/pear/phing-current.tgz
OK, ceci fait, on crée un nouveau projet Symfony, que nous baptiserons sobrement monprojet, disposant d'une application monapplication et que nous stockerons sous le docroot /var/www/monprojet :
$ sudo -s # mkdir /var/www/monprojet # cd /var/www/monprojet # symfony init-project monprojet # symfony init-app monapplication
Voila, notre arborescence Symfony vient d'être créée, on peut commencer à développer ! Non ? Mince, on a oublié de configurer Apache2 
Configuration d'Apache 2
Tout d'abord, activez mod_rewrite :
$ sudo a2enmod rewrite
Ensuite, nous allons créer rapidement un vhost apache, qui pointera benoitement vers dev.monprojet.com (redirigé vers notre hôte local.) Pour cela, éditez votre fichier /etc/hosts et sur la ligne comprenant l'adresse IP 127.0.0.1, ajoutez dev.monprojet.com :
127.0.0.1 localhost localhost.localdomain mamachine dev.monprojet.com
On crée maintenant l'hôte virtuel Apache /etc/apache2/sites-available/dev.monprojet.com dont voici le contenu :
<Directory "/usr/share/php/data/symfony/web/sf">
AllowOverride All
Allow from All
</Directory>
<VirtualHost *>
ServerName dev.monprojet.com
DocumentRoot "/var/www/monprojet/web"
DirectoryIndex index.php
Alias /sf /usr/share/php/data/symfony/web/sf
<Directory "/var/www/monprojet/web">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
On active l'hôte virtuel nouvellement créé :
$ sudo a2ensite dev.monprojet.com
... et on relance apache :
$ sudo apache2ctl restart
Une dernière petite chose, il faut desactiver les magic_quotes de PHP, dans le fichier /etc/php5/apache2/php.ini :
magic_quotes_gpc = Off
Lancez votre navigateur sur http://dev.monprojet.com, vous devriez obtenir un message du genre :
If you see this page, it means that the creation of your symfony project on this system was successful.
Plus d'informations
Edit du 25 juin 06: Nouvelle version 0.6.3
La version 0.6.3 est sortie. Pour mettre à jour :
$ sudo pear upgrade symfony/symfony
Edit du 26 juin 06 :
Mon camarade de jeu Xavier Lacot vient de publier sur son blog un excellent tutorial dédié à Symfony.
Notes
[1] PEAR propose un système de distribution d'application tierce très pratique, les canaux. Symfony dispose de son propre canal PEAR, mais n'utilise aucune librairie PEAR. Vous avez le droit d'être embrouillés.
[2] Phing est une dépendance de Symfony, qu'il faut installer indépendamment. Haha, elle est bonne, hein?
21 commentaires (Ajouter un commentaire)
Looks great !
Tu dois pouvoir simplifier :
en:
sinon je comprends pas pourquoi tu mets pas :
<Directory "/usr/share/php/data/symfony/web/sf"> AllowOverride All Allow from All </Directory>dans ton virtualhost ? ou sinon plutot dans un fichier dans /etc/apache2/conf.d/symfony car ca évite que ton réglage saute en cas de maj d'apache
Avec des tutos comme ça, j'ai de moins en moins de raison pour ne pas me mettre à coder avec Symfony... t'es pénible toi alors !
oups, j'ai oublié de dire : si tu mets tout dans /etc/apache2/conf.d/symfony, tu peux même faire je pense :
Alias /sf /usr/share/php/data/symfony/web/sf <Directory "/usr/share/php/data/symfony/web/sf"> AllowOverride All Allow from All </Directory>De la bombe Symfony, je m'y suis mit il y'a un mois, ça promet d'être un bon framework.
question bonus : pourquoi tu passes par un alias et non plutot par un lien symbolique, ce serait pas mieux ?
Non non, je suis pas du tout pénible avec mes questions...
PARCE QUE
Derrière un proxy, avant le
# sudo pear upgrade ...il faut se coller cette ligne :# sudo pear config-set http_proxy http://user:password@ip_proxy:port_proxyVérifier que le paramètre a bien été pris en compte grâce à
# sudo pear config-showMerci pour cette doc.
Joli tuto !
Thanks !
Sûr que Symfony c'est du lourd. Quequ'un a t-il réussi à l'installer sur OVH ?
Et sinon rassures-moi Niko tu n'abandonnes pas code igniter ?
Salut Play
Non non, CI est très bien pour des projets de petite envergure et ne nécessitant pas d'ORM et devant tourner sur PHP4.
alors, ca y est, tu t'est mis a symfony, t'en avais déjà parlé ...

c'est vrais qu'il claque ce framework, bien conçu, j'adore ...
Mais...mais ...mais ....quelques petit problémes ... ils est invariablement lourds, très lourds, un helloword, c'est (chez moi 300ms... ) et tout est comme ca ...
un changement dans la structure de base de données : on modifie le xml, puis commande, puis model etc... 15 étapes pour ajouter un champ ...
Je bosse en ce moment sur CakePhp, la, c'est une vrais communauté, et un truc qui claque autant. Parfaitement documenté (manuel+doxygen), et finalement aussi puissant, sauf que l'on tombe a 150ms la page (certes, c'est encore beaucoup mais ...
C'est pas dit que je revienne a symfony quand même
Baptiste
300ms en mode dev, ou en mode prod ?Avec le cache activé ? Sinon le meilleur rapport qualité/perf je l'ai incontestablement trouvé avac Code Igniter, mais c'est aussi beaucoup moins poussé.
j'arrondi juste un peu
... mais quand même, il est loin d'être super light

Codeigniter, essayé aussi ... il manque la quelques truc encore, comme la possibilité d'avoir des morceaux de page (snippets) définis efficacement
Avec PHP .. comme framework il y a aussi PHP on Trax via >> http://www.phpontrax.com/
Qu'en pensez vous ?
Vu la pauvreté de la doc -> poubelle... pour le moment. À surveiller cependant.
Baptiste, pour voir le temps d'éxécution affiché tu étais probablement en mode dev...
Et dans ce mode c'est normal que Symfony soit lourg (long) : il regénère tous le cache comportant des templates, du code généré, il active le debugger, les logs etc.
En mode production, les templates, les actions (etc) sont générées au premier appel, le debugger, les logs sont désactivés, c'est donc beaucoup plus "poussif".
Bon .. d'accord, d'accord ...
j'avais pourtant joué un peu avec les paramètres ...etc...
Je fini ce que j'ai a faire avec cakephp, et je retesterai ...
Symfony, d'expérience : c'est de la merde. ca vous flingue un we en deux secondes... Le pb c'est que le we dure 48 heures !!!!
pilipo : au lieu de lancer un troll, ce serait bien de justifier un peu ta position... sinon, ton commentaire ne sert pas à grand chose...
About phing, it now supports PEAR channels. So you can do this way:
$> pear channel-discover pear.phing.info
$> pear install phing/phing
Note: the current Phing version available this way is 2.2.0RC3 (Jun 28, 2006) which is beta (not stable). So you may need to add "-beta" in the package name:
$> pear install phing/phing-beta
Thanks for the tip, Pedro. And...
... good luck for Friday