15
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2019-08-21

#はじめに
プログラミングを初めて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を実行します。
これでエラーは解消され、正しく表示されました。

15
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?