はじめに
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をみてエラーを確認するべきでした。とても勉強になったエラー解決でした。