ホーム > Laravel > No application encryption key has been specified.を解決する方法【Laravel】
Laravel

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

Error-Display-No-application-encryption-key

解決方法

コマンド

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

と権限を与えてください。

解説

このエラーは、.envAPP_KEYの項目に文字列がないと発生するものです。

Laravel プロジェクトを自分で立ち上げるコマンドを打った場合、これは勝手に入りますが、例えば、GitHub からクローンした場合、.envは GitHub の管理外なのでこのAPP_KEYは共有されません。

.env ファイルを.env.example などからコピーして作成してもここは空ですので、エラーが発生するわけなのです。

php artisan key:generate

これが実行されると、.envAPP_KEYに文字列が入り、エラーが解決します。

以上です。誰かの参考になれば幸いです。

フィードバックのお願い
この記事のフィードバックがありましたらYoutubeの適当な動画にコメントしていただいたり、お問い合わせからご連絡ください。