PCS開発チーム
PCS開発チーム
「500エラー(Internal Server Error)」には何の情報も含まれてない
質問に「こんな500エラーが出てる」と書いても全く意味がない。
誰にも原因は分からない。
401なら認証、403なら認可など原因を予想できる番号もあるけど500からは何も分からない。
サーバーでなんらかのエラーが発生した以外の情報はない。
「最終的にどのエラーにも当てはまらない時」もしくは「エラーの詳細を隠したい時」などに使われるのが500。
500エラーの詳細の確認方法はLaravelならstorage/logs/
内のログファイルを調べる。
覚え方
「500エラーには何の情報も含まれてないから書いても意味がない」という知識は結局本番環境での運用経験がないと身に付かない。
こんなルーティングの場合
Route::get('/', function () {
throw new RuntimeException('test');
});
APP_DEBUG=true
の開発環境ではブラウザ上でも「RuntimeExceptionの例外が発生した」という詳細が分かる。
APP_DEBUG=false
の本番環境ではブラウザには「500 | Server Error」しか表示されず詳細が分からない。
ログではRuntimeException
なことが分かるのでログを調べるしかない。
local.ERROR: test {"exception":"[object] (RuntimeException(code: 0): test at
一度経験すれば覚えられること。