No application encryption key has been specified.を解決する方法【Laravel】
いつもご利用ありがとうございます。
この記事には広告が掲載されており、その広告費によって運営しています。
Laravel でブラウザで画面を表示しようとした時などに発生する、No application encryption key has been specified
というエラーを解決する方法についてまとめました。
エラー文
Illuminate\Encryption\MissingAppKeyException
No application encryption key has been specified
解決方法
コマンド
php artisan key:generate
大抵はこれで解決します。
もし、以下のようなエラーが発生した場合、
The stream or file "/var/www/html/laravel-docker/src/storage/logs/laravel.log" could not be opened in append mode: Failed to open stream: Permission denied
The exception occurred while attempting to log: file_put_contents(/var/www/html/laravel-docker/src/.env): Failed to open stream: Permission denied
Context: {"exception":{}}
.env
に対して書き込み権限がないためエラーになっているので、
chmod -R 777 .env
と権限を与えてください。
解説
このエラーは、.env
のAPP_KEY
の項目に文字列がないと発生するものです。
Laravel プロジェクトを自分で立ち上げるコマンドを打った場合、これは勝手に入りますが、例えば、GitHub からクローンした場合、.env
は GitHub の管理外なのでこのAPP_KEY
は共有されません。
.env
ファイ ルを.env.example
などからコピーして作成してもここは空ですので、エラーが発生するわけなのです。
php artisan key:generate
これが実行されると、.env
のAPP_KEY
に文字列が入り、エラーが解決します。
以上です。誰かの参考になれば幸いです。