Es wurde kein Anwendungsverschlüsselungsschlüssel angegeben

255

Ich bin neu in Laravel und versuche, den Artisan-Befehl zu verwenden ...

php artisan serve

Es zeigt an...

Der Laravel-Entwicklungsserver wurde gestartet: http://127.0.0.1:8000

Es wird jedoch nicht automatisch gestartet und wenn ich http://127.0.0.1:8000 manuell eingebe , wird der folgende Fehler angezeigt :

RuntimeException Es wurde kein Anwendungsverschlüsselungsschlüssel angegeben.

Irgendwelche Ideen? Ich verwende Laravel Framework 5.5-dev.

Carlos F.
quelle
oder wenn Ihre .env-Datei geändert werden muss ref: stackoverflow.com/questions/36276767/…
Nameishi
2
Die folgenden Antworten sind korrekt: Wenn Sie jedoch zum ersten Mal "php artisan serve" ausführen und eine aktive Webserversitzung haben, müssen Sie den Server neu starten (Control-C im Terminal zum Stoppen), damit die Änderung nach Ihnen wirksam wird Fügen Sie den Schlüssel zu Ihrer .env-Datei hinzu.
Chris Adams

Antworten:

437

Von der Verschlüsselung - Laravel - Das PHP-Framework für Web-Handwerker :

"Bevor Sie Laravels Verschlüsselung verwenden können, müssen Sie eine Schlüsseloption in Ihrer Konfigurationsdatei config / app.php festlegen. Sie sollten den php artisan key:generateBefehl verwenden, um diesen Schlüssel zu generieren."

Ich habe festgestellt, dass diese komplexe Internetabfrage in google.com verwendet wird:

"laravel add encrption key" (Ja, es hat sogar mit dem Tippfehler funktioniert!)

Amarnasan
quelle
22
Ich habe den ganzen Fehler gegoogelt und nichts ist aufgetaucht, habe nur den gesetzten Encriptyon-Schlüssel gegoogelt und es herausgefunden. Fühle dich wie ein Idiot. Vielen Dank. Für alle, die hier ankommen, laufen Sie einfach:php artisan key:generate
Carlos F
Es tut mir leid, also setzen Sie PHP Artisan Key: Generieren im Terminal? weil ich eine ErrorException bekomme
Nameishi
1
Für alle anderen, die auf mein Problem gestoßen sind, geben Sie dies in das Terminal ein. Cp .env.example .env php artisan key: generate
Nameishi
5
php artisan key:generatefunktioniert nicht mal bei mir. Gibt mir den gleichen Fehler Es wurde kein Anwendungsverschlüsselungsschlüssel angegeben , bitte eine Lösung?
Oniya Daniel
7
Dies funktionierte für mich, aber ich musste zuerst die Datei .env.example in .env umbenennen, damit dies funktioniert. Andernfalls wurde der Fehler ".env: keine solche Datei" angezeigt.
Webomatik
129

In meinem Fall musste ich auch die zwischengespeicherten Konfigurationsdateien zurücksetzen:

php artisan key:generate
php artisan config:cache
Leonid Dashko
quelle
5
Ich komme immer, um diese Antwort zu sehen, nachdem ich vergessen habe, den Cache zu
leeren
3
Dies fehlte in allen Antworten. Vielen Dank! :)
Aman Alam
1
Wofür ist php artisan config:cache? Warum ist es nützlich?
Pathros
2
@ Pathros zum Erstellen / Regenerieren der zwischengespeicherten Konfigurationsdateien
Leonid Dashko
1
Stellen Sie außerdem zunächst sicher, dass Ihre " .env" Datei mindestens die leere Schlüsseloption enthält, wie z. APP_KEY=
Top-Master
54

Öffnen Sie die Eingabeaufforderung im Stammordner Ihres Projekts und führen Sie den folgenden Befehl aus:

php artisan key:generate

Es wird ein Anwendungsschlüssel für Ihre Anwendung generiert.

Sie finden den generierten Anwendungsschlüssel (APP_KEY) in der .envDatei.

skm
quelle
23

Führen Sie einfach diesen Befehl aus:

php artisan key:generate
DJ
quelle
1
Ja, aber viele Hosting-Server haben keinen Befehlszeilenzugriff. Wie geht das?
Dhiraj
2
eine Mehrheit unterstützt SSH-Verbindung. Führen Sie von Ihrem Terminal aus ssh yourusername @ server_ip
DJ
21
  1. Kopieren .env.examplenach .env:

    cp -a .env.example .env

  2. Generieren Sie einen Schlüssel:

    php artisan key:generate

  3. Erst dann laufen:

    php artisan serve

Adam Pery
quelle
Hoppla. Dies war der entscheidende Schritt! Ein neues Laravel-Projekt benötigt eine .env-Datei, sonst funktioniert nichts. Danke, Adam.
Eric L.
16

cp .env.example .envwenn keine .env-Datei vorhanden ist. php artisan key:generateBefehl funktioniert für mich. Es generiert den Verschlüsselungsschlüssel

Sabyasachi Ghosh
quelle
4
Leeren Sie den Cache mit dem php artisan config:cacheBefehl nach den obigen Schritten.
Sabyasachi Ghosh
Das Löschen des Cache wäre meistens für die Produktion / Bereitstellung erforderlich, jedoch nicht während der Entwicklung. (Es sei denn, Sie möchten Ihre Ansichten während der Entwicklung zwischenspeichern).
Killstreet
14

Ich musste meinem Projekt tatsächlich eine .env- Datei hinzufügen und dann den Inhalt von .env.example kopieren, damit das key:generatefunktioniert. Ich bin mir nicht sicher, warum beim Starten des Projekts keine ENV- Datei erstellt wurde.

Craig Kollross
quelle
1
Dies.env.example.env hängt möglicherweise davon ab, wie Sie Laravel installiert haben ... " In einer neuen Laravel-Installation enthält das Stammverzeichnis Ihrer Anwendung eine Datei. Wenn Sie Laravel über Composer installieren, wird diese Datei automatisch in umbenannt . Andernfalls sollten Sie die Datei umbenennen Datei manuell. "- #Umweltkonfiguration
Sᴀᴍ Amᴇᴌᴀ
Wenn Sie das Projekt von einem Repo geklont haben, in dem sich die .env-Datei wahrscheinlich in .gitignore befindet, müssen Sie es ebenfalls erstellen. Aus den Laravel-Dokumenten: "Ihre .env-Datei sollte nicht für die Quellcodeverwaltung Ihrer Anwendung festgeschrieben werden, da für jeden Entwickler / Server, der Ihre Anwendung verwendet,
möglicherweise
Ich habe auch festgestellt, dass, wenn Sie es aus der Cloud herunterladen (ich verwende Windows), dh Google-Laufwerk, Sky-Laufwerk usw., die .env-, .env.example-Dateien _env, _env.example usw. heißen. In diesem Fall habe ich benannte die Dateien entsprechend um und führte dann einfach 'php artisan key: generate' aus.
Timothy Kruger
11
php artisan key:generate
php artisan config:cache

funktionierte für mich, aber es musste in einer Eingabeaufforderung unter Windows durchgeführt werden.

Es hat im Terminal in PHPStorm nicht funktioniert.

José Maria
quelle
11

Ein häufiges Problem bei der Arbeit an einer Laravel-Anwendung ist die Ausnahme:

RuntimeException Es wurde kein Anwendungsverschlüsselungsschlüssel angegeben.

Dies tritt häufig auf, wenn Sie eine vorhandene Laravel-Anwendung aufrufen, in die Sie die .env.exampleDatei kopieren , .envaber keinen Wert für die APP_KEYVariable festlegen .

Geben Sie in der Befehlszeile den folgenden Artisan-Befehl ein, um einen Schlüssel zu generieren:

php artisan key:generate

Dies generiert einen zufälligen Schlüssel für APP_KEY: Nach Abschluss der .envBearbeitung geben Sie diesen Befehl in Ihr Terminal ein, um den Cache zu löschen:php artisan config:cache

Wenn Sie den Standard-Webserver von PHP verwenden (z. B. php artisan serve), müssen Sie den Server neu starten und Ihre Datewerte ändern .env. Jetzt wird diese Fehlermeldung nicht mehr angezeigt.

Udhav Sarvaiya
quelle
9

Öffnen Sie die Eingabeaufforderung im Stammordner Ihres Projekts und führen Sie sie aus

php artisan key:generate

Dann

php artisan config:cache

und dann

Wenn Sie nach dem Schlüsselwert den gleichen Fehler erhalten, kopieren Sie einfach den APP_KEY-Wert aus der ENV-Datei und fügen Sie ihn mit 'key' => 'YOUR KEY' in config / app.php ein.

und dann wieder laufen

php artisan config:cache
kaushik
quelle
7

Befolgen Sie diese Schritte:

  1. php artisan key:generate
  2. php artisan config:cache
  3. php artisan serve
Skandarajah Shyamalan
quelle
Selbst nach dem Generieren des Schlüssels in der ENV-Datei wurde ein Fehler angezeigt. Als ich "php artisaan config: cache" ausführte, löschte es den Cache und dann wurde nur mein Problem gelöst. Vielen Dank.
Pankaj
6

Okay, ich werde eine weitere Anweisung schreiben, weil ich hier keine klare Antwort gefunden habe. Wenn Sie also mit solchen Problemen konfrontiert sind, gehen Sie wie folgt vor:

  1. Benennen Sie die .env.example- Datei im Stammverzeichnis Ihres Projekts in .env um oder kopieren / benennen Sie sie um .

Sie sollten nicht nur eine leere .env- Datei erstellen , sondern diese mit dem Inhalt von .env.example füllen .

  1. Gehen Sie im Terminal zum Projektstammverzeichnis (nicht zum öffentlichen Ordner) und führen Sie es aus

PHP Artisan Key: generieren

  1. Wenn alles in Ordnung ist, sollte die Antwort im Terminal so aussehen

Anwendungsschlüssel [base64: wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA =] erfolgreich gesetzt.

  1. Kopieren Sie nun einfach den Schlüssel selbst und fügen Sie ihn als Wert in APP_KEY in Ihre .env- Datei ein. Die Ergebniszeile sollte folgendermaßen aussehen:

APP_KEY = base64: wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA =

  1. Im Terminallauf

PHP Artisan Config: Cache

Das ist es.

Dmitry Gordienko
quelle
Also php artisan key:generatenicht automatisch den Schlüssel zu Ihrer .env Datei hinzufügen?
Rwd
Nein, in meinem Fall.
Dmitry Gordienko
4

Mit diesem Befehl können Sie einen Anwendungsverschlüsselungsschlüssel generieren:

php artisan key:generate

Erstellen Sie dann mit diesem Befehl eine Cache-Datei zum schnelleren Laden der Konfiguration:

php artisan config:cache

Oder stellen Sie die Anwendung mit diesem Befehl auf dem PHP-Entwicklungsserver bereit:

php artisan serve

Das ist es!

Prakash Pazhanisamy
quelle
3

Wenn Sie ein Projekt klonen, kann diese Art von Problem normalerweise auftreten.

  1. Stellen Sie sicher, dass eine .envDatei vorhanden ist
  2. ausführen php artisan key:generateund dann sollte es APP_KEY in .env generieren
  3. endlich laufen php artisan serveund es sollte funktionieren.
Jasbin Karki
quelle
1

Dieses Problem trat auf, als ich den Inhalt meines Laravel-Projekts (z. B. sites / oldname) manuell in ein neues Verzeichnis auf meinem Mac (z. B. sites / newname) kopierte. Da ich manuell gezogen und fallen gelassen habe, wurden die versteckten Dateien, nämlich '.env', nicht erfasst. Bei genauerer Betrachtung von sites / oldname sah ich .editorconfig, .env, .env.example, .gitatrributes, .styleci.yml usw.

Der Fehler verschwand, als ich die versteckten Dateien in das neue Verzeichnis kopierte.

"Es wurde kein Anwendungsverschlüsselungsschlüssel angegeben". Laravel spricht für "Ihre .env-Datei fehlt".

JJ Rohrer
quelle
0

Ich musste meinen Warteschlangenarbeiter php artisan queue:restartnach dem Ausführen neu starten php artisan key:generate, damit Jobs funktionieren.

Nenotlep
quelle
0

einfach laufen

php artisan key:generate

Es hat bei mir funktioniert

Dimuthu Maduranga
quelle
0

In meinem Fall gab es beim Klonen des Projekts von git keine .env

Datei. Also kopiere ich die .envDatei aus dem Quellprojekt und füge sie in mein aktuelles Projekt ein, ändere die Konfiguration der Datenbank und sie wird erfolgreich ausgeführt.

Pawan Verma
quelle