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


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 необходимо изменить ref: stackoverflow.com/questions/36276767/…
Nameishi

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

Ответы:


437

From Encryption - Laravel - PHP Framework для веб-мастеров :

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

Я обнаружил, что с помощью этого сложного интернет-запроса на google.com:

«ключ шифрования laravel add» (да, он работал даже с опечаткой!)


22
Я погуглил всю ошибку и ничего не появилось, просто погуглил установленный ключ encriptyon и выяснил. Почувствуй себя дураком. Спасибо. Для тех, кто прибывает сюда, просто бегите:php artisan key:generate
Карлос Ф

Прошу прощения, так что вы кладете PHP-ключ ремесленника: генерировать в терминале? потому что я получаю ErrorException
Nameishi

1
Для всех, кто столкнулся с моей проблемой, введите это в терминал cp .env.example .env php artisan key: generate
Nameishi

5
php artisan key:generateу меня даже не работает. Выдает мне ту же ошибку. Не указан ключ шифрования приложения , пожалуйста, есть решение?
Oniya Daniel

7
Это сработало для меня, но сначала мне пришлось переименовать файл .env.example в .env, чтобы это работало, в противном случае я получал ошибку «.env: нет такого файла».
Webomatik

129

В моем случае мне также нужно было сбросить кэшированные файлы конфигурации:

php artisan key:generate
php artisan config:cache

5
Я всегда вижу этот ответ после того, как забываю очистить кеш
Виджайрана

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команды после вышеуказанных шагов.
Сабьясачи Гош

Очистка кэша в основном потребуется для производства / постановки, но не во время разработки. (Если вы не любите кэшировать свои взгляды во время разработки).
killstreet

14

На самом деле мне пришлось добавить файл .env в мой проект, а затем скопировать содержимое .env.example, чтобы key:generateон работал. Не уверен, почему файл .env не был создан при запуске проекта.


1
Это может зависеть от того, как вы установили Laravel ... " В новой установке Laravel корневой каталог вашего приложения будет содержать .env.exampleфайл. Если вы устанавливаете Laravel через Composer, этот файл будет автоматически переименован в .env. В противном случае вам следует переименовать файл вручную. "- # Конфигурация
среды

Кроме того, если вы клонировали проект из репозитория, в котором файл .env был, скорее всего, в .gitignore, то вам также понадобится его создать. Из документов Laravel: «Ваш файл .env не должен передаваться в систему контроля версий вашего приложения, поскольку каждому разработчику / серверу, использующему ваше приложение, может потребоваться
отдельная

Я также обнаружил, что если вы загружаете его из облака (я использую windows), т.е. google-drive, sky-drive и т. Д., Файлы .env, .env.example называются _env, _env.example и т. Д. В этом случае я соответственно переименовал файлы и просто запустил php artisan key: generate.
Тимоти Крюгер

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 с помощью ключа: => ВАШ КЛЮЧ,

а затем снова запустить

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: кэш

Вот и все.


Таким образом, вы php artisan key:generateавтоматически не добавили ключ в ваш файл .env?
RWD

Нет, в моем случае
Дмитрий Гордиенко

4

Вы можете сгенерировать ключ шифрования приложения, используя эту команду:

php artisan key:generate

Затем создайте файл кэша для более быстрой загрузки конфигурации с помощью этой команды:

php artisan config:cache

Или подайте приложение на сервер разработки PHP с помощью этой команды:

php artisan serve

Это оно!


3

Если вы клонируете какой-то проект, то обычно может возникнуть такая проблема.

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

1

Я столкнулся с этой проблемой, когда вручную скопировал содержимое моего проекта Laravel (скажем, sites / oldname) в новый каталог на моем Mac (скажем, sites / 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.