Les variables d'environnement
Notions théoriques
Les variables d'environnement, c'est un peu comme la baguette magique de l'informaticien.

Les variables d'environnement sont des valeurs nommées, stockées dans le système d'exploitation, qui influence la façon dont les programmes s'exécutent sur votre ordinateur.
Les variables d'environnement sont utilisées pour faire le pont entre le système d'exploitation et les applications.
Par exemple, la variable d'environnement PATH joue un rôle crucial dans l'exécution des commandes.
La variable d'environnement
PATHcontient une liste de répertoires où le système recherche les programmes à exécuter.
Si vous installez un nouveau logiciel et que son chemin d'accès n'est pas dans la variable PATH,
vous devrez spécifier le chemin complet chaque fois que vous voulez l'exécuter. Pas très pratique, n'est-ce pas ?
Exemples pratiques
Variables d'environnement sous Windows
Pour voir/modifier les variables d'environnement sous Windows :
- faites un clic droit sur "Ce PC",
- puis choisissez "Propriétés"
- ensuite cliquez sur "Paramètres système avancés",
- puis cliquez sur sur "Variables d'environnement".

Sous Windows, pour voir/modifier les variables d'environnement, vous pouvez aussi :
- cliquer sur le bouton Démarrer,
- saisir
envau clavier - cliquer sur "Modifier les variables d'environnement système"
- puis cliquer sur "Variables d'environnement..."
Variables d'environnement sous Linux
Sous Debian Linux, ouvrez un terminal et tapez env.
Vous verrez une liste de toutes les variables d'environnement :

1. Ajouter une variable d'environnement
a) Pour la session actuelle (temporaire, dans le terminal) :
- Utilisez la commande
exportdans le terminal. - Exemple :
export MA_VARIABLE="ma_valeur"
- Vérifiez que la variable est ajoutée avec :
echo $MA_VARIABLE
- Note : Cette variable disparaît à la fermeture du terminal.
b) Pour toutes les sessions d'un utilisateur (persistant) :
- Modifiez le fichier
~/.bashrcou~/.bash_profile(selon votre configuration). - Ouvre le fichier avec un éditeur (par exemple,
nano) :nano ~/.bashrc - Ajoutez la variable à la fin du fichier :
export MA_VARIABLE="ma_valeur"
- Enregistrez et appliquez les modifications :
source ~/.bashrc
- Vérifiez :
echo $MA_VARIABLE
c) Pour tous les utilisateurs (système global) :
- Modifiez le fichier
/etc/environment(pour les variables globales) :sudo nano /etc/environment - Ajoutez la variable (sans
export, car ce fichier n'est pas un script shell) :MA_VARIABLE="ma_valeur" - Enregistrez et appliquez (peut nécessiter une déconnexion/reconnexion ou un redémarrage).
- Vérifiez :
echo $MA_VARIABLE
2. Modifier une variable d'environnement
a) Temporaire (session actuelle) :
- Redéfinissez la variable avec
export:export MA_VARIABLE="nouvelle_valeur" - Vérifiez :
echo $MA_VARIABLE
b) Persistant (utilisateur ou système) :
- Ouvrez le fichier correspondant (
~/.bashrcou/etc/environment) avec un éditeur. - Modifiez la ligne contenant la variable :
ouexport MA_VARIABLE="nouvelle_valeur" # Dans ~/.bashrcMA_VARIABLE="nouvelle_valeur" # Dans /etc/environment
- Enregistrez et appliquez :
ou déconnectez-vous/reconnectez-vous poursource ~/.bashrc # Pour ~/.bashrc
/etc/environment. - Vérifiez :
echo $MA_VARIABLE
3. Supprimer une variable d'environnement
a) Temporaire (session actuelle) :
- Utilisez la commande
unset:unset MA_VARIABLE - Vérifiez :
echo $MA_VARIABLE # Ne retourne rien
b) Persistant (utilisateur ou système) :
- Ouvrez le fichier correspondant (
~/.bashrcou/etc/environment). - Supprimez la ligne contenant la variable.
- Enregistrez et appliquez :
ou déconnectez-vous/reconnectez-vous poursource ~/.bashrc # Pour ~/.bashrc
/etc/environment. - Vérifiez :
echo $MA_VARIABLE # Ne retourne rien
- Privilèges : Modifier
/etc/environmentnécessite des droits root (sudo). - Portée : Les variables dans
~/.bashrcs'appliquent uniquement à l'utilisateur, tandis que/etc/environments'applique à tous les utilisateurs. - Fichiers alternatifs : Selon la configuration, vous pouvez aussi utiliser
~/.profileou/etc/profilepour des variables persistantes. - Redémarrage : Certaines modifications (notamment dans
/etc/environment) peuvent nécessiter une déconnexion ou un redémarrage pour être effectives.
📌 Variable d'environnement pour un projet Symfony
Solution n°1 : Configurer le virtualHost
sudo a2enmod env
sudo nano /etc/apache2/sites-available/monprojet.conf
Ajoutez la variable d'environnement DATABASE avec la directive SetEnv.
Voici un exemple de configuration :
<VirtualHost *:80>
ServerName monprojet.local
DocumentRoot /var/www/monprojet/public
<Directory /var/www/monprojet/public>
AllowOverride All
Require all granted
Options -MultiViews
DirectoryIndex index.php
</Directory>
# Définir la variable d'environnement DATABASE
SetEnv DATABASE "mysql://user:password@localhost:3306/nom_base"
ErrorLog ${APACHE_LOG_DIR}/monprojet_error.log
CustomLog ${APACHE_LOG_DIR}/monprojet_access.log combined
</VirtualHost>
sudo a2ensite monprojet.conf
sudo apache2ctl configtest
sudo systemctl restart apache2
- Évitez de stocker des informations sensibles (comme les mots de passe) directement dans le fichier VirtualHost, car il peut être lisible par d'autres utilisateurs.
- Une meilleure pratique est de référencer un fichier de configuration sécurisé ou d'utiliser des outils comme Vault pour gérer les secrets.
- Assurez-vous que les permissions du fichier VirtualHost sont restrictives :
sudo chmod 640 /etc/apache2/sites-available/monprojet.confsudo chown root:www-data /etc/apache2/sites-available/monprojet.conf
Solution n°2 : Configurer Symfony
cd /var/www/monprojet
nano .env.local
php bin/console cache:clear