Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
prog:symfony:configuration:env [19/09/2022 16:45]
thierry
prog:symfony:configuration:env [20/09/2022 16:57] (Version actuelle)
thierry [Depannage]
Ligne 1: Ligne 1:
 ====== Les fichiers .env ====== ====== Les fichiers .env ======
 +Les applications Symfony sont livrées avec un fichier appelé .env situé dans le répertoire racine du projet.\\
 +Ce fichier est utilisé pour définir la valeur des variables d'​environnement.
 +
 +Dans tous les environnements,​ les fichiers suivants sont chargés s'ils existent,\\
 +Le dernier chargé étant prioritaires sur les premiers :
 +
 +  * ''​.env''​ contient les valeurs par défaut des variables d'​environnement nécessaires à l'​application.
 +  * ''​.env.local''​ est un fichier non comité avec des surcharges locales.
 +  * ''​.env.$APP_ENV''​ contient les valeurs par défaut spécifiques à l'​environnement
 +  * ''​.env.$APP_ENV.local''​ fichier non commité avec des valeurs spécifiques à l'​environnement
 +
 +<note important>​Les variables d'​environnement réelles sont prioritaires sur les les variables définies dans les fichiers ''​.env''​.</​note>​
 +
 +<note warning>​NE DÉFINISSEZ PAS DE SECRETS DE PRODUCTION DANS CE FICHIER NI DANS AUCUN AUTRE FICHIER COMMITÉ.\\
 +[[ https://​symfony.com/​doc/​current/​configuration/​secrets.html]]</​note>​
 +
 +
 +===== Convention de nommages =====
 +  * Les fichiers ''​.env''​ se terminant par ''​local'',​ ne sont pas commités.
 +
 +===== Plusieurs fichiers .env =====
 +On peut créer plusieurs fichiers ''​.env''​ en fonction de l'​environnement ou on se trouve.
 +
 +  * ''​.env''​
 +  * ''​.env.local''​
 +  * ''​.env.prod.local''​
 +  * ''​.env.dev.local''​
 +
 +Le fichier ''​.env.xxx''​ qui sera utilisé pour surchargé le fichier ''​.env''​ est paramétré dans le fichier ''​.env''​ lui méme en definissant la variable ''​APP_ENV''​
 +
 +<code php .env>
 +....
 +APP_ENV=prod
 +# Chargera .env.prod.local
 +...
 +</​code>​
 +===== En production =====
 +
 +
 +<note tip>​Exécuter''​composer dump-env prod''​ pour compiler les fichiers ''​.env''​ pour une utilisation en production (nécessite symfony/​flex >​=1.2).\\
 +[[https://​symfony.com/​doc/​current/​best_practices.htmsymfony l#​use-environment-variables-for-infrastructure-configuration]]</​note>​
 +
 +===== Depannage =====
 +On peut visualiser le mecanisme avec ''​symfony console debug:​dotenv''​
 +
 +<​code>​
 +thierry@obi1:/​var/​www/​test$ php bin/console debug:​dotenv
 +
 +Dotenv Variables & Files
 +========================
 +
 +Scanned Files (in descending priority)
 +--------------------------------------
 +
 + * ⨯ .env.local.php
 + * ⨯ .env.dev.local
 + * ⨯ .env.dev
 + * ⨯ .env.local
 + * ✓ .env
 +
 +Variables
 +---------
 +
 + ​------------ ---------------------------------- -----------------------------------
 +  Variable ​    ​Value ​                             .env
 + ​------------ ---------------------------------- -----------------------------------
 +  APP_ENV ​     dev                                dev
 +  APP_SECRET ​  ​0f363272eae2f703c2d2f0fe1b8db8bd ​  ​0f363272eae2f703c2d2f0fe1b8db8...
 + ​------------ ---------------------------------- -----------------------------------
 +
 + // Note real values might be different between web and CLI.
 +</​code>​
 +
 +
 +
 ====== Sources & Ressources ====== ====== Sources & Ressources ======
   * [[https://​symfony.com/​doc/​current/​configuration.html#​config-dot-env]]   * [[https://​symfony.com/​doc/​current/​configuration.html#​config-dot-env]]