Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
prog:symfony:configuration:env [19/09/2022 16:44] thierry créée |
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 ====== | ||
+ | * [[https://symfony.com/doc/current/configuration.html#config-dot-env]] | ||
+ | |||