はじめに
Railsでポートフォリオ作成中に500 Internal Server Errorでめちゃくちゃ悩まされたので、問題解決の方法を皆さんに共有したいと思います。
環境
- Rails 5.2.4
- macOS 10.15.5
- MySQL 5.7
- ruby 2.5.1
結論
アセットパイプラインが原因かも
状況
development環境で開発をずっとしてて、ある程度アプリケーションが完成してきたので、本番環境にproduction環境でデプロイしようとしたら500 Internal Server Errorがでて三日間解決できず。。
問題解決のために行ったこと
- webサーバ(Nginx)のconfファイルの設定変更
=>解決に至らず - pumaソケットの削除などソケット周り
=>解決に至らず - その他database.ymlやGemfileなど関係がありそうな箇所の見直し
=>解決に至らず - production.logの中身を確認
=>アセットパイプライン周りでエラーを確認
自分がやった解決手順
-
rake assets:clobber
でまずアセットパイプラインをクリーンにする -
bundle exec rake assets:precompile RAILS_ENV=production
でアセットパイプラインのプリコンパイルを実行
=>自分の場合yarnのインストールを求められたのでインストールする - 再起動などをするとうまく立ち上がった
=>自分の場合こちらも行いました。
終わりに
最初は完全にWebサーバ周りの問題と決めつけてしまいましたが、きちんと最初からproduction.logをみてエラーを確認するべきでした。とても勉強になったエラー解決でした。