초학자 메모 배포 후 오류 문장을 확인하는 방법

소개



프로그래밍을 처음으로 4개월째에 돌입한 초학자입니다.
배포 중에 오류가 발생했지만 오류 내용을 확인하는 방법을 모르기 때문에 메모를 남깁니다.
Qiita 첫 투고를 위해, 따뜻한 눈으로 봐 주시면이라고 생각합니다.

환경



개발
・Ruby '2.3.8'
・Rails '5.2.3'
 ·vagrant

 배포
· · AWS
 ·nginx
 ·unicorn

오류



로컬 환경에서 오류가 발생하지 않아도 배포 후 오류가 발생할 수 있습니다.
배포 후 오류가 있으면 다음 화면이 표시됩니다.

이것만으로는 오류의 원인을 알 수 없습니다.
We're sorry, but something went wrong.을 Google에서 검색해도 다양한 기사(원인)가 나오므로 에러 부분을 좁힐 수 없었습니다.
또한 Google 크롬의 유효성 검사 기능을 시도하여 오류 부분을 좁힐 수 없었습니다.

오류 로그를 확인하려면 ...



오류 부분을 좁히려면 로그를 볼 필요가 있습니다.
로그는 다음 위치에서 확인할 수 있습니다.
· 배포 후 로그 확인
"응용 프로그램 이름/log/production.log"
· 개발 중 로그 확인
"응용 프로그램 이름/log/development.log"

오류 로그를 확인하는 방법



"터미널"
1. EC2에 ssh 연결하기
2. $ cd /var/www/html/アプリケーション名 으로 로 이동한다.
3. $ cat log/production.log 를 실행한다.

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()").allmysql에서는 RAND 밖에 사용할 수 없는 것 같습니다.

※이번은 EC2 환경에서 변경하고 있습니다. sudo vi app/controllers/エラー箇所のコントローラ名

배포 환경에 변경 사항을 적용



이번에는 unicorn을 사용하고 있으므로 sudo service unicorn restart를 실행합니다.
이제 오류가 해결되고 올바르게 표시되었습니다.

좋은 웹페이지 즐겨찾기