Tobilog-Selection
こんにちは!トビログ管理人のとびうおです。「Laravel で nginxの502エラーが出た時」の対処法にを紹介します。(なお自分の環境はLaravel8や9です。)
![laravel で nginxの503エラーが出た時の対処法](https://i0.wp.com/tobilog.net/wp-content/uploads/2022/10/スクリーンショット-2022-10-04-21.03.14.png?resize=726%2C370&ssl=1)
![とびうお](https://i0.wp.com/tobilog.net/wp-content/uploads/2021/01/C68848CD-D4C5-460B-B744-BEFA75315F89.jpg?resize=300%2C300&ssl=1)
とびうお
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してあげている図)
![とびうお](https://i0.wp.com/tobilog.net/wp-content/uploads/2021/01/C68848CD-D4C5-460B-B744-BEFA75315F89.jpg?resize=300%2C300&ssl=1)
とびうお
attributeで、同じ名前のものを指定すると
ループしてしまうからおそらくnginxのエラーが
出てしまうんだね。
これでnginxの502が出るのはとても意外です。
![](https://i0.wp.com/www19.a8.net/0.gif?resize=1%2C1&ssl=1)
![](https://i0.wp.com/www19.a8.net/0.gif?resize=1%2C1&ssl=1)
![](https://i0.wp.com/www16.a8.net/0.gif?resize=1%2C1&ssl=1)
結論
以上のようにnginxで502のエラーが出た時は
- 全てのキャッシュをクリアしてみる
- venderを消してcomposerを入れ直す
- modelでattributeを確認してみる
が筆者が試して解決したことのある方法です。特に「modelでattributeを確認してみる」は沼ってしまう可能性があるので注意してください!
下におすすめの記事も貼っておくのでぜひ見てください!
![とびうお](https://i0.wp.com/tobilog.net/wp-content/uploads/2021/01/C68848CD-D4C5-460B-B744-BEFA75315F89.jpg?resize=300%2C300&ssl=1)
とびうお
他にもこんな方法で解決できる!
みたいなのがあればコメントで教えてください!
コメント