Skip to main content

Introduction

Tous les fichiers de configuration du framework Laravel sont stockés dans le répertoire config/. Chaque option est commentée : ouvrez les fichiers pour découvrir les options disponibles. Ils gèrent de nombreux paramètres essentiels : connexion à la base de données, serveur d’e-mails, URL de l’application, clé de chiffrement, etc.

Commande about

La commande Artisan about affiche un aperçu de la configuration, des drivers et de l’environnement de l’application.
Pour cibler une section spécifique, utilisez --only.
Pour inspecter en détail un fichier de configuration, config:show est pratique.

Configuration d’environnement (.env)

On souhaite souvent modifier les valeurs de configuration selon l’environnement (par exemple, un driver de cache différent entre local et production). Laravel s’appuie sur la bibliothèque PHP DotEnv. Lors d’une nouvelle installation, un fichier .env.example contenant les variables d’environnement usuelles est présent à la racine, et il est automatiquement copié en .env pendant l’installation.
Pour un travail en équipe, gardez .env.example versionné et à jour. Avec des valeurs placeholders, les autres développeurs savent immédiatement quelles variables d’environnement configurer.

Sécurité du fichier d’environnement

Ne versionnez pas le fichier .env. Chaque développeur/serveur a besoin d’une configuration différente, et l’inclure dans le dépôt risque d’exposer des informations sensibles en cas d’incident.
Laravel propose toutefois une fonctionnalité de chiffrement du fichier d’environnement : dans sa forme chiffrée, il peut être stocké en toute sécurité dans le dépôt.

Fichiers d’environnement supplémentaires

Au démarrage, Laravel vérifie la variable APP_ENV ou l’argument CLI --env. Si présent, il charge le fichier .env.[APP_ENV] s’il existe. Sinon, il utilise le fichier .env par défaut.

Types des variables d’environnement

Toutes les variables du .env sont analysées comme des chaînes, mais des valeurs spéciales permettent à env() de retourner d’autres types. Pour une valeur avec espaces, entourez-la de guillemets doubles.

Récupération des variables d’environnement

Toutes les variables du .env sont chargées dans la superglobale $_ENV à la réception d’une requête. Dans les fichiers de configuration, récupérez-les via env().
Le second argument est la valeur par défaut retournée si la variable est absente.

Vérifier l’environnement actuel

L’environnement courant est déterminé par APP_ENV. Utilisez la méthode environment de la façade App.
Vous pouvez tester un environnement spécifique en passant un argument.

Chiffrement des fichiers d’environnement

Les fichiers d’environnement non chiffrés ne doivent pas être versionnés, mais Laravel offre une fonctionnalité pour les chiffrer.

Chiffrement

Pour chiffrer un fichier d’environnement, utilisez la commande env:encrypt.
Lors de son exécution, .env est chiffré et son contenu chiffré est enregistré dans un fichier .env.encrypted. La clé de déchiffrement s’affiche en sortie de commande : conservez-la dans un gestionnaire de mots de passe sécurisé. Pour fournir votre propre clé de chiffrement, utilisez l’option --key.
La longueur de la clé fournie doit correspondre à celle exigée par le chiffrement utilisé. Par défaut, Laravel utilise le chiffrement AES-256-CBC, qui requiert une clé de 32 caractères. Vous êtes libre d’utiliser n’importe quel chiffrement pris en charge par le chiffrement de Laravel en passant l’option --cipher.
Si votre application dispose de plusieurs fichiers d’environnement, comme .env et .env.staging, vous pouvez spécifier lequel chiffrer via l’option --env.

Noms de variables lisibles

Lors du chiffrement d’un fichier d’environnement, l’option --readable permet de conserver les noms des variables visibles tout en ne chiffrant que leurs valeurs.
Cela produit un fichier chiffré au format suivant :
Le format lisible permet de voir quelles variables d’environnement existent sans exposer de données sensibles. Il facilite également la relecture des pull requests, puisque vous pouvez identifier les variables ajoutées, supprimées ou modifiées sans avoir à déchiffrer le fichier. Lors du déchiffrement, Laravel détecte automatiquement le format utilisé, aucune option supplémentaire n’est donc requise pour la commande env:decrypt.
Lors de l’utilisation de l’option --readable, les commentaires et les lignes vides du fichier d’environnement d’origine ne sont pas inclus dans le fichier chiffré généré.

Mise à jour des fichiers d’environnement chiffrés lisibles

Lors de la mise à jour d’un fichier d’environnement chiffré au format lisible, Laravel conserve les valeurs inchangées et supprime les variables qui n’existent plus dans le fichier d’environnement source.
Le fichier chiffré est créé s’il n’existe pas encore. Lors de la mise à jour d’un fichier existant, fournissez la même clé de chiffrement et le même chiffrement que ceux utilisés lors de sa création. Si le fichier ne peut être déchiffré, la commande échoue sans l’écraser. Pour rechiffrer toutes les valeurs, utilisez l’option --force. Cela permet de changer la clé de chiffrement ou de remplacer un fichier chiffré devenu invalide.

Déchiffrement

Pour déchiffrer un fichier d’environnement, utilisez la commande env:decrypt. Elle nécessite une clé de déchiffrement, que Laravel récupère depuis la variable d’environnement LARAVEL_ENV_ENCRYPTION_KEY.
Vous pouvez également fournir la clé directement via l’option --key.
Lorsque la commande env:decrypt s’exécute, Laravel déchiffre le contenu du fichier .env.encrypted et l’écrit dans le fichier .env. Utilisez l’option --cipher pour déchiffrer avec un chiffrement personnalisé.
Si votre application dispose de plusieurs fichiers d’environnement, comme .env et .env.staging, vous pouvez spécifier lequel déchiffrer via l’option --env.
Pour écraser un fichier d’environnement existant, utilisez l’option --force.

Accès aux valeurs de configuration

Utilisez la façade Config ou le helper global config() pour accéder aux valeurs depuis n’importe où. Utilisez la « notation point » : nom de fichier et nom d’option.
Pour modifier une valeur à l’exécution, utilisez Config::set() ou passez un tableau à config().
Des méthodes typées existent et lancent une exception si le type ne correspond pas.

Cache de configuration

Pour améliorer les performances, mettez toutes les configurations en cache dans un seul fichier.
Cette commande fusionne toutes les options en un fichier unique lu rapidement par le framework.
Lancez config:cache dans votre pipeline de déploiement en production. Évitez-la en développement local où les configurations changent souvent.
Une fois le cache créé, le .env n’est plus lu pendant les requêtes ni pour les commandes Artisan. env() ne renvoie alors que les variables système.
Pour cette raison, appelez toujours env() uniquement dans les fichiers du répertoire config/. Ailleurs, utilisez config().
Pour vider le cache :

Publication des fichiers de configuration

Beaucoup de fichiers sont déjà publiés dans config/, mais certains (cors.php, view.php, etc.) ne le sont pas par défaut. Publiez-les avec config:publish.

Mode debug

L’option debug de config/app.php détermine le niveau d’information d’erreur affiché à l’utilisateur. Par défaut, elle suit la valeur de APP_DEBUG dans .env.
En production, APP_DEBUG doit être à false. Si true, les paramètres sensibles de l’application peuvent être exposés aux utilisateurs.

Mode maintenance

Quand l’application est en mode maintenance, une vue personnalisée est affichée pour toutes les requêtes. Cela permet de la « désactiver » temporairement pendant une mise à jour ou une opération de maintenance.

Activer le mode maintenance

L’option --refresh recharge automatiquement le navigateur après le nombre de secondes indiqué.
L’option --retry définit la valeur de l’en-tête HTTP Retry-After.

Contourner le mode maintenance

Utilisez --secret pour n’autoriser que certains utilisateurs via un token.
Avec --with-secret, Laravel génère automatiquement le token.

Mode maintenance sur plusieurs serveurs

Par défaut, Laravel gère la maintenance via un fichier. Pour un déploiement multi-serveurs, préférez la méthode basée sur le cache.

Pré-rendu de la vue maintenance

Pendant php artisan down, si des utilisateurs accèdent au site alors que les dépendances sont en cours de mise à jour, ils peuvent voir une erreur. Utilisez --render pour pré-rendre la vue.
Vous pouvez aussi rediriger toutes les requêtes vers une URL pendant la maintenance.

Désactiver le mode maintenance

Personnalisez le template par défaut du mode maintenance en créant resources/views/errors/503.blade.php.
Pour éliminer totalement l’interruption, envisagez une plateforme entièrement managée comme Laravel Cloud.

Prochaines étapes

Routage

Apprenez les bases du routage qui lie URL et contrôleurs.
Dernière modification le 16 septembre 2026