Nie określono klucza szyfrowania aplikacji

255

Jestem nowy w Laravel i próbuję użyć polecenia Rzemieślnik ...

php artisan serve

To pokazuje...

Uruchomiono serwer deweloperski Laravel: http://127.0.0.1:8000

Jednak nie uruchomi się automatycznie, a gdy ręcznie wprowadzę http://127.0.0.1:8000 , wyświetli się ten błąd:

RuntimeException Nie określono klucza szyfrowania aplikacji.

Jakieś pomysły? Korzystam ze środowiska Laravel 5.5-dev.

Carlos F.
źródło
lub jeśli twój plik .env wymaga zmiany ref: stackoverflow.com/questions/36276767/…
Nameishi
2
Odpowiedzi poniżej są poprawne: jeśli jednak najpierw uruchomisz „php rzemieślnik serw” i masz aktywną sesję serwera WWW, musisz ponownie uruchomić serwer (control-c w terminalu, aby zatrzymać), aby zmiana zaczęła obowiązywać po tobie dodaj klucz do pliku .env.
Chris Adams

Odpowiedzi:

437

Z szyfrowania - Laravel - środowisko PHP dla rzemieślników internetowych :

„Przed użyciem szyfratora Laravela musisz ustawić opcję klucza w pliku konfiguracyjnym config / app.php. php artisan key:generateAby wygenerować ten klucz, użyj polecenia”

Zauważyłem, że używając tego złożonego zapytania internetowego w google.com:

„laravel add encrption key” (Tak, działało nawet z literówką!)

Amarnasan
źródło
22
Przeszukałem cały błąd i nic się nie pojawiło, po prostu przeszukałem zestaw klucza szyfrującego i dowiedziałem się. Poczuj się jak głupiec. Dzięki. Dla każdego, kto tu przyjeżdża, po prostu biegnij:php artisan key:generate
Carlos F
Przykro mi, więc wkładasz klucz rzemieślnika php: generuj w terminalu? ponieważ dostaję wyjątek ErrorException
Nameishi
1
Dla każdego innego, kto napotkał mój problem, wprowadź to do terminala cp .env. Przykład .env php rzemieślnik klucz: generuj
Nameishi
5
php artisan key:generatenawet dla mnie nie działa. Daje mi ten sam błąd Nie określono klucza szyfrowania aplikacji , proszę jakieś rozwiązanie?
Oniya Daniel
7
To działało dla mnie, ale najpierw musiałem zmienić nazwę pliku .env. Przykład na .env, aby to zadziałało, w przeciwnym razie pojawiał się błąd „.env: brak takiego pliku”.
Webomatik
129

W moim przypadku musiałem również zresetować buforowane pliki konfiguracyjne:

php artisan key:generate
php artisan config:cache
Leonid Dashko
źródło
5
Zawsze przychodzę zobaczyć tę odpowiedź po tym, jak zapomniałem wyczyścić pamięć podręczną
vijayrana
3
Tego brakowało we wszystkich odpowiedziach. Dziękuję bardzo! :)
Aman Alam
1
Do czego służy php artisan config:cache? Dlaczego to jest przydatne?
Pathros
2
@Pathros, aby utworzyć / zregenerować buforowane pliki konfiguracyjne
Leonid Dashko
1
Oprócz tego najpierw upewnij się, że .envplik „ ” zawiera przynajmniej pustą opcję klucza, na przykład:APP_KEY=
Top-Master
54

Otwórz wiersz polecenia w folderze głównym projektu i uruchom poniższe polecenie:

php artisan key:generate

Wygeneruje klucz aplikacji dla Twojej aplikacji.

Wygenerowany klucz aplikacji (APP_KEY) można znaleźć w .envpliku.

skm
źródło
23

Po prostu uruchom to polecenie:

php artisan key:generate
DJ
źródło
1
Tak, ale wiele serwerów hostingowych nie ma dostępu do wiersza poleceń, jak to zrobić?
Dhiraj
2
większość obsługuje połączenie ssh. z terminalu uruchom ssh twoja nazwa_użytkownika @ server_ip
DJ
21
  1. Skopiuj .env.exampledo .env:

    cp -a .env.example .env

  2. Wygeneruj klucz:

    php artisan key:generate

  3. Dopiero wtedy uruchom:

    php artisan serve

Adam Pery
źródło
Ups To był krytyczny krok! Świeży projekt Laravel wymaga pliku .env lub nic nie będzie działać. Dzięki, Adam.
Eric L.
16

cp .env.example .envjeśli nie ma pliku .env php artisan key:generatepolecenie działa dla mnie. Generuje klucz szyfrowania

Sabyasachi Ghosh
źródło
4
wyczyść pamięć podręczną za pomocą php artisan config:cachepolecenia po wykonaniu powyższych kroków.
Sabyasachi Ghosh
Czyszczenie pamięci podręcznej byłoby głównie wymagane przy produkcji / przemieszczaniu, ale nie podczas programowania. (Chyba że lubisz buforować swoje widoki podczas programowania).
killstreet
14

Właściwie musiałem dodać plik .env do mojego projektu, a następnie skopiować zawartość .env.example, aby key:generatedziałało. Nie jestem pewien, dlaczego plik .env nie został utworzony podczas uruchamiania projektu.

Craig Kollross
źródło
1
Może to zależeć od tego, jak zainstalowałeś Laravel ... ” W nowej instalacji Laravel katalog główny aplikacji będzie zawierał .env.exampleplik. Jeśli zainstalujesz Laravel przez Composer, nazwa pliku zostanie automatycznie zmieniona na .env. W przeciwnym razie powinieneś zmienić nazwę plik ręcznie. ”- # Konfiguracja środowiska
Sᴀᴍ Onᴇᴌᴀ
Ponadto, jeśli klonujesz projekt z repozytorium, w którym plik .env prawdopodobnie znajduje się w .gitignore, musisz go również utworzyć. Z dokumentacji Laravela: „Twój plik .env nie powinien być poddany kontroli źródła aplikacji, ponieważ każdy programista / serwer korzystający z Twojej aplikacji może wymagać innej konfiguracji środowiska”
Sami El Maameri,
Odkryłem również, że jeśli pobierzesz go z chmury (korzystam z systemu Windows), tj. Google-drive, sky-drive itp., Pliki .env, .env.example są nazywane _env, _env.example itp. W takim przypadku I odpowiednio zmieniłem nazwy plików, a następnie uruchomiłem „klucz rzemieślnika php: wygeneruj”.
Timothy Kruger,
11
php artisan key:generate
php artisan config:cache

działało dla mnie, ale trzeba było to zrobić w wierszu polecenia w systemie Windows.

Wykonanie tego w terminalu w PHPStorm nie zadziałało.

José Maria
źródło
11

Częstym problemem, który może wystąpić podczas pracy z aplikacją Laravel, jest wyjątek:

RuntimeException Nie określono klucza szyfrowania aplikacji.

Często się na to natrafisz, gdy ściągasz istniejącą aplikację Laravel, do której kopiujesz .env.exampleplik, .envale nie ustawiasz wartościAPP_KEY zmiennej.

W wierszu polecenia wydaj następujące polecenie Rzemieślnik, aby wygenerować klucz:

php artisan key:generate

To wygeneruje losowy klucz APP_KEY, Po zakończeniu.env edycji wprowadź polecenie w terminalu, aby wyczyścić pamięć podręczną:php artisan config:cache

Ponadto, jeśli używasz domyślnego serwera WWW PHP (np. php artisan serve), Musisz zrestartować serwer, zmieniając .envwartości plików. teraz nie zobaczysz tego komunikatu o błędzie.

Udhav Sarvaiya
źródło
9

Otwórz wiersz polecenia w folderze głównym projektu i uruchom

php artisan key:generate

Następnie

php artisan config:cache

i wtedy

Jeśli otrzymujesz ten sam błąd po otrzymaniu klucza-wartości, po prostu skopiuj wartość APP_KEY z pliku .env i wklej ją do config / app.php za pomocą 'key' => 'YOUR KEY',

a następnie ponownie uruchom

php artisan config:cache
kaushik
źródło
7

Wykonaj następujące kroki:

  1. php artisan key:generate
  2. php artisan config:cache
  3. php artisan serve
Skandarajah Shyamalan
źródło
nawet po wygenerowaniu klucza w pliku .env otrzymywałem błąd. Kiedy uruchomiłem „php artisaan config: cache” wyczyściłem pamięć podręczną i wtedy tylko mój problem został rozwiązany. Wielkie dzięki.
Pankaj
6

Ok, napiszę kolejną instrukcję, ponieważ nie znalazłem tutaj jasnej odpowiedzi. Więc jeśli napotkałeś takie problemy, wykonaj następujące czynności:

  1. Zmień nazwę lub skopiuj / zmień nazwę pliku .env.example w katalogu głównym projektu na .env .

Nie należy po prostu tworzyć pustego pliku .env , ale wypełnić go treścią .env.przykład .

  1. W terminalu przejdź do katalogu głównego projektu (nie folderu publicznego) i uruchom

klucz rzemieślnika php: generuj

  1. Jeśli wszystko jest w porządku, odpowiedź w terminalu powinna wyglądać tak

Klucz aplikacji [base64: wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA =] ustawiony pomyślnie.

  1. Teraz wystarczy skopiować sam klucz i wkleić go do pliku .env jako wartość do APP_KEY. Linia wyników powinna wyglądać następująco:

APP_KEY = base64: wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA =

  1. W biegu terminalowym

php artisan config: cache

Otóż ​​to.

Dmitrij Gordienko
źródło
Więc php artisan key:generatenie dodałeś automatycznie klucza do pliku .env?
Rwd
Nie, w moim przypadku.
Dmitry Gordienko
4

Możesz wygenerować klucz szyfrowania aplikacji za pomocą tego polecenia:

php artisan key:generate

Następnie utwórz plik pamięci podręcznej, aby przyspieszyć ładowanie konfiguracji za pomocą tego polecenia:

php artisan config:cache

Lub podaj aplikację na serwerze programistycznym PHP, używając tego polecenia:

php artisan serve

Otóż ​​to!

Prakash Pazhanisamy
źródło
3

Jeśli sklonujesz jakiś projekt, ten problem może zwykle wystąpić.

  1. upewnij się, że jest .env plik
  2. uruchom, php artisan key:generatea następnie powinien wygenerować APP_KEY w .env
  3. w końcu uruchomić php artisan servei powinno działać.
Jasbin Karki
źródło
1

Natknąłem się na ten problem, gdy ręcznie skopiowałem zawartość mojego projektu Laravel (powiedzmy strony / stara nazwa) do nowego katalogu na moim komputerze Mac (powiedzmy, witryny / nowa nazwa). Ponieważ ręcznie przeciągałem i upuszczałem, nie pobierało ukrytych plików, a mianowicie „.env”. Gdy przyjrzałem się bliżej stronom / starszej nazwie, zobaczyłem .editorconfig, .env, .env. Przykład, .gitatrributes, .styleci.yml itp.

Błąd zniknął po skopiowaniu ukrytych plików do nowego katalogu.

Tak więc „Nie określono klucza szyfrowania aplikacji” Laravel mówi za „brakuje pliku .env”.

JJ Rohrer
źródło
0

Po uruchomieniu musiałem zrestartować mój pracownik kolejki, aby php artisan queue:restarturuchomić php artisan key:generatezadania.

Nenotlep
źródło
0

po prostu biegnij

php artisan key:generate

to zadziałało dla mnie

Dimuthu Maduranga
źródło
0

W moim przypadku podczas klonowania projektu z git nie było .env

plik. Więc kopiuję .envplik z projektu źródłowego i wklejam do mojego obecnego projektu, zmieniam konfigurację bazy danych i działa poprawnie.

Pawan Verma
źródło