Development

Documentation/fr_FR/book/1.0/03-Running-Symfony (diff)

You must first sign up to be able to contribute.

Changes from Version 1 of Documentation/fr_FR/book/1.0/03-Running-Symfony

Show
Ignore:
Author:
Geoff (IP: 88.191.40.240)
Timestamp:
07/24/07 17:54:12 (10 years ago)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Documentation/fr_FR/book/1.0/03-Running-Symfony

    v0 v1  
     1{{{ 
     2#!html 
     3<div style="border: solid 2px #f80;padding:10px;margin:5px;background-color: #fdb"> 
     4}}} 
     5Cette partie de la documentation est en cours de traduction. Cela signifie qu'elle est traduite de manière soit incomplète, soit inexacte. En attendant que cette traduction soit terminée, vous pouvez consulter la [http://www.symfony-project.com/book/trunk/03-Running-Symfony version en anglais] pour des informations plus fiables. 
     6{{{ 
     7#!html 
     8</div> 
     9}}} 
     10 
     11{{{ 
     12#!WikiMarkdown 
     13 
     14Chapitre 3 – Installer Symfony 
     15============================== 
     16 
     17Comme vous l’avez appris au chapitre précédent, ce framework est un ensemble de fichiers écrits en PHP. Installer Symfony consiste donc à installer ces fichiers et à les rendre accessibles à tout projet s’appuyant sur cette technologie. 
     18 
     19 
     20En tant que framework PHP 5, Symfony nécessite PHP 5. Assurez-vous qu’il est installé en tapant une commande sur la ligne de commande : 
     21 
     22    > php -v 
     23 
     24    PHP 5.2.0 (cli) (built: Nov 2 2006 11:57:36) 
     25    Copyright (c) 1997-2006 The PHP Group 
     26    Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies 
     27 
     28 
     29Si la version est 5.0 ou supérieure, vous pouvez procéder à l’installation comme décrit dans ce chapitre. 
     30 
     31 
     32Installer le bac à sable 
     33------------------------ 
     34 
     35 
     36 
     37Si vous voulez simplement savoir de quoi Symfony est capable, vous préférerez sûrement une installation rapide. Dans ce cas, vous aurez besoin du bac à sable.(sandbox) 
     38 
     39 
     40Le bac à sable est un simple répertoire de fichiers. Il contient un projet Symfony vide incluant toutes les bibliothèques nécessaires ( symfony, pake, lime, Creole, Propel, Phing), une application par défaut et une configuration standard. Il est pleinement opérationnel comme cela, sans configuration particulière ni paquets supplémentaires. 
     41 
     42Pour l’installer, téléchargez l’archive à partir de [http://www.symfony-project.com/get/sf_sandbox.tgz](http://www.symfony-project.com/get/sf_sandbox.tgz). L’extraire dans le répertoire racine de votre serveur (communément `web/`ou `www/`) Dans un souci de compréhension, nous conviendrons que vous l’avez extrait  dans le répertoire `sf_sandbox` 
     43 
     44 
     45>**CAUTION** 
     46>Que tous les fichiers soient à la racine de votre serveur de développement est confortable pour vos tests en local, mais dangereux s’il s’agit d’un serveur de production. Cela rend le cœur de votre application accessible aux utilisateurs. 
     47 
     48 
     49Testez votre installation en utilisant le CLI (interface en ligne de commande) de Symfony. `Sur un système *nix et à partir du répertoire `sf_sandbox`, entrez la commande suivante : 
     50 
     51    > ./symfony -V 
     52 
     53 
     54Sur Windows, utilisez cette commande : 
     55 
     56    > symfony -V 
     57 
     58Vous devriez alors voir la version du bac à sable : 
     59    symfony version 1.0.0 
     60 
     61Maintenant assurez-vous que votre navigateur peut afficher le bac à sable en accédant à l’URL suivante : 
     62 
     63    http://localhost/sf_sandbox/web/frontend_dev.php/ 
     64 
     65 
     66Vous devriez maintenant voir une page de félicitations ressemblant à l’illustration 3-1. Cela signifie que votre installation s’est terminée avec succès. Si tel n’est pas le cas, un message vous indiquera la marche à suivre afin de régler votre problème. Vous pouvez aussi vous référer à la section "Troubleshooting" plus loin dans ce chapitre. 
     67 
     68 
     69Illustration 3-1 – La page de félicitations du bac à sable. 
     70 
     71![Sandbox congratulations page](/images/book/F0301.jpg "Page de félicitations du bac à sable") 
     72 
     73 
     74Le bac à sable est prévu pour que vous vous entraîniez à Symfony en local et non pour développer des applications destinées à être publiées sur le web. Cependant, la version de Symfony intégrée au bac à sable est entièrement fonctionnelle et est équivalente à une version installée via PEAR. 
     75 
     76 
     77 
     78Pour désinstaller le bac à sable il vous suffit de supprimer le répertoire `sf_sandbox`. 
     79 
     80 
     81Installer les librairies de Symfony 
     82------------------------------------ 
     83 
     84 
     85Lorsque vous développerez une application, vous souhaiterez probablement installer Symfony deux fois : une fois sur votre serveur de développement et une seconde fois sur votre serveur de production (à moins que ce dernier possède déjà Symfony). Pour chaque serveur vous souhaiterez sûrement éviter la duplication en maintenant tous les fichiers dans un emplacement unique, et cela que vous développiez une seule ou plusieurs applications. 
     86 
     87 
     88Etant donné que Symfony  évolue vite, vous pourriez être concerné par la publication d’une nouvelle version stable. Vous devez considérer la mise à jour du framework comme une priorité. Voilà donc une autre raison pour ne partager qu’un seul exemplaire de vos répertoires Symfony entre tous vos projets. 
     89 
     90 
     91Lorsque vous devez installer Symfony pour un véritable développement, deux possibilités s’offrent à vous : 
     92 
     93 
     94  * L’installation via PEAR est recommandée pour la plupart des utilisateurs. Elle peut être facilement partagée et mise à jour. De plus, ce processus d’installation est rodé. 
     95  * L’installation via Subversion (SVN) n’est censée être utilisée que par des développeurs PHP confirmés qui souhaiteraient tirer avantage des derniers patchs, ajouter leur propre code spécifique et/ou contribuer au projet Symfony. 
     96 
     97 
     98Symfony intègre quelques autres paquets : 
     99 
     100 
     101  * pake est un utilitaire CLI 
     102  * lime est un utilitaire de tests unitaires 
     103  * Creole est une couche d’abstraction de données. A l’instar de PHP Data Objects (PDO), il fournit une interface entre votre code et le code SQL. Il permet de changer d’outil d’interrogation de base de données. 
     104  * Propel sert au mapping objet relationnel (ORM). Il fournit la persistance de données et un service d’interrogation. 
     105  * Phing est une CLI pour Propel. 
     106 
     107Pake et lime ont été développés par l’équipe de Symfony. Creole, Propel et Phing ont été développés par d’autres équipes et sont livrés sous la licence GNU/LGPL (Lesser Public General License). Tous ces paquets sont inclus dans Symfony. 
     108 
     109 
     110 
     111Installer Symfony via PEAR 
     112 
     113 
     114Le paquet Symfony de PEAR contient les librairies de Symfony et leurs dépendances. Il contient aussi un script qui modifie le CLI pour y intégrer la commande `symfony` 
     115 
     116 
     117La première étape de l’installation est l’ajout du canal PEAR, comme suit : 
     118 
     119    > pear channel-discover pear.symfony-project.com 
     120 
     121 
     122Pour voir toutes les librairies disponibles sur ce canal, entrez ce qui suit : 
     123 
     124    > pear remote-list -c symfony 
     125 
     126 
     127Vous êtes maintenant prêt à installer la dernière version stable de Symfony. Tapez la commande suivante : 
     128 
     129    > pear install symfony/symfony 
     130 
     131    downloading symfony-1.0.0.tgz ... 
     132    Starting to download symfony-1.0.0.tgz (1,283,270 bytes) 
     133    ................................................................. 
     134    ................................................................. 
     135    .............done: 1,283,270 bytes 
     136    install ok: channel://pear.symfony-project.com/symfony-1.0.0 
     137 
     138 
     139Voilà, CLI et les fichiers Symfony sont installés. Vérifiez le succès de l’installation en récupérant la version du produit via la nouvelle commande `symfony` :  
     140 
     141    > symfony -V 
     142 
     143    symfony version 1.0.0 
     144 
     145 
     146>**TIP** 
     147>Si vous préférez installer la dernière version beta, comportant les dernières évolutions et les derniers fixes, saisissez `pear install symfony/symfony-beta`. Les verions beta plus instables et non recommandées pour des environnements de production. 
     148 
     149 
     150 
     151Les librairies Symfony sont maintenant installées dans les répertoires suivants : 
     152 
     153 
     154  * `$php_dir/symfony/` contient les librairies principales 
     155  * `$data_dir/symfony/` contient le squelette des applications Symfony : modules de bases, configuration, base d’internationalisation (i18n) etc …  * `$doc_dir/symfony/` contient la documentation 
     156  * `$test_dir/symfony/` contient les tests unitaires. 
     157 
     158 
     159 
     160Les variables _dir sont visibles dans la configuration PEAR. Pour connaitre leurs valeurs , tapez la commande suivante. 
     161 
     162    > pear config-show 
     163 
     164 
     165### Récupérer Symfony par le dépôt SVN 
     166 
     167 
     168 
     169Dans le cas de serveur de production, ou si PEAR n’est pas une option, vous pouvez télécharger la dernière version des librairies Symfony directement à partir du dépôt Subversion de Symfony en effectuant un checkout: 
     170 
     171 
     172    > mkdir /path/to/symfony 
     173    > cd /path/to/symfony 
     174    > svn checkout http://svn.symfony-project.com/tags/RELEASE_1_0_0/ . 
     175 
     176 
     177 
     178La commande `symfony`, uniquement disponible pour des installations via PEAR, est appelée à partir du script `/chemin/vers/symfony/data/bin/symfony`. Par conséquent la commande suivante est équivalente à `symfony –V` pour une installation via SVN : 
     179 
     180    > php /chemin/vers/symfony/data/bin/symfony -V 
     181 
     182    symfony version 1.0.0 
     183 
     184 
     185Si vous optez pour une installation SVN, vous possédez peut-être déjà un projet Symfony. Pour que ce projet se serve des dossiers Symfony, vous devez modifier les deux variables définies dans le dossier de `des config du `de votre projet/config.php, comme suit : 
     186 
     187    [php] 
     188    <?php 
     189 
     190    $sf_symfony_lib_dir  = '/chemin/vers/symfony/lib/'; 
     191    $sf_symfony_data_dir = '/chemin/vers/symfony/data/'; 
     192 
     193 
     194Le chapitre 19 propse d’autres façon de rattacher un projet à une installation Symfony (incluant les liens symboliques et les chemins relatifs). 
     195 
     196 
     197 
     198>**TIP** 
     199>Vous pouvez aussi télécharger le paquet PEAR ([http://pear.symfony-project.com/get/symfony-1.0.0.tgz](http://pear.symfony-project.com/get/symfony-1.0.0.tgz)) et l’extraire ailleurs. Le résultat sera alors le même qu’avec un checkout. 
     200 
     201 
     202 
     203Installer une application 
     204------------------------- 
     205 
     206 
     207 
     208 
     209Comme vous l’avez appris au chapitre 2, un projet Symfony est composé de n applications. Toutes les applications d’un projet partagent la même base de données. Dans l’optique de créer une application, vous devez d’abord créer un projet 
     210 
     211 
     212### Créer un projet 
     213 
     214 
     215 
     216Chaque projet Symfony respecte une structure prédéfinie. La ligne de commande Symfony automatise la création de nouveaux projets en créant le squelette du projet, sa propre arborescence et ses propres droits d’accès. 
     217 
     218 
     219Pour une installation PEAR, tapez la commande suivant : 
     220 
     221    > mkdir ~/myproject 
     222    > cd ~/myproject 
     223    > symfony init-project myproject 
     224 
     225 
     226Pour une installation SVN, créer le projet avec cette commande : 
     227 
     228    > mkdir ~/myproject 
     229    > cd ~/myproject 
     230    > php /path/to/symfony/data/bin/symfony init-project myproject 
     231 
     232La commande `symfony` doit toujours être lancée à partir de la racine du projet (`myproject/`dans le cas précédant) car toutes les opérations réalisées par cette commande sont relatives aux projets. 
     233 
     234 
     235Symfony va créer l’arborescence suivante : 
     236 
     237    apps/ 
     238    batch/ 
     239    cache/ 
     240    config/ 
     241    data/ 
     242    doc/ 
     243    lib/ 
     244    log/ 
     245    plugins/ 
     246    test/ 
     247    web/ 
     248 
     249 
     250>**TIP** 
     251>L’ordre ìnit-project`ajoute un script `symfony`à la racine du projet ayant le même effet que la commande `symfony`installée par PEAR. Par conséquent, vous pouvez utiliser la syntaxe `php symfony`à la place de `symfony`si vous n’avez [if you don't have native command-line support {pas accès à une ligne de commande native}] (les installations SVN par exemple) 
     252 
     253 
     254### Créer une application 
     255 
     256 
     257 
     258Le projet est presque accessible, il ne lui manque plus qu’au moins une application. Pour la créer, employez la commande `ìnit-app` avec le nom de l’application comme argument. 
     259 
     260 
     261    > symfony init-app myapp 
     262 
     263 
     264Cela va créer un répertoire `myapp/` dans le dossier `apps/` du projet avec une configuration par défaut et un ensemble de répertoires prêts à recevoir votre site web. 
     265 
     266    apps/ 
     267      myapp/ 
     268        config/ 
     269        i18n/ 
     270        lib/ 
     271        modules/ 
     272        templates/ 
     273 
     274 
     275Certains fichiers PHP correspondant au contrôleur principal de chaque environnement sont aussi créés dans le répertoire `web\` du projet.  
     276 
     277    web/ 
     278      index.php 
     279      myapp_dev.php 
     280 
     281 
     282`index.php` est le contrôleur principal d’une nouvelle application en production. Lorsque vous créer la première application de votre projet, Symfony crée un fichier appelé `index.php` au lieu de `myapp.php` (Si vous ajoutez une nouvelle application appelée `mynewapp.php`, le nouveau contrôleur principal en production s’intitulera `mynewapp.php`). Pour utiliser votre application via l’environnement de développement, appelé le contrôleur principal `myapp_dev.php`. Vous en apprendrez plus à propos de ces environnements au chapitre 5. 
     283 
     284Configurer un serveur web 
     285------------------------- 
     286 
     287 
     288 
     289Les fichiers du répertoire `web/` sont les points d’entrée de votre application. Vous devez correctement configurer le serveur web pour les rendre accessibles via internet. Sur votre serveur de développement, comme sur votre serveur de production vous avez sûrement accès à la configuration d’Apache. Vous pouvez donc configurer une hôte virtuel. Sur des serveurs mutualisés, vous devrez utiliser le fichier `.htaccess`. 
     290 
     291 
     292 
     293###Configurer un hôte virtuel 
     294 
     295 
     296Le lsiting 3-1 est un exemple de configuration d’un hôte virtuel sous Apache dans le fichier `httpd.conf` 
     297 
     298Listing 3-1 – Exemple de configuration Apache dans `apache/conf/httpd.conf` 
     299 
     300    <VirtualHost *:80> 
     301      ServerName myapp.example.com 
     302      DocumentRoot "/home/steve/myproject/web" 
     303      DirectoryIndex index.php 
     304      Alias /sf /$sf_symfony_data_dir/web/sf 
     305      <Directory "/$sf_symfony_data_dir/web/sf"> 
     306        AllowOverride All 
     307        Allow from All 
     308      </Directory> 
     309      <Directory "/home/steve/myproject/web"> 
     310        AllowOverride All 
     311        Allow from All 
     312      </Directory> 
     313    </VirtualHost> 
     314 
     315 
     316L’emplacement du `sf_symfony_data_dir` du listing 3-1 doit être remplacé par le chemin réel. A titre d’exemple, pour une installation PEAR sous *nix, vous devriez avoir quelque chose comme : 
     317 
     318 
     319        Alias /sf /usr/local/lib/php/data/symfony/web/sf 
     320[{An alternative to this alias would be to create a symbolic link (symlink) or copy the `/path/to/symfony/data/web/sf/` directory to `myproject/web/sf/`.}] 
     321 
     322>**NOTE** 
     323> L’alias du répertoire `web/sf/` n’est pas obligatoire. En effet, il ne fait que permettre à Apache de trouver les images, les feuilles de styles et les fichiers JavaScript nécessaires pour la barre de debug, le générateur d’administration, la page Symfony par défaut et le support Ajax. [{Une solution alternative à cet alias serait de créer un lien symbolique (symlink) ou copier la cible de `chemin/vers/symfony/date/web/sf/` dans `myproject/web/sf`}] 
     324 
     325 
     326Il ne vous reste plus qu’a redémarrer Apache. L’application nouvellement créée peut maintenant être consultée grâce à un navigateur standard à partir de l’URL : 
     327 
     328    http://localhost/myapp_dev.php/ 
     329 
     330 
     331Vous devriez alors voir la page de félicitations déjà aperçue à l’illustration 3-1. 
     332 
     333>**SIDEBAR** 
     334>La réécriture d’URL (URL rewriting) 
     335> 
     336 
     337>Symfony utilise la technique de réécriture d’URL afin d’afficher des URL parlantes, utilisables par les moteurs de recherche et cachant les informations techniques à l’utilisateur. Vous en apprendrez plus sur ce point, appelé le [{*routing*}], au chapitre 9. 
     338> 
     339 
     340>Si votre version d’Apache n’est pas compilée avec le module `mod_rewrite`, vérifiez que le `mod_rewrite`Dynamic Share Object (DSO) est installé et que les lignes suivantes existent dans votre fichier `http.conf` : 
     341> 
     342> 
     343>    AddModule mod_rewrite.c 
     344>    LoadModule rewrite_module modules/mod_rewrite.so 
     345> 
     346> 
     347Pour Internet Information Services (IIS), ìsapi/rewrite`doit être installé et activé/ Vérifiez la documentation Symfony pour plus de détails sur l’installation d’IIS. 
     348 
     349 
     350### Configurer un hébergement mutualisé 
     351 
     352 
     353L’installation d’une application sur un hôte mutualisé est un peu plus rusée, étant donné qu’il possède souvent une structure de dossiers que vous ne pouvez pas modifier. 
     354 
     355 
     356 
     357>**CAUTION** 
     358Développer et tester directement sur un serveur mutualisé n’est pas une bonne pratique, puisqu’elle rend l’application visible alors même qu’elle n’est pas terminée, révèle son fonctionnement interne et ouvre de grandes failles de sécurité. Une autre raison, est que les performances d’un serveur mutualisé ne sont pas suffisantes pour parcourir efficacement votre application en mode débug. Par conséquent, vous ne devriez pas débuter vos développements sur un serveur mutualisé mais plutôt créer votre application en local et ensuite la déployer sur votre serveur mutualisé. La chapitre 16 vous en dit plus à ce sujet. 
     359 
     360 
     361 
     362Imaginons que vous utilisiez une hébergement mutualisé dont le dossier web est `www/`et non `web/`. Vous n’avez pas non plus accès au `httpd.conf`, mais uniquement au `.htaccess`disponible dans le dossier web. 
     363 
     364 
     365Dans un projet Symfony, tous les chemins d’accès aux répertoires sont paramétrables. La chapitre 19 vous en dira plus à ce propos mais dans l’intervalle, vous pouvez toujours renommer le répertoire `web/` en `www/` et permettre à l’application de prendre en compte ce changement en modifiant la configuration, comme indiqué dans le listing 3-2. Ces lignes doivent être ajoutées à la fin du fichier `config.php`de l’application. 
     366 
     367 
     368` 
     369Listing 3-2 – Modifier les paramètres par défaut de la structure des dossiers, dans `apps/myapp/config/config.php` 
     370 
     371 
     372    [php] 
     373    $sf_root_dir = sfConfig::get('sf_root_dir'); 
     374    sfConfig::add(array( 
     375      'sf_web_dir_name' => $sf_web_dir_name = 'www', 
     376      'sf_web_dir'      => $sf_root_dir.DIRECTORY_SEPARATOR.$sf_web_dir_name, 
     377      'sf_upload_dir'   => $sf_root_dir.DIRECTORY_SEPARATOR.$sf_web_dir_name.DIRECTORY_SEPARATOR.sfConfig::get('sf_upload_dir_name'), 
     378    )); 
     379 
     380La racine du projet contient un fichier .htaccess par défaut, comme indiqué au listing 3-3. Modifiez-le pour qu'il corresponde à votre configuration. 
     381Listing 3-3 -  `.htaccess` par défaut, dans `myproject/www/.htaccess` 
     382 
     383    Options +FollowSymLinks +ExecCGI 
     384 
     385    <IfModule mod_rewrite.c> 
     386      RewriteEngine On 
     387 
     388        
     389      # On remplace tous les fichiers par .quelque chose 
     390      RewriteCond %{REQUEST_URI} \..+$ 
     391      RewriteCond %{REQUEST_URI} !\.html$ 
     392      RewriteRule .* - [L] 
     393 
     394       
     395      # on vérifie que la version.html est présente 
     396      RewriteRule ^$ index.html [QSA] 
     397      RewriteRule ^([^.]+)$ $1.html [QSA] 
     398      RewriteCond %{REQUEST_FILENAME} !-f 
     399 
     400       
     401      # non, donc on redirige le contrôleur principal       
     402      RewriteRule ^(.*)$ index.php [QSA,L] 
     403    </IfModule> 
     404 
     405     
     406    # erreur en provenance du contrôleur principal 
     407    ErrorDocument 500 "<h2>Application error</h2>symfony application failed to start properly" 
     408 
     409 
     410Vous devriez maintenant être capable d'accéder à votre application. Vérifiez si vous obtenez la page de félicitations en accédant à cette URL : 
     411 
     412    http://www.example.com/myapp_dev.php/ 
     413 
     414>**SIDEBAR** 
     415> 
     416>D'autres configurations serveur 
     417> 
     418 
     419>Symfony est accessible via d'autres configurations serveurs. Vous pouvez, par exemple, utiliser un alias à la place d'un hôte viruel. Vous pouvez très bien faire tourner Symfony sur un serveur IIS. Il y a de nombreuses possibilités mais elles ne sont pas le sujet de ce livre. 
     420> 
     421 
     422>Si vous souhaitez plus d'inforamtions sur ces diverses configurations, rendez-vous sur le wiki ([http://www.symfony-project.com/trac/wiki](http://www.symfony-project.com/trac/wiki)). Il contient beauoup de tutoriels à ce sujet. 
     423 
     424 
     425Problèmes 
     426---------------- 
     427 
     428 
     429[{If you encounter problems during the installation, try to make the best out of the errors or exceptions thrown to the shell or to the browser. They are often self-explanatory and may even contain links to specific resources on the Web about your issue.}] 
     430 
     431 
     432 
     433### Problèmes courants 
     434 
     435 
     436Si les problèmes persistent, vérifiez la liste des erreurs fréquentes suivantes : 
     437 
     438 
     439 * Certaines installations de PHP acceptent à la fois les commandes du PHP4 et du PHP 5. Dans ce cas, il est préférable de préfixer tous les appels de commandes par `php5` à la place de `php`. Par exemple préférez `php5 symfony` à `symfony`. Vous aurez peut-être aussi besoin d'ajouter la ligne `SetEnv PHP_VER 5` au fichier `.htaccess` ou renommer tous les fichiers `.php` en `php5`. Une erreur renvoyée par une ligne de commande PHP 4 essayant d'accéder à Symfony ressemble à cela : 
     440 
     441        Parse error, unexpected ',', expecting '(' in .../symfony.php on line 19. 
     442 
     443 
     444  * Le limite mémoire, définie dans le `php.ini` doit être portée à au moins 16 Mo. Ce problème se manifeste le plus souvent par un message d’erreur au moment de ‘installation de Symfony via PEAR ou par la ligne de commande 
     445 
     446        Allowed memory size of 8388608 bytes exhausted 
     447 
     448 
     449  * Le paramètre `zend.ze1_compatibility_mode` doit être positionné à `off` dans le fichier `php.ini`. Si cela ne l’est pas, vous obtiendrez une erreur « implicit cloning » lorsque vous essaierez d’accéder à un script par un navigateur. 
     450 
     451        Strict Standards: Implicit cloning object of class 'sfTimer' because of 'zend.ze1_compatibility_mode' 
     452 
     453 
     454  * Les dossiers `log` et `cache` de votre projet doivent être définis avec des droits d’écriture. Si ce n’est pas le cas, une tentative d’accès à ces dossiers pourrait donner l’erreur suivante : 
     455 
     456        sfCacheException [message] Unable to write cache file"/usr/myproject/cache/frontend/prod/config/config_config_handlers.yml.php" 
     457 
     458 
     459  * La variable d’environnement PATH doit contenir le chemin d’accès vers le dossier des commandes PHP, `php`. De même et si vous utilisez PEAR, le fichier `php.ini` doit pointer vers le dossier PEAR/ 
     460  * Il peut arriver qu’il y ait plus d’un fichier `php.ini` disponible sur un serveur (le cas du serveur WAMP). Faites un appel à la fonction |^hînfo()`pour savoir l’exacte localisation du fichier `php.ini` utilisé par votre application. 
     461 
     462 
     463 
     464>**NOTE** 
     465>Pour des raisons de performance , il est fortement recommandé de positionner les paramètres `magic_quotes_gpc` et `register_globals` à `off` dans votre fichier `php.ini` 
     466 
     467 
     468###Les ressources Symfony 
     469 
     470 
     471Votre problème a déjà peut-être été identifié et la solution est déjà peut-être répertoriée par l’une des ressources suivantes : 
     472 
     473  * Le forum d’installation de Symfony ([http://www.symfony-project.com/forum/](http://www.symfony-project.com/forum/)) regorge de questions au sujet de plateformes données, d’environnements particuliers, des configurations, d’hôtes etc … 
     474 
     475  * Les archives de liste de diffusion des utilisateurs ([http://groups.google.fr/group/symfony-users](http://groups.google.fr/group/symfony-users)).( NT : [http://groups.google.fr/group/symfony-fr](la liste de diffusion francophone)) [{You may find similar experiences to your own there}] 
     476 
     477  * Le wiki de Symfony ([http://www.symfony-project.com/trac/wiki#Installingsymfony](http://www.symfony-project.com/trac/wiki#Installingsymfony)) contient plusieurs tutoriels d’installation pas à pas réalisés par les utilisateurs de Symfony. 
     478 
     479 
     480Si vous ne trouvez pas votre réponse, essayez d’interroger les membres les plus actifs de la communauté Symfony via le forum, la liste de diffusion ou même le canal IRC `#symfony`. 
     481 
     482 
     483Contrôle de version 
     484------------------- 
     485 
     486 
     487Une fois l’installation terminée le lancement d’un contrôle de version est recommandé. Cela vous permet de garder les traces de toutes les modifications de code, vous donne accès aux précédentes mises à jour, facilite la mise en place de patchs, améliore le travail d’équipe. Bien que Symfony supporte CVS nous recommandons l’usage de Subversion 
     488 ([http://subversion.tigris.org/](http://subversion.tigris.org/)) En considérant que vous avez déjà installé un serveur Subversion et que vous souhaitez créer un nouveau dépôt pour votre projet, les exemples suivants vous montreront les commandes Subversion utiles . 
     489 
     490D’autres clients Subversion existent, et les utilisateurs de Windows pourront utiliser TortoiseSVN ([http://tortoisesvn.tigris.org/](http://tortoisesvn.tigris.org/)). Pour plus d’informations consulter la documentation Subversion 
     491 
     492 
     493Pour les exemples suivants nous considérerons que `$SVNREP_DIR` est défini dans les variables d’environnement. Si ce n’est pas le cas, vous substituerez `$SVNREP_DIR` par le chemin réel vers le dossier dépôt. 
     494 
     495 
     496Commençons par créer un nouveau dépôt pour le projet ‘ myproject` : 
     497 
     498    > svnadmin create $SVNREP_DIR/myproject 
     499 
     500Ensuite, la structure de base du dépôt comprenant les dossiers `trunk`, `tags`, and `branches` sera créée grâce à cette commande plutôt longue : 
     501 
     502    > svn mkdir -m "layout creation" file:///$SVNREP_DIR/myproject/trunk file:///$SVNREP_DIR/myproject/tags file:///$SVNREP_DIR/myproject/branches 
     503 
     504Ce sera votre première révision. Vous devez maintenant importer les fichiers de votre projet à l’exception de `cache` et `log` 
     505 
     506    > cd ~/myproject 
     507    > rm -rf cache/* 
     508    > rm -rf log/* 
     509    > svn import -m "initial import" . file:///$SVNREP_DIR/myproject/trunk 
     510 
     511 
     512Vérifiez les fichiers précédemment traités grâce à la commande suivante : 
     513 
     514    > svn ls file:///$SVNREP_DIR/myproject/trunk/ 
     515 
     516Tout semble s’être correctement déroulé. Maintenant votre dépôt contient la version de référence (et l’historique) de tous les fichiers de votre projet. Ceci veut donc dire que tous les fichiers du dossier `~/myproject/`doivent être liés au dépôt. Pour cela commencez par renommer le dossier `myproject/` (nous l’effacerons plus tard si tout se passe bien) et effectuez un checkout du dépôt dans un nouveau dossier 
     517 
     518    > cd ~ 
     519    > mv myproject myproject.origin 
     520    > svn co file:///$SVNREP_DIR/myproject/trunk myproject 
     521    > ls myproject 
     522 
     523Voilà. Maintenant vous pouvez travailler sur les fichiers situés dans `~/myprojet/` et répercuter les modifications dans le dépôt. N’oubliez pas de supprimer le dossier `myproject.origin/`, maintenant inutile. 
     524 
     525Il reste une chose à faire. Si vous reportez vos modifications vers le dépôt vous risquez de copier des `éléments indésirables comme les dossiers `cache` et `log de votre projet. SVN vous permet de spécifier des éléments à ignorer au cours des opérations du contrôle de version. Vous avez aussi besoin d’ajuster les droits sur ces dossier : 
     526 
     527    > cd ~/myproject 
     528    > chmod 777 cache 
     529    > chmod 777 log 
     530    > svn propedit svn:ignore log 
     531    > svn propedit svn:ignore cache 
     532 
     533L’éditeur de texte par défaut devrait alors démarrer. Si ce n’est pas le cas, vérifiez les associations des fichiers Subversion et de votre éditeur de texte en tapant la commande suivante : 
     534    > export SVN_EDITOR=<name of editor> 
     535    > svn propedit svn:ignore log 
     536    > svn propedit svn:ignore cache 
     537 
     538Maintenant vous n’avez plus qu’à ajouter les dossiers du projet que SVN doit ignorer. 
     539 
     540    * 
     541 
     542Sauvegardez et quittez. Vous avez fini 
     543 
     544 
     545Résumé 
     546------ 
     547 
     548 
     549Pour tester et vous amuser avec Symfony en local, la meilleure des solutions est sans nul doute le bac à sable, qui contient une environement préconfiguré. 
     550 
     551Pour de réels développements ou pour un serveur de production, préférez l’installation PEAR ou le contrôle de version. Cela installera les librairies Symfony et vous aurez toujours besoin d’initialiser un projet et une application. La dernière chose à faire est alors de configurer le serveur. Cela peut-être fait de plusieurs façon, mais nous vous recommandons d’utiliser la technique des hôtes virtuels. 
     552 
     553Si vous rencontrez des problèmes au cours de l’installation, vous pourrez trouver la plupart des réponses grâce aux tutoriels disponibles sur le site de Symfony. Si nécessaire vous pourrez soumettre vos questions à la communauté via le forum, le channel irc ou les liste de diffusion. Vous aurez une réponse pertinente très rapidement. 
     554 
     555Un fois votre projet initialisé, prenez la bonne habitude d’effectuer une contrôle de version 
     556 
     557Maintenant que vous êtes prêt à utiliser Symfony, il est temps de voir comment construire une application web de base. 
     558 
     559 
     560}}}