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


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.