Не вказано ключ шифрування програми


255

Я новачок у Laravel і я намагаюся використовувати команду Artisan ...

php artisan serve

Він відображає ...

Запущений сервер розробки Laravel: http://127.0.0.1:8000

Однак він не запуститься автоматично, і коли я вручну ввожу http://127.0.0.1:8000, він показує цю помилку:

RuntimeException Не вказано ключ шифрування програми.

Будь-які ідеї? Я використовую Laravel Framework 5.5-dev.


або якщо ваші потреби .env файлів необхідно змінити вих: stackoverflow.com/questions/36276767 / ...
Nameishi

2
Наведені нижче відповіді правильні: однак, якщо спочатку запустити "php artisan serve" та мати активне сеанс веб-сервера, вам потрібно буде перезапустити сервер (control-c у терміналі, щоб зупинити), щоб зміни вступили в силу після вас додати ключ до вашого файлу .env.
Кріс Адамс

Відповіді:


437

Від шифрування - Laravel - Рамка PHP для веб-майстрів :

"Перш ніж використовувати шифр Laravel, ви повинні встановити ключовий параметр у своєму конфігураційному файлі config / app.php. Ви повинні використовувати php artisan key:generateкоманду для створення цього ключа"

Я виявив, що використовуючи цей складний Інтернет-запит на google.com:

"laravel add ключ шифрування" (Так, він працював навіть з друкарською помилкою!)


22
Я гуглив всю помилку, і нічого не з’явилося, просто встановив ключ Google encriptyon і дізнався. Почувайтеся дурнем. Дякую. Для всіх, хто приїжджає сюди, просто біжіть:php artisan key:generate
Carlos F

Мені шкода, що ти ставиш php artisan ключ: генерувати в терміналі? тому що я отримую ErrorException
Nameishi

1
Для всіх, хто зіткнувся з моєю проблемою, введіть це в термінал cp .env.example .env php artisan key:
create

5
php artisan key:generateнавіть не працює для мене. Надає мені таку ж помилку Не вказано ключ шифрування програми , будь-яке рішення?
Oniya Daniel

7
Це працювало для мене, але я спочатку повинен був перейменувати файл .env.example в .env, щоб це працювало, інакше я отримував помилку ".env: немає такого файлу".
Webomatik

129

У моєму випадку мені також потрібно було скинути кешовані конфігураційні файли:

php artisan key:generate
php artisan config:cache

5
Я завжди приїжджаю до цієї відповіді, коли забуду очистити кеш
vijayrana

3
Цього не було в усіх відповідях. Велике спасибі! :)
Аман Алам

1
Для чого php artisan config:cache? Чому це корисно?
Патрос

2
@Pathros для створення / відновлення кешованих файлів конфігурації
Леонід Дашко

1
На додаток до цього, спочатку переконайтесь, що ваш " .env" файл містить принаймні порожній ключ-варіант, наприклад:APP_KEY=
Top-Master

54

Відкрийте командний рядок у кореневій папці вашого проекту та запустіть команду нижче:

php artisan key:generate

Він генерує прикладний ключ для вашої програми.

Ви можете знайти згенерований ключ програми (APP_KEY) у .envфайлі.


23

Просто запустіть цю команду:

php artisan key:generate

1
Так, але багато хостинг-сервера не мають доступу до командного рядка, як це зробити?
Dhiraj

2
підтримка більшості ssh. з вашого терміналу запустіть ssh yourusername @ server_ip
DJ

21
  1. Скопіюйте .env.exampleу .env:

    cp -a .env.example .env

  2. Створіть ключ:

    php artisan key:generate

  3. Тільки тоді запустіть:

    php artisan serve


Уопс. Це був критичний крок! Свіжий проект Laravel потребує .env-файлу, інакше нічого не вийде. Спасибі, Адаме.
Ерік Л.

16

cp .env.example .envякщо немає файлу .env. php artisan key:generateкоманда працює для мене. Він генерує ключ шифрування


4
очистіть кеш за допомогою php artisan config:cacheкоманди після вищезазначених кроків.
Sabyasachi Ghosh

Очищення кеш-пам'яті в основному вимагатиме виробництва / постановки, але не під час розробки. (Якщо ви не хочете кешувати свої погляди під час розвитку).
killstreet

14

Я фактично повинен був додати .env файл до свого проекту, а потім скопіювати вміст .env.example, щоб key:generateробота працювала. Не впевнений, чому файл .env не був створений, коли я починав проект.


1
Це може залежати від того, як ви встановили Laravel ... " У свіжій установці Laravel кореневий каталог вашої програми буде містити .env.exampleфайл. Якщо ви встановите Laravel через Composer, цей файл автоматично буде перейменований в .env. Інакше вам слід перейменувати файл вручну. "- # Конфігурація
навколишнього середовища

Крім того, якщо ви клонували проект з репо, де файл .env, ймовірно, знаходився в .gitignore, тоді вам також потрібно створити його. З Документів Laravel: "Ваш файл .env не повинен залучатися до контролю джерела вашої програми, оскільки кожен розробник / сервер, який використовує ваш додаток, може вимагати іншої конфігурації середовища"
Самі Ель Маамері,

Я також виявив, що якщо ви завантажуєте його з хмари (я використовую windows), тобто google-диск, sky-диск тощо., То файли .env, .env.example називаються _env, _env.example тощо. У такому випадку я перейменував файли відповідно, а потім просто запустив 'php artisan key: generated'.
Тимофі Крюгер

11
php artisan key:generate
php artisan config:cache

працював на мене, але це потрібно було зробити в командному рядку в Windows.

Робити це всередині терміналу в PHPStorm не вийшло.


11

Загальна проблема, яка може виникнути під час роботи над програмою Laravel, - це виняток:

RuntimeException Не вказано ключ шифрування програми.

Ви часто стикаєтеся з цим, коли ви стираєте наявну програму Laravel, куди ви копіюєте .env.exampleфайл, .envале не встановлюєте значення для APP_KEYзмінної.

У командному рядку видайте таку команду Artisan, щоб створити ключ:

php artisan key:generate

Це створить випадковий ключ для APP_KEY, Після завершення .envредагування введіть цю команду у свій термінал для очищення кешу:php artisan config:cache

Крім того, якщо ви використовуєте веб-сервер за замовчуванням PHP (наприклад, php artisan serve), вам потрібно перезапустити сервер, змінивши .envзначення файлу. тепер ви не побачите це повідомлення про помилку.


9

Відкрийте командний рядок у кореневій папці вашого проекту та запустіть

php artisan key:generate

Тоді

php artisan config:cache

і потім

Якщо ви отримаєте ту ж помилку після того, як у вас є ключ-значення, просто скопіюйте значення APP_KEY з файлу .env і вставте його в config / app.php з 'key' => 'YOUR KEY',

а потім знову біжи

php artisan config:cache

7

Виконайте такі дії:

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

навіть після генерації ключа у .env-файлі я отримував помилку. Коли я запустив "php artisaan config: cache", він очистив кеш і тоді вирішилася лише моя проблема. Дуже дякую.
Панкай

6

Гаразд, я напишу ще одну інструкцію, бо тут не знайшов чіткої відповіді. Тож якщо ви стикалися з такими проблемами, дотримуйтесь цього:

  1. Перейменуйте або скопіюйте / перейменуйте .env.example файл у корені проекту в .env .

Ви не повинні просто створити порожній .env файл, а заповнити його вмістом .env.example .

  1. У терміналі перейдіть до кореневого каталогу проекту (не загальнодоступної папки) та запустіть

php ремісничий ключ: створити

  1. Якщо все в порядку, реакція в терміналі повинна виглядати приблизно так

Ключ програми [base64: wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA =] встановлено успішно.

  1. Тепер просто скопіюйте сам ключ і вставте його у файл .env як значення в APP_KEY. Рядок результатів повинен виглядати так:

APP_KEY = base64: wbvPP9pBOwifnwu84BeKAVzmwM4TLvcVFowLcPAi6nA =

  1. У термінальному режимі

php artisan config: кеш

Це воно.


Отже php artisan key:generate, автоматично не додали ключ до вашого файлу .env?
Rwd

Ні, в моєму випадку
Дмитро Гордієнко

4

Ви можете створити ключ шифрування програми за допомогою цієї команди:

php artisan key:generate

Потім створіть файл кешу для швидшого завантаження конфігурації за допомогою цієї команди:

php artisan config:cache

Або подайте додаток на сервері розробки PHP за допомогою цієї команди:

php artisan serve

Це воно!


3

Якщо ви git клонуєте якийсь проект, то подібні проблеми зазвичай можуть виникнути.

  1. переконайтеся, що є .envфайл
  2. запустіть, php artisan key:generateі тоді він повинен генерувати APP_KEY в .env
  3. нарешті біжи, php artisan serveі це має працювати.

1

Я зіткнувся з цим питанням, коли я вручну скопіював вміст свого проекту Laravel (скажімо, сайти / oldname) у новий каталог на моєму Mac (скажімо, сайти / newname). Оскільки я вручну перетягував і опускав, він не захоплював приховані файли, а саме: ".env". Коли я придивився уважніше до сайтів / oldname, я побачив .editorconfig, .env, .env.example, .gitatrributes, .styleci.yml тощо.

Помилка усунулася, коли я скопіював приховані файли в новий каталог.

Отже, "Ключ шифрування додатків не вказано" - це Laravel говорити за те, що ".env файл відсутній".


0

Мені довелося перезапустити чергового працівника, використовуючи його php artisan queue:restartпісля запуску, php artisan key:generateщоб отримати роботу.



0

У моєму випадку під час клонування проекту від git не було .env

файл. Тому я копіюю .envфайл із вихідного проекту та вставляю у свій поточний проект та змінюю його конфігурацію бази даних, і вона успішно працює.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.