環境
Laravel v9.5.1 (PHP 8.1.2)
AWS
Fly.io(サーバー)
Supabase(データベース)
要約
500エラーはDB接続が上手くいっていないときに起こりやすいので、環境変数などをもう一度確認しよう
問題
PHPの練習がてら、Xのクローンアプリを作成。いざFly.ioでデプロイを試みる。
おっ、ローカル環境通り上手くいったのでは???
という淡い期待もつかの間、ログイン情報を入力後の画面で「500 | SERVER ERROR」が表示された。
解決法
ローカルで動くのに本番環境ではなぜ動かないのか?
ググってみたり有識者に聞いてみると、「多くの場合、プログラムではなく環境の問題です」「特にDB接続が上手くいっていない場合が多いので、接続情報を見直してみましょう」とあった。
そこで実際にログを出して接続情報を確認してみると…
Fly.tomlのファイルのenv欄に接続情報を書くのを失念していた。
[env]
APP_URL = "https://micropostsdao.fly.dev/"
APP_NAME = "Microposts"
APP_DEBUG = false
DB_CONNECTION = "pgsql"
DB_HOST = "db.ehgvvqinswchenabocqs.supabase.co"
DB_PORT = 5432
DB_DATABASE = "postgres"
DB_USERNAME = "postgres"
(個人情報は出ていないはず)
まとめ
ローカル環境では〇、本番環境では×の場合は、環境変数などの定義漏れに注意