Ich baue ein Projekt mit Laravel. Auf localhost hat es einwandfrei funktioniert, aber wenn ich es auf den Server hochlade (auf dem Server ist comodo ssl installiert), wird folgende Fehlermeldung angezeigt:
RuntimeException in EncryptionServiceProvider.php line 29:
No supported encrypter found. The cipher and / or key length are invalid
in EncryptionServiceProvider.php line 29
at EncryptionServiceProvider->Illuminate\Encryption\{closure}(object(Application), array()) in Container.php line 733
at Container->build(object(Closure), array()) in Container.php line 626
at Container->make('encrypter', array()) in Application.php line 674
at Application->make('Illuminate\Contracts\Encryption\Encrypter') in Container.php line 837
at Container->resolveClass(object(ReflectionParameter)) in Container.php line 800
at Container->getDependencies(array(object(ReflectionParameter)), array()) in Container.php line 771
at Container->build('SahraSalon\Http\Middleware\EncryptCookies', array()) in Container.php line 626
at Container->make('SahraSalon\Http\Middleware\EncryptCookies', array()) in Application.php line 674
at Application->make('SahraSalon\Http\Middleware\EncryptCookies') in Pipeline.php line 123
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Kernel.php line 118
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 86
at Kernel->handle(object(Request)) in index.php line 54
Kann jemand helfen, diesen Fehler zu beheben?
Antworten:
Haben Sie alle erforderlichen Erweiterungen auf dem Server installiert?
Möglicherweise fehlt Ihnen die OpenSSL-Erweiterung. Haben Sie auch den Schlüssel in der
.env
Datei festgelegt?Versuchen Sie zu laufen:
php artisan key:generate
Antwort: das
'cipher' => ''
wurde nicht eingestellt.quelle
'cipher' => 'AES-256-CBC'
inconfig/app.php
php artisan key:generate
, um einen neuen Schlüssel zu generieren.php artisan key:generate
versucht, das Problem zu beheben, aber es bleibt bestehen. Könnten meine Routen etwas damit zu tun haben: `` `Route :: group (['Middleware' => ['Web']], function () {Route :: get ('/ login', 'PublicController @ login' ); Route :: post ('/ login', 'AuthenticationController @ login'); Route :: group (['Präfix' => 'admin', 'Middleware' => 'auth'], function () {route: : get ('dashboard', function () {echo 'in dash';});});}); `` `Sie geben nur die Konsole ein:
Und wenn Ihre app.php diesen Schlüssel nicht ändert, ändern Sie ihn manuell.
Weiter, wenn Sie dann zufällig diese Fehlermeldung erhalten sollten:
Erstellen Sie dann eine Kopie der
.env.example
Datei und versuchen Sie es erneut:quelle
Ich habe das gleiche Problem zuvor und habe es folgendermaßen behoben: Gehen Sie zu config / app.php und wechseln Sie
"cipher" => "anything"
zuquelle
'cipher' => 'AES-256-CBC',
aber dies sollte ohne Anführungszeichen sein !! Seltsam.AES-256-CBC
in der Liste der unterstützten Chiffren, wie sich herausstelltephpinfo()
Ich habe es behoben, indem ich Folgendes ausgeführt habe:
quelle
Ich behebe nur den Fehler.
Shift+Click
Klicken Sie mit der rechten Maustaste auf "Empfehlungsfenster hier öffnen" aus Ihrem Root-Projekt."php artisan key:generate"
.config/app.php
mögen'key' => env('APP_KEY', 'insert get 32 char key')
, // Zeilennummer 81quelle
Wenn im Stammverzeichnis eine
.env.example
Datei vorhanden ist , ändern Sie diese in.env
und führen Sie sie ausphp artisan key:generate
. Das hat bei mir funktioniert.quelle
In meinem Fall muss ich die mcrypt-Erweiterung aktivieren.
Aber überprüfen Sie zuerst, ob Sie es bereits haben:
Überprüfen Sie, ob das mcrypt-Modul geladen ist:
wenn nichts angezeigt wird, liegt das daran, dass es nicht geladen ist, aber Sie bereits oben richtig installiert haben? Also mach das:
Überprüfen Sie erneut, und Sie sollten mcrypt anstelle von nichts sehen. Das ist ein gutes Zeichen, lade deine App neu und behebe deinen nächsten Fehler;)
quelle
Schreiben Sie in die Konsole
php artisan key:generate
Sie erhalten eine Nachricht wie:
Application key [get 32 char key] set successfully.
App-Schlüssel in
config/app.php
like ersetzen'key' => env('APP_KEY', 'insert get 32 char key'),//line number 81
quelle
config/app.php
Datei befindet. Könnten Sie es mich wissen lassen?project folder
inwamp server
und Sie dann findenconfig
Ordner dann werden Sie erhaltenapp.php
. Vielen Dankgelöst mit:
PHP Artisan Key: generieren
quelle
Wenn Sie die Konfigurationsdatei app.php verwenden, anstatt den Schlüssel aus der ENV-Datei zu lesen, können Sie die Funktion env () für die Schlüsselvariable entfernen, z.
zu
quelle
Ich habe es geschafft, die Bereitstellung auf einem Live-Ubuntu-Server zu lösen. Hier sind alle Schritte
Stellen Sie sicher, dass PHP> = 5.5.9
Stellen Sie sicher, dass OpenSSL, Mbstring, Tokenizer und mcrypt installiert sind.
So installieren Sie mcrypt in PHP (Ubuntu):
Speicherordner beschreibbar machen:
Lassen Sie Apache den Ordner Lavarel / public als Startseite verwenden:
Das Wichtigste für mich ist, dass FTP möglicherweise nicht standardmäßig versteckte Dateien kopiert:
.env
und/public/.htaccess
dort sein muss!Nach Abschluss der oben genannten Aufgaben funktionierte es auf dem Ubuntu-Server
quelle
Ich hatte einige zu viele Stunden mit diesem Problem zu kämpfen, bevor ich feststellte, dass der Schlüssel in der Datei bootstrap \ cache \ config.php zwischengespeichert wurde. Löschte die Datei und meine Website wurde einwandfrei geladen (dh es gab sonst keine Problem mit meiner Konfiguration).
Ich entdeckte dies, indem ich eine Boost-Ausgabe zu boostrap \ cache \ compiled.php hinzufügte, damit es die Chiffre und den Schlüssel ausspuckte (irgendwo in Zeile 7010). Dann haben Sie sich umgesehen, um zu sehen, wie die Konfiguration aufgenommen wurde, und festgestellt, dass eine Cache-Konfigurationsdatei verwendet wird.
quelle
Bitte stellen Sie sicher, dass Sie diese Anforderungen in Ihrem Gerät haben.
Dann nach der Installation oder Aktualisierung Ihres Projekts durch
Danach haben Sie ...
Machen Sie ein Duplikat und benennen Sie es um in ...
und nehmen Sie Änderungen entsprechend Ihrer Datenbankkonfiguration oder anderen erforderlichen Änderungen vor.
Generieren Sie schließlich Ihren Anwendungsschlüssel, indem Sie
Für jemanden ist vielleicht nur der letzte Schritt genug. Aber ich habe dieses Problem jedes Mal, wenn ich ein Laravel-Projekt klone. Dieser ganze Schritt macht dies mit jeder Gefahr.
quelle
Hinzufügen,
"illuminate/html": "~5.0"
um einen Abschnitt Ihrercomposer.json
Datei zu benötigen . Genau wie dieser:Führen Sie dann den
composer install
Befehl aus. Wanncomposer install
wird fertig. laufenphp artisan key:generate
. Sie erhalten eine Nachricht wie folgt:quelle