ローカルのHomesteadで開発していたサイトをレンサバにアップしたらエラーになった。初心者ゆえにちょっとハマッたので覚え書き。
やったこと
- ローカルのLaravelプロジェクトをサーバーへ丸ごとアップロード
- サーバー上で.env.exampleを.envにコピー
- データベース情報を.envに記述
- publicディレクトリをウェブサーバーのホームディレクトリにシンボリックリンク
- ブラウザからアクセス
エラー
RuntimeException in EncryptionServiceProvider.php line 29:
No supported encrypter found. The cipher and / or key length are invalid.
原因
アプリケーションキーが設定されていなかった。すなわち、.envのAPP_KEYがデフォルト値のまま。
1 |
APP_KEY=SomeRandomString |
対処
サーバー上で以下コマンドを実行する。これにより、.envのAPP_KEYがセットされる。
1 2 |
$ php artisan key:generate Application key [c8Rt1BimXbmdQsh0Aoi4bDNONPSn3qxG] set successfully. |
捕捉
composerを使ってLaravelをインストールすると、アプリケーションキーの生成が自動で行われる。だけど、(.env.exampleをコピーするなどして).envを手動で作成する場合には、手動でコマンドを実行してアプリケーションキーを作成しないとならない。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$ 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