Ich habe mit Composer eine neue neue Version von Laravel 5.3 installiert, erhalte jedoch folgende Fehlermeldung:
Die einzigen unterstützten Chiffren sind AES-128-CBC und AES-256-CBC mit den richtigen Schlüssellängen. Obwohl meine app.php-Datei im Konfigurationsverzeichnis
'cipher' => 'AES-128-CBC' angibt
laravel-5
configuration
installation
Emmanuel Mariki
quelle
quelle
Antworten:
Sie müssen .env in Ihrem Anwendungsordner haben und dann Folgendes ausführen:
Wenn Sie keine .env- Kopie von .env.example haben :
quelle
.env
Datei, anstatt sie zu ersetzen.Ausführen
php artisan key:generate
.Tun Sie
php artisan config:clear
,Dann
php artisan config:cache
Und die Dinge werden anfangen zu funktionieren!
quelle
Führen Sie die folgenden Befehle auf Ihrem Terminal aus:
PHP Artisan Config: Löschen Sie
dann
PHP Artisan Config: Cache
quelle
Ok, das wurde im Grunde schon beantwortet, aber ich fand ein paar Vorbehalte, die einen dieser beiden bestürzt oder verstopft hatten ...
Zunächst sollten Sie, wie bereits gesagt, sicherstellen, dass Sie über eine gültige
.env
Datei verfügen, die Sie im Terminal erstellen können, indem Sie die vorhandene.env.example
Datei als solche kopieren :$ cp .env.example .env
Generieren Sie dann Ihren Anwendungsschlüssel
$ php artisan key:generate
Sobald dies erledigt ist, stellen Sie sicher, dass Sie Ihre .env-Datei öffnen und sicherstellen, dass die Zeile APP_KEY korrekt aussieht - daher kam meine Bestürzung:
APP_KEY=base64:MsUJo+qAhIVGPx52r1mbxCYn5YbWtCx8FQ7pTaHEvRo=base64:Ign7MpdXw4FMI5ai7SXXiU2vbraqhyEK1NniKPNJKGY=
Sie werden feststellen, dass die Schlüssellänge falsch ist. Aus einem unbekannten Grund (wahrscheinlich durch Ausführen des Schlüssels: mehrfach generieren) sind zwei
base64=
Schlüssel enthalten. Das Entfernen eines ist die Lösung für die Probleme, die ich hatte, und dies scheint ein Artisan / Laravel-Fehler zu sein.Hoffe, diese Antwort hilft jedem, der mit den gleichen Problemen oder nervigen Fehlern zu kämpfen hat.
quelle
php artisan config:clear
dann tatphp artisan config:cache
, reparierte meine Installation.Wenn Sie zum ersten Mal ein Laravel-Projekt auf diesem Computer ausführen, stellen Sie sicher, dass Sie die erforderlichen Anforderungen haben . Öffnen Sie Ihr CMD / Terminal in Ihrem Projektverzeichnis oder
Geben Sie diesen Befehl erneut ein:
Ändern Sie Ihre
.env.example
in.env
und nehmen Sie die erforderlichen Änderungen in dieser Datei vor, insbesondere in den Datenbankkonfigurationen, um Datenbankfehler zu vermeiden. DannDies löst dieses Problem mit der Länge des AES-Chiffrierschlüssels jedes Mal, wenn ich ein Laravel-Projekt erstelle oder es aus git klone.
quelle
Folge diesen Schritten:
Schritt 1: Stellen Sie sicher, dass Ihre Anwendung eine ENV-Datei enthält. Wenn Sie diesen Befehl nicht ausführen
cp .env.example .env
Schritt 2: Führen Sie nun den folgenden Befehl (
php artisan key:generate
) aus, um einen Schlüssel zu generieren, der automatisch in der ENV-Datei gespeichert wird.Schritt 3: Führen
php artisan config:cache
Sie aus, wenn Sie die Konfiguration zwischenspeichern möchtenphp artisan config:clear
Hoffentlich wird es alles reparieren.
quelle
In der
.env
Datei geben Sie diesen Schlüssel und Sie sind fertigFunktioniert immer noch nicht?
Wenn Sie mit cli arbeiten, starten Sie den Server neu.
Willst du eine Erklärung?
ok, wie die Fehlermeldung sagt:
Die Schlüssellänge für
AES-128-CBC
beträgt 16 Zeichen, z. B. ABCDEF123ERD456EDie Schlüssellänge für
AES-256-CBC
beträgt 32 Zeichen, z. B. ABCDEF123ERD456EABCDEF123ERD456EAchten Sie darauf , in
config/app.php
dercipher
oben auf die entsprechende Chiffre wie die zwei gesetzt ist und der Schlüssel zum verweist.env
DateiAPP_KEY
variabel. Meine App hat denAES-256-CBC
Chiffresatz, also habe ich ihm den 32-Zeichen-Schlüssel gegebenAPP_KEY=ABCDEF123ERD456EABCDEF123ERD456E
und danach hat alles gut funktioniert.quelle
Überprüfen Sie Ihre .env-Datei, wenn APP_KEY nicht festgelegt ist. Dies ist das Problem. Jetzt ausführen und
php artisan key:generate
dann ausführenphp artisan config:cache
Es wird ein APP_KEY- Schlüssel in Ihrer .env-Datei festgelegt.
Wenn APP_KEY bereits festgelegt ist, führen Sie dieselben Befehle aus. Dieser Schlüssel wird aktualisiert.
quelle
Entfernen Sie einfach den APP_KEY-Wert aus der ENV-Datei und führen Sie die folgenden Befehle erneut aus:
Erledigt.
quelle
Ich hatte auch dieses Problem. Ich überprüfe meinen Umgebungsvariablenwert für "APP_KEY" mit
echo $APP_KEY
Für mich war es "Lumen", das für ein anderes Lumenprojekt festgelegt wurde, und deshalb funktionierte es nicht.Ich habe den Wert "APP_KEY" mithilfe des
export APP_KEY=[you app_key value from .env file]
Caches aktualisiert und gelöscht,php artisan config:cache
und es hat bei mir funktioniert.quelle
Eine andere Sache, die Sie nur überprüfen müssen, ist, dass sich Ihre .env-Datei in der www-Datengruppe befindet (oder httpd oder was auch immer Ihre Webservergruppe ist) und dass die Gruppe Leseberechtigung hat.
Unter Linux sahen meine Berechtigungen so aus, als ich diesen Fehler bekam:
-rw-rw-r-- 1 kevin kevin 618 Mar 16 09:32 .env
Ich habe dann nur die Leseberechtigung für alle und die Schreibberechtigung für die Gruppe entfernt.chmod 640 .env
Dann habe ich die Gruppe in www-data geändert.chown kevin:www-data .env
Meine Berechtigungen sehen jetzt so aus:-rw-r----- 1 kevin www-data 516 Mar 16 09:35 .env
quelle
Wenn der handwerkliche Befehl nicht funktioniert und Sie den gleichen Fehler in der Befehlszeile erhalten, bedeutet dies, dass Composer beim Abrufen aller Dateien keine gute Arbeit geleistet hat. Sie sollten den Herstellerordner löschen und
composer update
erneut ausführen .quelle
Wenn Sie ein Laravel-Projekt mit dem Befehl like neu erstellen
composer create-project --prefer-dist laravel/laravel market
und das neue Repo mit dem Befehl cp im Anwendungspfad bereitstellen, tritt möglicherweise dieses Problem auf.Ich benutze Laravel 5.4
Wenn Sie das Laravel-Projekt erstellen, sehen Sie die Protokolle, die den Schlüssel erstellen, wie folgt:
Standardmäßig lautet
AES-256-CBC
die Schlüsselkonfiguration in der.env
Datei config / app.php wie folgt: Sie wird verwendet und der beim Erstellen des Projekts generierte Schlüssel wird in der Datei gespeichert . Wenn Sie einen Befehl wie diesen verwenden, wirdcp -r ./* /var/www/market/
die.env
Datei nicht in den Anwendungspfad verschoben.Wenn ich meinen Bereitstellungsbefehl auf ändere
cp -r ./* ./.env /var/www/market/
, ist dieses Problem behoben .Sie können sich auch auf dieses Github- Problem beziehen .
quelle
Für Laravel Version 5.4 PHP 7.4
php artisan key:generate
Dadurch wird ein Wert für
APP_KEY=
in Ihrer.env
Datei festgelegtetwas wie das:
APP_KEY=base64:trp5LQ9/TW85+17o0T7F0bZ/Ca1J9cIMgvyNIYl0k/g=
php artisan config:clear
dann
php artisan config:cache
Hoffe das hilft.
quelle