備忘録として書き残しておきます。
必要に応じて随時編集します。
#Capistranoが動く場合
以下の設定を行うと、本番環境でもローカル開発環境と同じように、ブラウザにエラーメッセージが表示されるようになります。
config/environments/production.rb
(前略)
config.consider_all_requests_local = true
(後略)
「config/environments/production.rb」のファイルの中から、上記の記述を見つけましょう。もともと「false」になっているので、「true」に変更します。
この変更を本番環境に反映させる必要があるので以下の2つの操作を行いましょう。
①GitHubへのプッシュ
②「bundle exec cap production deploy」の実行
なお、エラー対応が終わったら、忘れずにfalseに戻してデプロイをし直しましょう。
#####※外部からもエラーメッセージの確認が出来る様になるためセキュリティ上知られてはいけない情報が漏れる可能性があります。
#Capistranoがエラーになる場合
Capistranoがエラーになってしまう場合は、上記の方法が取れません。
エラーログを直接確認しましょう。
エラーの内容によって、主に以下の2つのファイルにログが書き込まれます。
どちらに該当するかわかりにくい場合は、両方とも確認しましょう。
###Unicornのエラーログの確認方法
ターミナル
cat /var/www/(アプリ名)/current/log/unicorn.stderr.log
ターミナル
cat /var/www/(アプリ名)/current/log/production.log
最初は、エラーログを読むのは少し難しいので、以下にいくつかポイントをご紹介します。参考にしてください。
Railsアプリのエラーログの確認方法
エラーログを確認するときは、以下の点に気をつけましょう
エラーログの見方
・ファイルの下に行くほど新しいログが載っています
・いつのログなのかを必ず確認しましょう
いつ起きたエラーに対するログなのかを確認することが重要です。
まず、ログの中にタイムスタンプがあったら、そこに9時間を足しましょう(標準時での出力になるため、日本は9時間の時差があります)。その時刻と、今の時刻を見比べて今起きたエラーなのかをチェックします。
ログを確認してもエラー表示がなかった場合
稀なケースかもしれませんがログを確認してもエラーが出なかった場合
rm current/log/unicorn.stderr.log
↑でログの履歴を削除してから
less current/log/unicorn.stderr.log
↑で確認をすると表示させれる場合があります。