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に文字列が入り、エラーが解決します。
以上です。誰かの参考になれば幸いです。





