Разработка/ PHP/ Laravel

No application encryption key has been specified.

Что означает ошибка

Ошибка No application encryption key has been specified. означает, что Laravel не видит APP_KEY. Обычно ключ отсутствует в .env или приложение читает старое значение из кэша конфигурации.

Как исправить в новом проекте

В корне проекта выполнить:

cp .env.example .env
php artisan key:generate
php artisan config:clear
php artisan cache:clear

Если файл .env уже есть, не перезаписывайте его командой cp вслепую. Сначала проверьте, нет ли там нужных настроек базы, почты и внешних сервисов.

Проверка

В .env должна появиться строка такого вида:

APP_KEY=base64:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=

После правки .env можно ещё раз сбросить кэш конфигурации:

php artisan config:clear

Production

Не менять ключ без причины

На production нельзя менять APP_KEY после появления пользователей и данных. Зашифрованные cookie, сессии, токены сброса пароля и поля, зашифрованные средствами Laravel, могут стать нечитаемыми.

Если ключ уже был рабочим, сначала ищите проблему в кэше конфигурации, окружении процесса PHP-FPM или деплой-скрипте, который мог подставить пустой .env.

Теги

Читать дальше