wake-up-neo.com

laravel Kein unterstützter Verschlüsseler gefunden. Die Ziffer und/oder die Schlüssellänge sind ungültig

Ich baue ein Projekt mit Laravel. Auf localhost funktionierte es einwandfrei, aber wenn ich es auf den Server hochlade (der Server hat comodo ssl installiert), erhalte ich die folgende Fehlermeldung:

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?

69
Rahman za

Haben Sie alle erforderlichen Erweiterungen auf dem Server installiert?

  • PHP> = 5.5.9 
  • OpenSSL PHP Erweiterung 
  • PDO PHP Erweiterung 
  • Mbstring PHP Erweiterung 
  • Tokenizer PHP Erweiterung

Möglicherweise fehlt Ihnen die OpenSSL-Erweiterung. Haben Sie auch den Schlüssel in .env Datei gesetzt?


Laufen Sie mal: 

php artisan key:generate


Antwort: Der 'cipher' => '' wurde nicht gesetzt.

58
Salkz

Sie geben nur die Konsole ein:

php artisan key:generate

Und wenn Ihre app.php diesen Schlüssel nicht ändert, ändern Sie sie manuell.


Nächste, wenn Sie dann diese Fehlermeldung erhalten sollten:

[ErrorException]
file_get_contents (/path/to/my/project/.env): Stream konnte nicht geöffnet werden: Keine solche Datei oder Verzeichnis

Erstellen Sie dann eine Kopie der .env.example-Datei und versuchen Sie es erneut:

cp .env.example .env
php artisan key:generate
93
onavascuez

Ich habe das gleiche Problem schon einmal und es wurde behoben, dass es folgendermaßen funktioniert: Gehen Sie zu config/app.php, "cipher" => "anything" ändern in 

'cipher' => MCRYPT_RIJNDAEL_128,
9
Vuong Tran

Ich korrigiere nur den Fehler. 

  1. Shift+Click rechte Maustaste zum "Öffnen des Kommendenfensters hier" aus Ihrem Stammprojekt. 
  2. In der Konsole schreiben Sie: "php artisan key:generate"
  3. Holen Sie sich 32-stellige 'Mark' zu config/app.php wie 'key' => env('APP_KEY', 'insert get 32 char key'), // Zeilennummer 81
7
dkbn90

Ich habe es behoben, indem ich Folgendes ausgeführt habe: 

php artisan config:cache
6
Rowayda Khayri

Wenn sich im Stammverzeichnis eine .env.example-Datei befindet, ändern Sie sie in .env und führen Sie dann php artisan key:generate aus. Das hat bei mir funktioniert.

5
Tirth Patel

In meinem Fall muss ich die mcrypt-Erweiterung aktivieren.

Aber überprüfe zuerst, ob du es schon hast:

$ Sudo apt-get install -y mcrypt php5-mcrypt

Prüfen Sie, ob das mcrypt-Modul geladen ist:

$ php -m | grep mcrypt

wenn nichts angezeigt wird, ist denn nicht geladen, aber hast du oben schon richtig installiert? Also mach das:

$ php5enmod mcrypt
$ Sudo service Apache2 restart

Überprüfen Sie noch einmal und Sie sollten mcrypt statt nichts sehen. Das ist ein gutes Zeichen, laden Sie Ihre App neu und beheben Sie Ihren nächsten Fehler;)

$ php -m | grep mcrypt
mcrypt
4
Lucas Serafim

schreibe in die Konsole php artisan key:generate

sie erhalten eine Nachricht wie: Application key [get 32 char key] set successfully.

ersetzen Sie den App-Schlüssel in config/app.php wie 'key' => env('APP_KEY', 'insert get 32 char key'),//line number 81

4

gelöst mit:

pHP Handwerker Schlüssel: generieren

4
Plugue

wenn Sie die Konfigurationsdatei app.php verwenden, anstatt den Schlüssel aus der .env-Datei zu lesen, können Sie die env () - Funktion für die Schlüsselvariable entfernen, z.

'key' = env('someRandom36CharsString'),

zu 

'key' = 'someRandom36CharsString',
3
rüff0

Ich habe es geschafft, die Bereitstellung für 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):

Sudo apt-get install php5-mcrypt,
Sudo php5enmod mcrypt

Speicherordner beschreibbar machen:

chmod -R 0777 storage

Lass Apache den Ordner Lavarel/public als Startseite verwenden:

DocumentRoot /home/code2/public_html/Laravel-Project/public
    <Directory "/home/code2/public_html/Laravel-Project/public”> 
         AllowOverride all 
    </Directory>

Eine wichtige Angelegenheit für mich ist, dass FTP versteckte Dateien standardmäßig nicht kopiert: .env und /public/.htaccess müssen dabei sein!

Nach Abschluss der oben genannten Aufgaben funktionierte es auf dem Ubuntu-Server

2
John Wylie

Ich hatte einige Stunden mit diesem Problem zu kämpfen, bevor ich entdeckte, dass der Schlüssel in der Bootstrap\cache\config.php zwischengespeichert wurde. Die Datei wurde gelöscht und meine Seite wurde gut geladen (d. H. Sonst gab es keine Probleme mit meiner Konfiguration).

Ich entdeckte dies, indem ich einige debug-Ausgaben zu boostrap\cache\compiled.php hinzufügte, um die Chiffre und den Schlüssel ausspucken zu lassen (irgendwo in der Zeile 7010). Dann suchte er herum, um zu sehen, wie er die config aufnahm und fand, dass er eine Cache-Konfigurationsdatei verwendet.

1
Ciaran

Stellen Sie sicher, dass Sie diese Anforderungen in Ihrer Maschine haben.

  1. PHP> = 5.6.4 
  2. OpenSSL PHP Erweiterung 
  3. PDO PHP Erweiterung
  4. Mbstring PHP Erweiterung 
  5. Tokenizer PHP Erweiterung 
  6. XML PHP Erweiterung

Dann nach der Installation oder Aktualisierung Ihres Projekts durch

komponist Update

Danach haben Sie--

Beispiel

Machen Sie ein Duplikat und benennen Sie es in-- um 

.env

und nehmen Sie Änderungen entsprechend Ihrer Datenbankkonfiguration oder anderen erforderlichen Änderungen vor.

DB_CONNECTION=mysql
DB_Host=127.0.0.1
DB_PORT=3306
DB_DATABASE=your db name
DB_USERNAME=username if any otherwise root
DB_PASSWORD= your password if not set leave blank

Schließlich generieren Sie Ihren Anwendungsschlüssel durch--

pHP Handwerker Schlüssel: generieren

Für Jemand mag nur der letzte Schritt ausreichen. Aber ich habe dieses Problem jedes Mal, wenn ich ein Laravel-Projekt klone. Dieser ganze Schritt macht dies mit jeder Gefahr. 

0

Fügen Sie "illuminate/html": "~5.0" hinzu, um einen Abschnitt Ihrer composer.json-Datei anzufordern. Genau wie dieser:

...
"require": {
    ...
    "illuminate/html": "~5.0"
    ...
},
...

Führen Sie dann den Befehl composer install aus. Wenn composer install abgeschlossen ist. php artisan key:generate ausführen. Sie erhalten eine Nachricht wie diese:

Application key [get 32 char key] set successfully.
0
Ilyas karim