Après la mise à niveau vers Laravel 5.2, aucune de mes .env
valeurs de fichier n'est en cours de lecture. J'ai suivi les instructions de mise à niveau ; aucun de mes fichiers de configuration n'a été modifié sauf auth.php. Ils fonctionnaient tous très bien dans la version précédente, 5.1.19
.env
contient des valeurs telles que
DB_DATABASE=mydb
DB_USERNAME=myuser
config/database.php
contient
'mysql' => [
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
]
J'obtiens cette erreur:
PDOException: SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: NO)
Ne tirant clairement pas dans ma configuration d'environnement. Cela affecte chacun de mes fichiers de configuration, y compris des tiers tels que bugsnag.
J'ai aussi essayé
php artisan config:clear
php artisan cache:clear
Mettre à jour
En essayant php artisan tinker
>>> env('DB_DATABASE')
=> null
>>> getenv('DB_DATABASE')
=> false
>>> config('database.connections.mysql.database')
=> "forge"
>>> dd($_ENV)
[]
J'ai essayé d'installer une nouvelle copie de Laravel 5.2. Je n'ai pratiquement copié que dans mon app
dossier; aucun package de composition supplémentaire n'est inclus. J'ai toujours le même problème. J'ai d'autres projets Laravel 5.2 sur le même serveur qui fonctionnent bien.
la source
.env
Réponses:
À partir des notes de mise à jour officielles de Laravel 5.2:
Référence: https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0
la source
php artisan config:cache
résolu pour moi - rien d'autre n'avait aidé. Pas mêmephp artisan config:clear
- merci!php artisan config:clear
est la seule chose qui a fonctionné pour moiphp artisan config:clear
fonctionné pour moi. Je n'avais pas fait config: cache avant, donc ça me semblait un peu bizarre de devoir vider le cache..env
au lieu de.env.example
fichierSi l'une de vos
.env
variables contient des espaces, assurez-vous de les mettre entre guillemets. Par exemple:SITE_NAME="My website"
N'oubliez pas de vider votre cache avant de tester:
la source
.env
fichier, exécutez laphp artisan config:cache & php artisan config:clear
commande. Ça va marcher.Sensationnel. Bon chagrin. C'est parce que j'avais une valeur env avec un espace dedans, pas entouré de guillemets
Ce
Changé à ceci
Corrigé. Je pense que cela a à voir avec Laravel 5.2 qui met maintenant à jour vlucas / phpdotenv de 1.1.1 à 2.1.0
la source
.env
5.2 alors que dans la version 5.1, ce n'est pas le cas.phpdotenv
, mais Laravel sait toujours qu'il y a un.env
fichier qui doit être inclus, et qu'il n'a pas réussi, mais ne prend pas la peine de le dire à personne.Pour moi, cela a fonctionné dans cet ordre:
Et j'ai essayé tout le reste sans chance.
la source
J'ai eu un problème similaire dans mon
config/services.php
et j'ai résolu en utilisant les commandesconfig clear
etoptimize
:la source
Pour moi, ce qui suit a fonctionné
la source
lance ça:
puis
php artisan config:cache
la source
J'ai eu le même problème sur l'environnement local, j'ai résolu par
la source
Vous pouvez résoudre le problème par la recommandation suivante
Recommandation 1:
Vous devez utiliser le fichier .env via les fichiers de configuration, ce qui signifie que vous êtes invité à lire le fichier .env à partir des fichiers de configuration (tels que /config/app.php ou /config/database.php), puis vous pouvez utiliser la configuration fichiers de n'importe quel emplacement de votre projet.
Recommandation 2: définissez votre valeur d'environnement entre guillemets doubles
Recommandation 3: Conservez la séquence de commandes suivante après avoir modifié une configuration ou une valeur d'environnement.
Recommandation 4: lorsque la syntaxe1 ne fonctionne pas, vous pouvez essayer une autre syntaxe2
Recommandation 5: Lorsque votre nombre d'utilisateurs est élevé / supérieur, vous devez augmenter la taille de mémoire associée dans la configuration du serveur .
Recommandation 6: définissez une valeur probable par défaut lorsque vous lisez la variable .env.
la source
Lorsque vous avez lancé la commande,
php artisan config:cache
elle effacera toutes lesenv
variables etenv()
donnera des valeurs nulles, essayez d'exécuter la commande suivante et boom là, vousenv()
recommencez à attraper toutes lesenv
variablesla source
J'ai manqué ceci dans les instructions de mise à niveau:
L'ajout de cette ligne a permis
.env
de lire correctement le fichier local .la source
La simplicité est la puissance:
Vous allez recevoir:
Cache de configuration effacé!
Configuration mise en cache avec succès!
la source
La même chose se produit lorsque: le port est dans votre .env local
encore une fois les guillemets doubles font l'affaire
puis
la source
supprimer le cache en utilisant:
la source
En plus de ce que @andrewtweber a suggéré, assurez-vous de ne pas avoir d'espaces entre KEY = et la valeur à moins qu'elle ne soit entre guillemets
Fichier .env par exemple:
à:
la source
J'ai rencontré ce même problème sur ma section locale, et j'ai essayé toutes les réponses ici, mais en vain. Seul cela a fonctionné pour moi,
php artisan config:clear
etrestart server
. Fonctionne comme un charme!la source
php artisan config:cache
,php artisan config:clear
thenphp artisan cache:clear
J'ai résolu ce problème en générant une nouvelle clé à l'aide de la commande:
php artisan key:generate
la source
si vous avez appelé config: cache pendant le développement local, vous pouvez annuler cela en supprimant le fichier bootstrap / cache / config.php. et c'est du travail pour moi.
la source
si vous avez appelé config: cache pendant le développement local, vous pouvez annuler cela en supprimant le fichier bootstrap / cache / config.php. et c'est du travail pour moi.
@ Payal Pandav a donné le commentaire ci-dessus.
Je veux dire une solution de contournement simple. Modifiez simplement le fichier config.php dans le dossier bootstrap / cache /. Et changez les informations d'identification. Cela a fonctionné pour moi. Veuillez ne pas supprimer ce fichier car il peut contenir d'autres données cruciales dans l'environnement de production.
la source
Dans mon cas, laravel 5.7
env('APP_URL')
ne fonctionne pas maisconfig('app.url')
fonctionne. Si j'ajoute une nouvelle variable àenv
et à config - cela ne fonctionne pas - mais aprèsphp artisan config:cache
le démarrage, cela fonctionne.la source
php artisan optimize:clear
php artisan config:clear
effacera votre cache de configuration et ne générera pas à nouveau et lorsque vous passerez en production, vous pouvez exécuterphp artisan config:cache
pour mettre en cache vos configurationsSi vous exécutez cette
php artisan config:cache
commande sur la console, elle stockera tout le contenu du fichier .env dans le cache, après cette commande si vous ajoutez du contenu dans le fichier .env, il ne sera pas disponible tant que vous n'exécuterez pas laphp artisan config:clear
commandela source
Je suis confronté au même problème pendant le développement larvaire. parfois, env cesse de fonctionner et ne renvoie aucune valeur. cette raison peut être différente selon votre situation. mais dans mon cas il y a quelques jours je viens de courir
soyez donc prudent avec cette commande. car il effacera toutes les données de configuration de son cache. donc après cela, il ne renverra aucune valeur. Donc, dans cette situation, vous devez d'abord l'utiliser si vous avez exécuté la commande PHP artisan config :: clear .
la source
J'ai vécu cela. La raison était qu'apache (utilisateur www-data) ne pouvait pas lire .env en raison des autorisations de fichier. J'ai donc changé les autorisations de fichier pour m'assurer que le serveur (apache) avait des autorisations de lecture sur le fichier. Juste ça et boum, tout fonctionnait maintenant!
Mise à jour:
La procédure à suivre varie en fonction du propriétaire du fichier .env, mais en supposant qu'il appartient au
www-data
groupe Apache , vous pouvez le faire:Modifiez-le en fonction de votre structure d'autorisation.
la source
So i changed the file permissions to ensure that the server (apache) had read permissions to the file.
c'est en fait une mauvaise approche. Vous devriez avoir corrigé la configuration d'apaxhe afin qu'il serve ce site particulier en tant que propriétaire de ces fichiersJ'ai fait l'erreur en faisant dd / die / dump dans le
index.php
fichier. Cela empêche le système de régénérer les configurations.Faites simplement un vidage dans les fichiers de vue. Les modifications apportées au
.env
fichier se mettent à jour instantanément.la source
J'ai eu quelques problèmes avec ça. Cela semblait être un problème d'autorisation de fichier quelque part dans l'application - pas le fichier .env.
J'ai dû - arrêter mon docker - utiliser chown pour définir les droits de propriété de mon propre utilisateur pour l'ensemble du projet - redémarrer le docker
Cette fois, cela a fonctionné.
la source
J'ai essayé presque tout ce qui précède. Fini par faire
chmod 666 .env
qui a fonctionné. Ce problème semble continuer à surgir sur l'application dont j'ai hérité, cependant, cette dernière fois était après l'ajout d'un .env.testing. Lancer Laravel 5.8
la source