Nessuna chiave di crittografia dell'applicazione è stata specificata


255

Sono nuovo di Laravel e sto cercando di usare il comando Artisan ...

php artisan serve

Visualizza ...

Server di sviluppo Laravel avviato: http://127.0.0.1:8000

Tuttavia, non si avvierà automaticamente e quando inserisco manualmente http://127.0.0.1:8000 mostra questo errore:

RuntimeException Non è stata specificata alcuna chiave di crittografia dell'applicazione.

Qualche idea? Sto usando Laravel Framework 5.5-dev.


o se le vostre esigenze di file .env essere cambiato ref: stackoverflow.com/questions/36276767/...
Nameishi

2
Le risposte di seguito sono corrette: tuttavia, se si esegue per la prima volta "php artisan serve" e si dispone di una sessione del server Web attiva, sarà necessario riavviare il server (control-c nel terminale per arrestarsi) per rendere effettive le modifiche dopo aggiungi la chiave al tuo file .env.
Chris Adams,

Risposte:


437

Da Encryption - Laravel - The PHP Framework For Web Artisans :

"Prima di usare il criptatore di Laravel, devi impostare un'opzione chiave nel tuo file di configurazione config / app.php. Dovresti usare il php artisan key:generatecomando per generare questa chiave"

Ho scoperto che utilizzando questa complessa query Internet su google.com:

"laravel aggiungi encrption key" (Sì, ha funzionato anche con l'errore di battitura!)


22
Ho cercato su Google l'intero errore e non è apparso nulla, ho semplicemente cercato su google set encriptyon key e l'ho scoperto. Sento come un pazzo. Grazie. Per chiunque arrivi qui corri:php artisan key:generate
Carlos F

Mi dispiace, quindi stai mettendo php artisan key: generare nel terminale? perché ricevo ErrorException
Nameishi il

1
Per chiunque abbia riscontrato il mio problema, inseriscilo nel terminale cp .env.example .env php artisan key: generate
Nameishi

5
php artisan key:generatenon funziona nemmeno per me. Mi dà lo stesso errore Nessuna chiave di crittografia dell'applicazione è stata specificata , per favore qualche soluzione?
Oniya Daniel,

7
Questo ha funzionato per me, ma prima ho dovuto rinominare il file .env.example in .env perché funzionasse, altrimenti ho ricevuto l'errore ".env: no such file".
Webomatik,

129

Nel mio caso, avevo anche bisogno di ripristinare i file di configurazione memorizzati nella cache:

php artisan key:generate
php artisan config:cache

5
Vengo sempre a vedere questa risposta dopo aver dimenticato di cancellare la cache
vijayrana,

3
Questo mancava da tutte le risposte. Mille Grazie! :)
Aman Alam,

1
A cosa serve php artisan config:cache? Perché è utile
Pathros,

2
@Pathros per creare / rigenerare i file di configurazione memorizzati nella cache
Leonid Dashko il

1
Inoltre, assicurati innanzitutto che il tuo .envfile " " contenga almeno l'opzione chiave vuota, come:APP_KEY=
Top-Master

54

Aprire il prompt dei comandi nella cartella principale del progetto ed eseguire il comando seguente:

php artisan key:generate

Genererà la chiave dell'applicazione per la tua applicazione.

È possibile trovare la chiave dell'applicazione generata (APP_KEY) nel .envfile.


23

Esegui semplicemente questo comando:

php artisan key:generate

1
Sì, ma molti server di hosting non hanno accesso alla riga di comando, quindi come fare?
Dhiraj,

2
una maggioranza supporta la connessione ssh. dal tuo terminale esegui ssh nomeutente @ server_ip
DJ

21
  1. Copia .env.examplein .env:

    cp -a .env.example .env

  2. Genera una chiave:

    php artisan key:generate

  3. Solo allora esegui:

    php artisan serve


Ops. Questo è stato il passo fondamentale! Un nuovo progetto Laravel ha bisogno di un file .env o nulla funzionerà. Grazie Adam.
Eric L.

16

cp .env.example .envse non è presente alcun file .env. php artisan key:generateil comando funziona per me. Genera la chiave di crittografia


4
svuotare la cache usando il php artisan config:cachecomando dopo i passaggi precedenti.
Sabyasachi Ghosh

La pulizia della cache sarebbe richiesta principalmente per la produzione / stadiazione, ma non durante lo sviluppo. (A meno che non ti piace memorizzare nella cache le tue visualizzazioni durante lo sviluppo).
killstreet,

14

In realtà ho dovuto aggiungere un file .env al mio progetto e quindi copiare il contenuto di .env.example in modo che key:generatefunzionasse. Non sono sicuro del motivo per cui un file .env non è stato creato quando ho avviato il progetto.


1
Potrebbe dipendere da come hai installato Laravel ... " In una nuova installazione di Laravel, la directory principale dell'applicazione conterrà un .env.examplefile. Se installi Laravel tramite Composer, questo file verrà automaticamente rinominato .env. Altrimenti, dovresti rinominare il file manualmente. "- #Environment Configuration
Sᴀᴍ Onᴇᴌᴀ

inoltre, se hai clonato il progetto da un repository in cui il file .env era probabilmente in .gitignore, allora dovresti anche crearlo. Dai documenti di Laravel: "Il tuo file .env non dovrebbe essere vincolato al controllo del codice sorgente dell'applicazione, poiché ogni sviluppatore / server che utilizza l'applicazione potrebbe richiedere una diversa configurazione dell'ambiente"
Sami El Maameri,

Ho anche scoperto che se lo scarichi dal cloud (sto usando Windows), ovvero google-drive, sky-drive ecc. I file .env, .env.example sono denominati _env, _env.example ecc. In quel caso ho rinominato i file di conseguenza e quindi eseguito 'php artisan key: generate'.
Timothy Kruger,

11
php artisan key:generate
php artisan config:cache

ha funzionato per me, ma doveva essere fatto in un prompt dei comandi su Windows.

Farlo all'interno del terminale in PHPStorm non ha funzionato.


11

Un problema comune che potresti riscontrare quando lavori su un'applicazione Laravel è l'eccezione:

RuntimeException Non è stata specificata alcuna chiave di crittografia dell'applicazione.

Ti imbatterai spesso in questo quando tiri giù un'applicazione Laravel esistente, dove copi il .env.examplefile .envma non imposti un valore per la APP_KEYvariabile.

Alla riga di comando, emettere il seguente comando Artisan per generare una chiave:

php artisan key:generate

Questo genererà una chiave casuale per APP_KEY, Dopo il completamento della .envmodifica, inserisci questo comando nel tuo terminale per cancellare la cache:php artisan config:cache

Inoltre, se si utilizza il server Web predefinito di PHP (ad es. php artisan serve) È necessario riavviare il server modificando .envi valori del file. ora non vedrai questo messaggio di errore.


9

Aprire il prompt dei comandi nella cartella principale del progetto ed eseguire

php artisan key:generate

Poi

php artisan config:cache

e poi

Se ricevi lo stesso errore dopo avere il valore-chiave, copia semplicemente il valore APP_KEY dal file .env e incollalo in config / app.php con 'key' => 'YOUR KEY',

e poi di nuovo corri

php artisan config:cache

7

Segui questi passaggi:

  1. php artisan key:generate
  2. php artisan config:cache
  3. php artisan serve

anche dopo aver generato la chiave nel file .env stavo ricevendo un errore. Quando ho eseguito "php artisaan config: cache", ho cancellato la cache e risolto solo il mio problema. Molte grazie.
Pankaj,

6

Ok, scriverò un'altra istruzione, perché non ho trovato la risposta chiara qui. Quindi, se hai riscontrato tali problemi, segui questo:

  1. Rinomina o copia / rinomina il file .env.example nella radice del tuo progetto in .env .

Non devi solo creare un file .env vuoto , ma riempirlo con il contenuto di .env.example .

  1. Nel terminale vai alla directory principale del progetto (non cartella pubblica) ed esegui

php artisan key: genera

  1. Se tutto va bene, la risposta nel terminale dovrebbe apparire così

Chiave applicazione [base64: wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA =] impostata correttamente.

  1. Ora copia la chiave stessa e incollala nel tuo file .env come valore in APP_KEY. La linea dei risultati dovrebbe apparire così:

APP_KEY = Base64: wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA =

  1. In esecuzione terminale

php artisan config: cache

Questo è tutto.


Quindi php artisan key:generatenon hai aggiunto automaticamente la chiave al tuo file .env?
Rwd

No, nel mio caso.
Dmitry Gordienko,

4

È possibile generare la chiave di crittografia dell'applicazione utilizzando questo comando:

php artisan key:generate

Quindi, crea un file cache per un caricamento della configurazione più veloce usando questo comando:

php artisan config:cache

Oppure, servire l'applicazione sul server di sviluppo PHP usando questo comando:

php artisan serve

Questo è tutto!


3

Se si esegue la clonazione di alcuni progetti, questo tipo di problema può verificarsi in genere.

  1. assicurati che ci sia un .envfile
  2. eseguire php artisan key:generatee quindi dovrebbe generare APP_KEY in .env
  3. finalmente eseguito php artisan servee dovrebbe funzionare.

1

Ho riscontrato questo problema quando ho copiato manualmente il contenuto del mio progetto Laravel (diciamo siti / vecchio nome) in una nuova directory sul mio Mac (diciamo, siti / nuovo nome). Dato che stavo trascinando e rilasciando manualmente, non ho afferrato i file nascosti, vale a dire '.env'. Quando ho guardato più da vicino i siti / vecchio nome ho visto .editorconfig, .env, .env.example, .gitatrributes, .styleci.yml, ecc.

L'errore è scomparso dopo aver copiato i file nascosti nella nuova directory.

Pertanto, "Nessuna chiave di crittografia dell'applicazione è stata specificata" è Laravel che parla di "file mancante .env".


0

Ho dovuto riavviare il mio lavoratore in coda usando php artisan queue:restartdopo l'esecuzione php artisan key:generateper far funzionare i lavori.



0

Nel mio caso, durante la clonazione del progetto da Git non c'era .env

file. Quindi copio il .envfile dal progetto di origine e incollo nel mio progetto corrente e cambio la sua configurazione del database e viene eseguito correttamente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.