LoginSignup
0
0

More than 1 year has passed since last update.

【Laravel+Heroku】Herokuデプロイ時に500エラーで画面が表示されない問題【APP_KEY未設定】

Posted at

自分自身の備忘録として、LaravelプロジェクトをHerokuにデプロイした際の
500エラーの解消方法を残しておきます。
結論としては、APP_KEYが設定されていなかったことが原因です。
その他にも様々な原因があるかとは思いますが、解決策の一手段として確認してみてください。

■開発環境

OS:windows10
Laravel 8.83.14
Vue.js 2.6.12

■エラーの原因

Laravel Projectをcomposer create-projectコマンドで作成していたのに、
「heroku config:set APP_KEY=$(php artisan --no-ansi key:generate --show)」で
別の新規APP_KEYを作成しようとし、APP_KEYに値が登録されない状況が発生。
その結果、Heroku上でLaravelが動かない状況が発生し、500エラー。

composer create-projectコマンドでLaravelプロジェクトを作成すると、
その段階で自動的にAPP_KEYが作成される。

■解決策

①コマンドプロンプトでheroku configで設定状況を確認する

$ heroku config

②APP_KEYが設定されている場合

APP_KEY:の続きに値が入っていると設定されている(下記の場合だと123456789)ため、
入力されているAPP_KEYが正しいかどうかを④の方法で確認する。

$heroku config
 === herokuアプリ名 Config Vars
 APP_ENV: heroku
 APP_KEY: 123456789
以下省略

③APP_KEYが設定されていない場合

APP_KEY:の後ろに何も値が表示されていない。この場合はAPP_KEYが入っていない。

$heroku config
 === herokuアプリ名 Config Vars
 APP_ENV: heroku
 APP_KEY: 
以下省略

④APP_KEYを確認する

Laravelプロジェクト直下(package.jsonとかがあるディレクトリ)の.envファイルを開き、
上から3行目のAPP_KEYの=より右側を確認

.env
APP_NAME=Laravel
APP_ENV=local
APP_KEY=123456789
APP_DEBUG=true
APP_URL=http://sample.test
以下省略

⑤Heroku configにAPP_KEYをセットする

$heroku config:set APP_KEY=123456789

⑥Heroku configをもう一度確認する

これで、APP_KEYに.envのAPP_KEYと同じ値が入っていればOK。

$heroku config

⑦500エラーが解消されているか確認する

heroku openでwebページを開きなおし、500エラーが解消されているかどうかを確認

$heroku open

■まとめ

500エラーには様々な原因があるので、解決が難しいと思います。
今回の場合は、作成したwebアプリ上で、500エラー専用ページを作っていました。
そのため、専用エラーページが表示されず、Laravelデフォルトの500エラーページに
飛ばされた段階で、そもそも作成したアプリケーションが読み込まれていないことに気が付きました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0