Aller au contenu principal

Les variables d'environnement

Notions théoriques

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

Important

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 PATH contient une liste de répertoires où le système recherche les programmes à exécuter.

remarque

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".

astuce

Sous Windows, pour voir/modifier les variables d'environnement, vous pouvez aussi :

  • cliquer sur le bouton Démarrer,
  • saisir env au 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 export dans 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 ~/.bashrc ou ~/.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 (~/.bashrc ou /etc/environment) avec un éditeur.
  • Modifiez la ligne contenant la variable :
    export MA_VARIABLE="nouvelle_valeur"  # Dans ~/.bashrc
    ou
    MA_VARIABLE="nouvelle_valeur"  # Dans /etc/environment
  • Enregistrez et appliquez :
    source ~/.bashrc  # Pour ~/.bashrc
    ou déconnectez-vous/reconnectez-vous pour /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 (~/.bashrc ou /etc/environment).
  • Supprimez la ligne contenant la variable.
  • Enregistrez et appliquez :
    source ~/.bashrc  # Pour ~/.bashrc
    ou déconnectez-vous/reconnectez-vous pour /etc/environment.
  • Vérifiez :
    echo $MA_VARIABLE  # Ne retourne rien
attention
  • Privilèges : Modifier /etc/environment nécessite des droits root (sudo).
  • Portée : Les variables dans ~/.bashrc s'appliquent uniquement à l'utilisateur, tandis que /etc/environment s'applique à tous les utilisateurs.
  • Fichiers alternatifs : Selon la configuration, vous pouvez aussi utiliser ~/.profile ou /etc/profile pour 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.conf
    sudo 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

Test de mémorisation/compréhension


Qu'est-ce qu'une variable d'environnement ?


Quel est le rôle de la variable d'environnement `PATH` ?


Comment voir les variables d'environnement sous Windows ?


Comment voir les variables d'environnement sous Linux ?


Qu'arrive-t-il si le chemin d'un programme n'est pas dans la variable `PATH` ?



TP pour réfléchir et résoudre des problèmes

Ajouter le chemin vers php.exe

Imaginons que vous souhaitez installer PHP sur votre machine Windows, et que vous souhaitez exécuter la commande php dans l'Invite de commandes.

Votre mission consiste à ajouter le chemin vers l'exécutable php.exe dans la variable d'environnement PATH.

  1. Télécharger PHP :

    • Rendez-vous sur le site officiel de PHP : php.net.
    • Téléchargez le fichier ZIP des binaires de la dernière version de PHP pour Windows.

      Choisissez la version qui correspond à votre architecture (si vous ne savez pas, prenez x64 Thread Safe au format ZIP).

  2. Extraire le fichier :

    • Extrayez le contenu du fichier ZIP dans un dossier nommé avec la version de PHP, par exemple C:\php\8.2.5.
  3. Trouver le chemin vers php.exe:

    • Le fichier php.exe se trouve dans le dossier C:\php\8.2.5.
  4. Ajouter le chemin dans la variable d'environnement PATH:

    • Ouvrez le menu Démarrer et recherchez "Variables d'environnement".
    • Cliquez sur "Modifier les variables d'environnement système".
    • Dans la fenêtre qui s'ouvre, cliquez sur "Variables d'environnement".
    • Sous "Variables système", trouvez Path et cliquez sur "Modifier".
    • Dans la fenêtre qui s'ouvre, cliquez sur "Nouveau" puis collez le chemin vers le dossier contenant php.exe (par exemple C:\php\8.2.5).
    • Cliquez sur "OK" dans toutes les fenêtres pour fermer.
    astuce

    Sous Windows, pour voir/modifier les variables d'environnement, vous pouvez aussi :

    • cliquer sur le bouton Démarrer,
    • saisir env au clavier
    • cliquer sur "Modifier les variables d'environnement système"
    • puis cliquer sur "Variables d'environnement..."
  5. Vérification :

    • Ouvrez une nouvelle invite de commandes et tapez php -v.
    • Si vous voyez la version de PHP s'afficher, félicitations, vous avez réussi !

En suivant ces étapes, vous pourrez exécuter PHP en utilisant la version spécifique que vous avez installée.


Ajouter le chemin vers nano.exe

Imaginons que vous souhaitez installer l'éditeur de texte Nano pour Windows et utiliser la commande nano à partir de n'importe quel emplacement dans l'Invite de commandes Windows.

Votre mission consiste à ajouter le chemin vers l'exécutable nano.exe dans la variable d'environnement PATH de Windows, pour pouvoir l'exécuter à partir de n'importe quel emplacement dans l'Invite de commandes Windows.

Vous pouver télécharger et extraire Nano pour Windows à partir de l'archive ZIP disponible à l'adresse https://github.com/okibcn/nano-for-windows/releases,

Une solution

Ajouter le chemin vers mysql.exe

Imaginons que vous venez d'installer MariaDB sur votre machine Windows, mais vous ne pouvez pas exécuter mysql dans l'Invite de commandes.

Votre mission consiste à ajouter le chemin vers l'exécutable mysql.exe dans la variable d'environnement PATH.

Une solution