Nach dem Upgrade auf Laravel 5.2 wird keiner meiner .env
Datewerte gelesen. Ich habe die Upgrade-Anweisungen befolgt . Keine meiner Konfigurationsdateien außer auth.php wurde geändert. Sie funktionierten alle gut in der vorherigen Version 5.1.19
.env
enthält Werte wie
DB_DATABASE=mydb
DB_USERNAME=myuser
config/database.php
enthält
'mysql' => [
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
]
Ich erhalte diesen Fehler:
PDOException: SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: NO)
Offensichtlich nicht in meiner env Konfiguration ziehen. Dies betrifft jede einzelne meiner Konfigurationsdateien, einschließlich von Drittanbietern wie bugsnag.
Ich habe es auch versucht
php artisan config:clear
php artisan cache:clear
Aktualisieren
Ich versuche es php artisan tinker
>>> env('DB_DATABASE')
=> null
>>> getenv('DB_DATABASE')
=> false
>>> config('database.connections.mysql.database')
=> "forge"
>>> dd($_ENV)
[]
Ich habe versucht, eine neue Kopie von Laravel 5.2 zu installieren. Ich habe im Grunde nur in meinen app
Ordner kopiert ; Es sind keine zusätzlichen Komponistenpakete enthalten. Immer noch das gleiche Problem. Ich habe andere Laravel 5.2-Projekte auf demselben Server, die einwandfrei funktionieren.
quelle
.env
Antworten:
Aus den offiziellen Laravel 5.2 Upgrade Notes:
Referenz: https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0
quelle
php artisan config:cache
löste es für mich - nichts anderes hatte geholfen. Nicht einmalphp artisan config:clear
- danke!php artisan config:clear
ist das einzige, was für mich funktioniert hatphp artisan config:clear
hat für mich funktioniert. Ich habe vorher keinen config: cache gemacht, daher schien es etwas seltsam, dass ich den Cache leeren musste..env
anstelle der.env.example
Datei bearbeitenWenn eine Ihrer
.env
Variablen Leerzeichen enthält, stellen Sie sicher, dass Sie sie in doppelte Anführungszeichen setzen. Beispielsweise:SITE_NAME="My website"
Vergessen Sie nicht, Ihren Cache vor dem Testen zu leeren:
quelle
.env
Datei geändert haben, führen Sie denphp artisan config:cache & php artisan config:clear
Befehl aus. Es wird klappen.Beeindruckend. Guter Kummer. Das liegt daran, dass ich einen env-Wert mit einem Leerzeichen hatte, das nicht von Anführungszeichen umgeben ist
Dies
Daran geändert
Behoben. Ich denke, das hatte damit zu tun, dass Laravel 5.2 jetzt vlucas / phpdotenv von 1.1.1 auf 2.1.0 aktualisiert
quelle
.env
unter 5.2 verursachen, während dies in 5.1 nicht der Fall war.phpdotenv
, aber Laravel weiß immer noch, dass eine.env
Datei enthalten sein muss und dass sie nicht erfolgreich war, sich aber nicht die Mühe macht, es jemandem zu erzählen.Für mich hat es in dieser Reihenfolge geklappt:
Und ich habe alle Pausen ohne Glück versucht.
quelle
Ich hatte ein ähnliches Problem in meinem
config/services.php
und löste es mitconfig clear
undoptimize
Befehlen:quelle
Für mich hat folgendes funktioniert
quelle
Führen Sie Folgendes aus:
dann
php artisan config:cache
quelle
Ich hatte das gleiche Problem in der lokalen Umgebung, das ich von gelöst habe
quelle
Ich habe dies in der Upgrade-Anleitung verpasst:
Durch Hinzufügen dieser Zeile wurde die lokale
.env
Datei korrekt eingelesen.quelle
Wenn Sie den Befehl ausgelöst haben,
php artisan config:cache
werden alleenv
Variablenenv()
gelöscht und es werden Nullwerte ausgegeben. Versuchen Sie, den folgenden Befehl auszuführen, und boomen Sie dortenv()
erneut, um alleenv
Variablen abzufangenquelle
Sie können das Problem durch die folgende Empfehlung lösen
Empfehlung 1:
Sie müssen die .env-Datei über Konfigurationsdateien verwenden. Das bedeutet, dass Sie aufgefordert werden, die .env-Datei aus Konfigurationsdateien (z. B. /config/app.php oder /config/database.php) zu lesen. Anschließend können Sie die Konfiguration verwenden Dateien von jedem Ort Ihres Projekts.
Empfehlung 2: Stellen Sie Ihren env-Wert in doppelten Anführungszeichen ein
Empfehlung 3: Behalten Sie die folgende Befehlssequenz bei, nachdem Sie eine Konfiguration oder einen Umgebungswert geändert haben.
Empfehlung 4: Wenn die Syntax1 nicht funktioniert, können Sie eine andere Syntax2 ausprobieren
Empfehlung 5: Wenn Ihre Benutzeranzahl hoch / höher ist, müssen Sie die zugehörige Speichergröße in der Serverkonfiguration erhöhen .
Empfehlung 6: Legen Sie einen wahrscheinlichen Standardwert fest, wenn Sie die Variable .env lesen.
quelle
Die Einfachheit ist die Kraft:
Du wirst erhalten:
Konfigurationscache geleert!
Konfiguration erfolgreich zwischengespeichert!
quelle
Cache löschen mit:
quelle
Das Gleiche passiert, wenn sich der Port in Ihrer lokalen .env befindet
wieder machen die doppelten Anführungszeichen den Trick
und dann
quelle
Stellen Sie zusätzlich zu dem, was @andrewtweber vorgeschlagen hat, sicher, dass zwischen KEY = und dem Wert keine Leerzeichen stehen, es sei denn, es steht zwischen Anführungszeichen
.env Datei zB:
zu:
quelle
Ich bin auf meinem Lokal auf dasselbe Problem gestoßen, und ich habe alle Antworten hier ausprobiert, aber ohne Erfolg. Nur das hat bei mir funktioniert
php artisan config:clear
undrestart server
. Klappt wunderbar!quelle
php artisan config:cache
,php artisan config:clear
dannphp artisan cache:clear
Ich habe dieses Problem beim Generieren eines neuen Schlüssels mit dem folgenden Befehl gelöst:
php artisan key:generate
quelle
Wenn Sie während der lokalen Entwicklung config: cache aufgerufen haben, können Sie dies rückgängig machen, indem Sie die Datei bootstrap / cache / config.php löschen. und das ist Arbeit für mich.
quelle
Wenn Sie während der lokalen Entwicklung config: cache aufgerufen haben, können Sie dies rückgängig machen, indem Sie die Datei bootstrap / cache / config.php löschen. und das ist Arbeit für mich.
@ Payal Pandav hat den obigen Kommentar abgegeben.
Ich möchte eine einfache Problemumgehung erläutern. Bearbeiten Sie einfach die Datei config.php im Ordner bootstrap / cache /. Und ändern Sie die Anmeldeinformationen. Das hat bei mir funktioniert. Bitte löschen Sie diese Datei nicht, da diese möglicherweise andere wichtige Daten in der Produktionsumgebung enthält.
quelle
In meinem Fall funktioniert Laravel 5.7
env('APP_URL')
nicht, aber esconfig('app.url')
funktioniert. Wenn ich derenv
und der Konfiguration eine neue Variable hinzufüge, funktioniert dies nicht, aber nach demphp artisan config:cache
Start funktioniert es.quelle
php artisan optimize:clear
php artisan config:clear
, wirdphp artisan config:cache
Ihr KonfigurationscacheWenn Sie diesen
php artisan config:cache
Befehl auf der Konsole ausführen, werden alle Inhalte der .env-Datei im Cache gespeichert. Wenn Sie nach diesem Befehl Inhalte an die .env-Datei anhängen, ist sie erst verfügbar, wenn Sie denphp artisan config:clear
Befehl ausführenquelle
Ich habe das gleiche Problem viel Zeit während der Larvenentwicklung. Manchmal funktioniert env nicht mehr und gibt keinen Wert zurück. Dieser Grund kann unterschiedlich sein und hängt von Ihrer Situation ab. aber in meinem Fall vor ein paar Tagen renne ich einfach
Verwenden Sie diesen Befehl daher vorsichtig. weil es alle Konfigurationsdaten aus seinem Cache löscht. Danach wird kein Wert mehr zurückgegeben. In dieser Situation müssen Sie dies zuerst verwenden, wenn Sie den Befehl PHP artisan config :: clear ausgeführt haben.
quelle
Ich habe das erlebt. Grund war, dass Apache (Benutzer www-data) aufgrund von Dateiberechtigungen .env nicht lesen konnte. Also habe ich die Dateiberechtigungen geändert, um sicherzustellen, dass der Server (Apache) Leseberechtigungen für die Datei hat. Genau das und Boom, jetzt hat alles funktioniert!
Update:
Die Vorgehensweise hängt davon ab, wem die .env-Datei gehört. Vorausgesetzt, sie gehört zur Apache-
www-data
Gruppe, können Sie Folgendes tun:Ändern Sie es abhängig von Ihrer Berechtigungsstruktur.
quelle
So i changed the file permissions to ensure that the server (apache) had read permissions to the file.
Das ist eigentlich ein falscher Ansatz. Sie sollten die apaxhe-Konfiguration repariert haben, damit diese bestimmte Site als Eigentümer dieser Dateien dientIch habe den Fehler gemacht, indem ich dd / die / dump in der
index.php
Datei gemacht habe. Dies führt dazu, dass das System die Konfigurationen nicht neu generiert.Einfach Dump in View-Dateien reichen aus. Die Änderungen an der
.env
Datei werden sofort aktualisiert.quelle
Ich hatte einige Probleme damit. Irgendwo in der App schien es sich um ein Dateiberechtigungsproblem zu handeln - nicht um die .env-Datei.
Ich musste - mein Docker stoppen - chown verwenden, um meinem eigenen Benutzer für das gesamte Projekt Eigentumsrechte festzulegen - Docker erneut starten
Diesmal hat es funktioniert.
quelle
Versuchte fast alle der oben genannten. Am Ende zu tun
chmod 666 .env
was funktioniert hat. Dieses Problem tritt anscheinend immer wieder in der App auf, die ich geerbt habe. Das letzte Mal war dies nach dem Hinzufügen eines .env.testing. Laravel ausführen 5.8
quelle