env.md 2.5 KB

Gestion des variables d'environnement

Les variables d'environnement sont définies dans les fichiers .env (dotenv)

Voir https://symfony.com/doc/current/configuration.html#configuration-based-on-environment-variables

Principe général

Les fichiers d'environnement

Les fichiers dotenv s'organisent ainsi :

  • Un fichier .env commun à tous les environnements, il définit des valeurs par défaut.
  • Un fichier .env.local, non versionné, qui surcharge le fichier .env avec les données propres à l'environnement local.

Il existe d'autres manières de surcharger le fichier d'environnement, mais elles ne nous seront pas utiles ici.

Variables secrètes

Certaines informations sensibles sont stockées de manière cryptée, telles que les informations permettant l'accès aux bases de données. Toutes ces données sont stockées par environnement dans le répertoire config/secrets.

Pour plus d'informations sur le fonctionnement des secrets : https://symfony.com/doc/current/configuration/secrets.html

Mise en pratique

Génération du symlink vers le fichier d'environnement

On trouve dans le répertoire env des fichiers .env.<environnement> correspondant aux différents environnements de développement, test, production, etc.

Lorsque la commande composer install|update est exécutée, la commande bin/console ot:setup:env s'exécute en post- script et génère un symlink .env.local à la racine du projet.

Pour forcer la mise à jour du fichier d'environnement :

bin/console ot:setup:env

Ce symlink pointe vers le fichier d'environnement correspondant à la machine hôte.

On peut forcer un nom d'hôte avec l'option --host. Ex :

bin/console ot:setup:env --host=ci

Ou en définissant une variable d'environnement HOST :

HOST=ci bin/console ot:setup:env

Génération du fichier des variables secrètes

Par ailleurs, la commande bin/console secrets:decrypt-to-local --force est aussi exécutée, et génère un fichier .env.{env}.local contenant les variables secrètes. (@see https://symfony.com/doc/current/configuration/secrets.html#deploy-secrets-to-production) secrètes

Déboguer

Les variables d'environnement actives peuvent être affichées au moyen de la commande :

php bin/console debug:container --env-vars

Les variables secrètes peuvent être lues avec :

php bin/console secrets:list --reveal

Ou pour un autre environnement :

APP_RUNTIME_ENV={env} php bin/console secrets:list --reveal