端くれプログラマの備忘録 Laravel [Laravel] アプリケーションキー(APP_KEY)を設定する

[Laravel] アプリケーションキー(APP_KEY)を設定する

ローカルのHomesteadで開発していたサイトをレンサバにアップしたらエラーになった。初心者ゆえにちょっとハマッたので覚え書き。

やったこと

  1. ローカルのLaravelプロジェクトをサーバーへ丸ごとアップロード
  2. サーバー上で.env.exampleを.envにコピー
  3. データベース情報を.envに記述
  4. publicディレクトリをウェブサーバーのホームディレクトリにシンボリックリンク
  5. ブラウザからアクセス

エラー

RuntimeException in EncryptionServiceProvider.php line 29:
No supported encrypter found. The cipher and / or key length are invalid.

Laravel-error

原因

アプリケーションキーが設定されていなかった。すなわち、.envのAPP_KEYがデフォルト値のまま。

APP_KEY=SomeRandomString

対処

サーバー上で以下コマンドを実行する。これにより、.envのAPP_KEYがセットされる。

$ php artisan key:generate
Application key [c8Rt1BimXbmdQsh0Aoi4bDNONPSn3qxG] set successfully.

捕捉

composerを使ってLaravelをインストールすると、アプリケーションキーの生成が自動で行われる。だけど、(.env.exampleをコピーするなどして).envを手動で作成する場合には、手動でコマンドを実行してアプリケーションキーを作成しないとならない。

$ composer create-project laravel/laravel test
Installing laravel/laravel (v5.2.0)
- Installing laravel/laravel (v5.2.0)
Loading from cache

Created project in test
> php -r "copy('.env.example', '.env');"
Loading composer repositories with package information
Installing dependencies (including require-dev)
...

Writing lock file
Generating autoload files
> php artisan clear-compiled
> php artisan optimize
Generating optimized class loader
> php artisan key:generate
Application key [c8Rt1BimXbmdQsh0Aoi4bDNONPSn3qxG] set successfully.

参考サイト

Laravel Recipes :: Generating a New Application Key
http://laravel-recipes.com/recipes/283/generating-a-new-application-key