Développeur web nantes

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 23 mars 2016

Symfony2 : cloner un projet depuis github

TUTORIAL SYMFONY 2.8


Voici un tutorial sur l'installation et la configuration du framework Symfony 2.8 sur un ordinateur tournant avec une distribution
Linux Debian Jessie.

On peut installer un projet Symfony de plusieurs façons.
Dans ce tuto j'ai choisi de cloner un projet GitHub.

(commande "git clone http://www.github.com/monRepoSymfony2")

Si je choisis de tester l'installation de suite après (app/check.php) je me retrouve avec
un message m'annonçant qu'il manque le repértoire "vendor" nécessaire pour faire tourner Symfony
en local, et c'est bien normal (si vous débutez avec GitHub, je vous conseille d'apprendre sa philosophie)

Il faut donc lancer une commande "composer install" dans le repértoire cloné (bien entendu, il vous faut avoir installé composer pour
cela : www.getcomposer.org)

Nous avons bien maintenant notre repertoire "vendor" qui contient les Bundles minimum pour le fonctionnement du framework MVC.

Voici le listing d'index côté navigateur :

Index of /~symfony2/

[ICO]    Name    Last modified    Size    Description
[PARENTDIR]    Parent Directory         -      
[ ]    LICENSE    2016-03-23 11:41     1.0K     
[ ]    README.md    2016-03-23 11:41     2.4K     
[ ]    UPGRADE-2.2.md    2016-03-23 11:41     1.3K     
[ ]    UPGRADE-2.3.md    2016-03-23 11:41     1.9K     
[ ]    UPGRADE-2.4.md    2016-03-23 11:41     356      
[ ]    UPGRADE-2.8.md    2016-03-23 11:41     1.6K     
[ ]    UPGRADE.md    2016-03-23 11:41     8.3K     
[DIR]    bin/    2016-03-23 11:52     -      
[ ]    composer.json    2016-03-23 11:41     2.5K     
[ ]    composer.lock    2016-03-23 11:41     105K     
[DIR]    vendor/    2016-03-23 11:53     -      
Apache/2.4.10 (Debian) Server at localhost Port 80


Il ne correpond pas à ce que je vois côté terminal. Notemment le repertoire "web" indispensable...


Si j'essaie d'accéder au repertoire "web" en tapant directement /web dans le navigateur j'obtiens une erreur 500 :


Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at webmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.
Apache/2.4.10 (Debian) Server at localhost Port 80



Pourtant, si dans mon terminal (CLI, Commande Line Interface > Interface en ligne de commande) je tape

php app/php check.php


J'obtiens la couleur verte qui est synonyme de configuration OK pour faire tourner Symfony2 :


Symfony Requirements Checker
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

> PHP is using the following php.ini file:
  /etc/php5/cli/php.ini

> Checking Symfony requirements:
  ...................W........................

                                             
 [OK]                                        
 Your system is ready to run Symfony projects
                                             

Optional recommendations to improve your setup
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 * xdebug.max_nesting_level should be above 100 in php.ini
   > Set "xdebug.max_nesting_level" to e.g. "250" in php.ini* to stop
   > Xdebug's infinite recursion protection erroneously throwing a
   > fatal error in your project.


Note  The command console could use a different php.ini file
~~~~  than the one used with your web server. To be on the
      safe side, please check the requirements from your web
      server using the web/config.php script.




      Je tape alors "This script cannot be run from the CLI. Run it from a browser.%  "


Malheureusement, si j'essaie de suivre le conseil ci-dessus et saisi "/web/config.php" dans
le navigateur je me retrouve à nouveau avec l'erreur 500.

Il peut alors s'agir des droits d'accès à ce répertoire.

Dans le repertoire web en ligne de commande, vous pouvez faire un ls -a pour afficher le .htaccess

Après un sudo nano .htaccess (si vous faites partie du groupe sudoers, of course), voici une ligne
qui est généralement commentée et qu'il vous faut rendre active : Options -MultiViews

On la trouve dans le module ci-dessous :


<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

Une fois appelé dans le navigateur, le fichier config.php vous affichera une page de diagnostic, comme par exemple :

Configuration Checker This script analyzes your system to check whether is ready to run Symfony applications. Major problems Major problems have been detected and must be fixed before continuing: Set the "date.timezone" setting in php.ini* (like Europe/Paris). Recommendations Additionally, to enhance your Symfony experience, it’s recommended that you fix the following: Set "xdebug.max_nesting_level" to e.g. "250" in php.ini* to stop Xdebug's infinite recursion protection erroneously throwing a fatal error in your project. Set short_open_tag to off in php.ini*. * Changes to the php.ini file must be done in "/etc/php5/apache2/php.ini".

app/cache/prod OU app/cache/dev

rm -r app/cache/*
rm -r app/logs/*



php app/console server:run

http://localhost:8000/


Si vous n'avez pas configuré correctement les données de connexion à la base MySQL (via composer install - Doctrine), vous obtiendrez les messages suivants dans
le terminal :


[Doctrine\DBAL\Exception\ConnectionException]                               
  An exception occured in driver: SQLSTATE[28000] [1045] Access denied for us 
  er 'root'@'localhost' (using password: NO)                                  
                                                                              

                                                                              
  [Doctrine\DBAL\Driver\PDOException]                                         
  SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using pas 
  sword: NO)                                                                  
                                                                              

                                                                              
  [PDOException]                                                              
  SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using pas 
  sword: NO)


-> php app/console security:check

Security Check Report
~~~~~~~~~~~~~~~~~~~~~

Checked file: ~/composer.lock

                                        
  [OK]                                  
  0 packages have known vulnerabilities 
                                        

             This checker can only detect vulnerabilities that are referenced
 Disclaimer  in the SensioLabs security advisories database. Execute this
             command regularly to check the newly discovered vulnerabilities.




SOURCES :
http://symfony.com/doc/current/index.html
http://symfony.com/doc/current/cookbook/deployment/tools.html
http://www.lafabriquedecode.com/blog/2014/05/symfony-2-en-finir-nettoyage-du-cache-via-cacheclear/
http://www.tools-geek.fr/symfony-2-erreur-http-500/

mercredi 14 octobre 2015

Dehors les cochons d'inde, bonjour le développement web

Changement de cap pour ce blog qui était initialement destiné à présenter les aventures des cochons d'inde de la maison. Depuis les premiers épisodes, les enfants ont bien grandi, et les cochons d'inde sont partis... Une page se tourne et une nouvelle s'ouvre avec le nouveau cursus en développement web que je débute.

Lire la suite...

vendredi 2 août 2013

la princesse téodora

Il était une fois une Princesse qui s' appelait Téodora .

Lire la suite...

Jago attaque la ville

Jago est un énorme monstre qui se dirige vers la ville , l'armée se mobilise pour l’arrêter.

L'armée vs Jago

QUI VA GAGNER ?


Lire la suite...

vendredi 8 mars 2013

Bienvenue sur ce blog de voyage

Embarquez pour les folles aventures de Jason et Théodore, nos deux anti-héros hauts en couleurs !

Lire la suite...