Laravel で nginxの502エラーが出た時の対処法

こんにちは!トビログ管理人のとびうおです。「Laravel で nginxの502エラーが出た時」の対処法にを紹介します。(なお自分の環境はLaravel8や9です。)

laravel で nginxの503エラーが出た時の対処法
laravel で nginxの503エラーが出た時の対処法
とびうお
とびうお

laravelっぽくないエラーが出ると
不安に感じますよね…。

1.全てのキャッシュをクリアしてみる

まずはLaravelのキャッシュクリアをしてみましょう。nginxのエラーが出た時は定番ですね。

php artisan optimize:clear

大抵の場合はこれでnginxの502エラーは消えるはずです。

2.venderを消してcomposerを入れ直す

venderを消してcomposerを入れ直してみましょう。Laravelがあるディレクトリのところで、

rm -rf vender
composer install

をしてみましょう。これは少し強いキャッシュクリアだと思っておけばOKです。

3.modelでattributeを確認してみる

これは筆者が1番不思議に思った事例なのですが、例えばデータベースの「userテーブル」に「name」カラムがあったとした時に、getNameAttribute みたいなのがあるとエラーが起きてしまいます。

Postで再現してみましょう。

//migrationファイル
Schema::create('post', function (Blueprint $table) {
            $table->id();
            $table->dateTime('time')
            $table->timestamps();
        });
//Postモデル
getTimeAttribute(){
return Carbon::create($this['time'])->format('H:i');
}

(attributeとして適切かは置いておいて、carbonを使ってカラムのtimeをformatしてあげている図)

とびうお
とびうお

attributeで、同じ名前のものを指定すると

ループしてしまうからおそらくnginxのエラーが

出てしまうんだね。

これでnginxの502が出るのはとても意外です。

結論

以上のようにnginxで502のエラーが出た時は

  • 全てのキャッシュをクリアしてみる
  • venderを消してcomposerを入れ直す
  • modelでattributeを確認してみる

が筆者が試して解決したことのある方法です。特に「modelでattributeを確認してみる」は沼ってしまう可能性があるので注意してください!

下におすすめの記事も貼っておくのでぜひ見てください!

とびうお
とびうお

他にもこんな方法で解決できる!

みたいなのがあればコメントで教えてください!

とびうお
ブログ管理人です!
swimaneというアプリをリリースしました!

コメント

タイトルとURLをコピーしました