lundi 1 février 2010

Installation de symfony

Cela fait maintenant quelques jours que j'ai commencé à utiliser le framework symfony et sur les forums, je me suis rendu compte que beaucoup d'utilisateurs francophones bloquaient sur l'installation et sur les premiers chapitres du tutoriel Pratical Symfony. J'ai donc décidé d'écrire un tutoriel d'installation bref et concis en espérant qu'il puisse aider des personnes en difficulté.

(Ce tuto est basé sur Pratical Symfony de la documentation officielle de Symfony)

INSTALLATION DE SYMFONY 1.4

Il faut tout d'abord vérifier que les composants suivants sont présents sur la machine :
  • Un serveur web (apache par exemple)
  • Un moteur de base de données ( MySQL, PostgreSQL, SQLite, ou tout autre moteur de base de données PDO-compatible)
  • PHP >=5.2.4
Si vous ne disposez pas de ces outils ce n'est pas grave, continuez quand même la lecture. Nous les installerons au fur et à mesure que nous allons progresser dans le tutoriel.
    Configuration de PHP

    Assurez vous que PHP 5.2.4 au minimum est installé grâce à la commande php -v.

    $ php -v                                                                                                                                         
    Si vous disposez plutôt de lampp, rendez vous dans le répertoire lampp puis tapez les commandes suivantes :

    Assurez vous d'être bien dans le répertoire de lampp avant d'effectuer la manip' suivante!

    $ alias php='bin/php'                                                                                                                      


    Ensuite


    $ php -v                                                                                                                                          

    Sinon si vous ne disposez pas non plus de lampp installez php5-cli. Sous Ubuntu faire :

    # sudo apt-get install php5-cli                                                                                                        


    Ensuite

    $ php -v                                                                                                                                            

    Créez le répertoire sfprojects

    $ mkdir -p ~/sfprojects                                                                                                                       

    Téléchargez le fichier de configuration php

    $ wget -P ~/sfprojects http://sf-to.org/1.4/check.php                                                                        

    Lancez le script

    $ php ~/sfprojects/check_configuration.php                                                                                        

    En général il n'y a pas vraiment d'erreurs rencontrées à ce niveau. Si toutefois vous bloquez ici, la sortie de cette commande devrait pouvoir vous fournir les informations pour résoudre le problème.

    Installation de symfony
    • Création du répertoire qui abritera tous les fichiers du projet                                                     
    $ mkdir -p ~/sfprojects/jobeet                                                                                                       

    • Choix du lieu d'installation
    On choisira de rendre nos projets indépendants les uns des autres, on intègrera donc symfony dans chacun de nos projets (méthode conseillée par le tutoriel officiel).

    $ mkdir -p ~/sfprojects/jobeet/lib/vendor                                                                                       

    • Téléchargement de symfony
    $ wget -P ~/sfprojects/jobeet/lib/vendor/ http://www.symfony-project.org/get/symfony-1.4.1.tgz

    $ cd ~/sfprojects/jobeet/lib/vendor/                                                                                                   
    $ tar zxpf symfony-1.4.1.tgz                                                                                                    
    $ mv symfony-1.4.1 symfony                                                                                                    
    $ rm symfony-1.4.1.tgz                                                                                                            

    • Vérification de l'installation
    On vérifie la version de Symfony pour s'assurer que tout fonctionne (Notez la majuscule V).

    $ php symfony/data/bin/symfony -V                                                                           


    Création du  Jobeet (Exemple de projet tiré du tutoriel pratical symfony)

    Génère la structure des répertoires et fichiers nécessaires pour un projet symfony.

    $ cd ~/sfprojects/jobeet/                                                                                                            
                                                                                                                                                
    $ php ~/sfprojects/jobeet/lib/vendor/symfony/data/bin/symfony generate:project jobeet             

    • Création de l'application front-end
    $ php symfony generate:app frontend                                                                                       

    • Attribution des droits d'écriture et de lecture sur les répertoires cache/ et log/ au serveur web
    $ chmod 777 cache/ log/                                                                                                             

    • Configuration du serveur web
    Localisez le fichier httpd.conf

    $ locate httpd.conf                                                                                                                       

    Si vous ne disposez pas d'un serveur web, la commande locate ne renverra aucun résultat. Nous allons donc installer un serveur apache.

    #  sudo apt-get install apache2                                                                                           


    # sudo apt-get install libapache2-mod-php5                                                                                             

    On met à jour la base de donnée des fichiers.

    # sudo updatedb                                                                                                                                 

    Ensuite on localise le fichier httpd.conf (il se trouve normalement dans  /etc/apache2/httpd.conf)

    $ locate httpd.conf                                                                                                                      

    Éditez le. (Changez chemin par le résultat que vous avez obtenu grâce à la commande locate)

    # sudo gedit  /chemin/httpd.conf                                                                                                         

    par exemple

    # sudo gedit  /etc/apache2/httpd.conf                                                                                                        

    Copiez ces lignes à la fin du fichier en prenant soin de changer utilisateur par votre nom d'utilisateur.

    # Soyez sûr d'avoir seulement cette ligne une fois dans votre configuration
    NameVirtualHost 127.0.0.1:8080


    # C'est la configuration pour votre projet
    Listen 127.0.0.1:8080




    <VirtualHost 127.0.0.1:8080>
      DocumentRoot "/home/utilisateur/sfprojects/jobeet/web"
      DirectoryIndex index.php
      <Directory "/home/utilisateur/sfprojects/jobeet/web">
        AllowOverride All
        Allow from All
      </Directory>
    
    
     Alias /sf /home/utilisateur/sfprojects/jobeet/lib/vendor/symfony/data/web/sf
      <Directory "/home/utilisateur/sfprojects/jobeet/lib/vendor/symfony/data/web/sf">
        AllowOverride All
        Allow from All
      </Directory>
    </VirtualHost>
    

    Redémarrez le serveur apache.

    # sudo /etc/init.d/apache2 restart                                                                                               

    Votre projet sera donc accessible à l'adresse http://localhost:8080/

    Pour le prochain tuto, Je passerai directement au Jour 3 du Pratical Symfony car c'est surtout à ce niveau que les utilisateurs novices rencontrent le plus de problèmes. Pour plus de détails sur ce tutoriel voir la documentation officielle (très complète).

    2 commentaires:

    Sylvain POULAIN a dit…

    Parfait !
    J'attends avec impatience la suite ...

    Merci

    Anonyme a dit…

    Très bonne initiative!