Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
18
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@mailok1212

初学者のメモ デプロイ後のエラー文を確認する方法

はじめに

プログラミングを初めて4ヶ月目に突入した初学者です。
デプロイ時にエラーが発生しましたが、エラー内容を確認方法が分からず躓いたのでメモを残します。
Qiita初投稿の為、暖かい目で見て頂ければと思います。

環境

 開発
 ・Ruby '2.3.8'
 ・Rails '5.2.3'
 ・vagrant

 デプロイ
 ・AWS
 ・nginx
 ・unicorn

エラー

ローカル環境ではエラーが発生しなくても、デプロイ後エラーが出ることがあります。
デプロイ後にエラーがあると以下の画面が表示されます
スクリーンショット 2019-08-22 5.55.05.png
これだけでは、エラーの原因は分かりません。
We're sorry, but something went wrong.をGoogleで検索しても様々な記事(原因)が出てくるのでエラー箇所を絞ることが出来ませんでした。
また、Google chromeの検証機能をしようして同様にエラー箇所を絞ることが出来ませんでした。

エラーログを確認するには・・・

エラー箇所の絞るにはログをみる必要があります。
ログは以下の場所で確認することが出来ます。
・デプロイ後のログ確認
 ”アプリケーション名/log/production.log”
・開発中でのログ確認
 ”アプリケーション名/log/development.log”

エラーログの確認方法

「ターミナル」
 1. EC2にssh接続する
 2. $ cd /var/www/html/アプリケーション名でに移動する。
 3. $ cat log/production.logを実行する。
スクリーンショット 2019-08-22 6.28.44.png
 4. 実行すると今までのログが表示されます。
  今回のエラー箇所は下から8、9行目になります。
   ActionView::Template::Error (Mysql2::Error: FUNCTION portfolio.RANDAM does not exist: SELECT users .* FROM users ORDER BY RANDAM()):

エラー箇所の修正

ランダム表示を今回実装したのですが、記述が正しくなかったのでエラーが発生したようです。
・修正前
@users = User.order("RANDAM()").all
・修正前
@users = User.order("RAND()").all
mysqlではRANDしか使用出来ないみたいです。

※今回はEC2環境で変更しています。sudo vi app/controllers/エラー箇所のコントローラ名

デプロイ環境に変更を適応させる

今回はunicornを使用しているのでsudo service unicorn restartを実行します。
これでエラーは解消され、正しく表示されました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
18
Help us understand the problem. What is going on with this article?