ローカル環境にLaravelをインストールし、php artisan serveで起動したときに次のようなエラーが発生することがあります。
No application encryption key has been specified
ここではこのエラーの対処法についてまとめています。
なお対処法はとても簡単で、1分あればできます。
エラーの内容
composerがインストールしてある状態で、以下のコマンドを実行しLaravelのプロジェクトを構築。
$ composer create-project laravel/laravel <プロジェクト名> --prefer-dist
プロジェクトの構築が完了したら、サーバーを起動
$ php artisan serve
Laravel development server started: http://127.0.0.1:8000
起動したページ「http://127.0.0.1:8000」にアクセスすると以下のようなエラーが発生。
RuntimeException
No application encryption key has been specified.
Your app key is missing
Generate your application encryption key using php artisan key:generate.
Generate app key
READ MORE
Laravel installation
対処法
手順
対処法はとても簡単です。
実例
画面に表示されている「Generate app key」をクリックします。
↓ 「Generate app key」をクリック
すると、「The solution was executed succesfully. Refresh now.」と表示されます。
ターミナルで「ctrl + c」を入力してサーバーを停止し、再起動します。
$ php artisan serve
Laravel development server started: http://127.0.0.1:8000
ページを開くと、以下のように正しく表示されます。
原因
このエラーの原因は起動時に参照する「.env」ファイルの変数「APP_KEY」が空になっていたことが原因です。
APP_KEY=
なお、エラーメッセージに表示されている「php artisan key:generate」はこのAPP_KEYを自動生成するコマンドです。
$ php artisan key:generate
Application key set successfully.
これを実行すると、APP_KEYに値がセットされます。
APP_KEY=base64:GY8CaiZljqbIjheOMFs7i2iTbwyu3/aIfyM=
APP_KEYとは何か?
APP_KEYとは、簡単にいうと、Laravelのプロジェクトのユーザー情報やセッション、パスワード設定などのデータを暗号化するために使うものです。
これがないと、暗号化できないためLaravelでは必須となっています。
重要なものなので、本番用のプロジェクトのAPP_KEYは公開しないように注意しましょう。