LoginSignup
6

More than 3 years have passed since last update.

Nginx経由でRailsをAWS環境で起動できないエラー時にまず確かめたいこと、使えるコマンド。

Posted at

表題の内容に関して、チェックすべきポイントを
備忘録として以下に記す。

そもそもURLは正しいか?

Nginx導入の際に、unicorn.rb内の記述を変更していると思うので、
改めてブラウザからElastic IPでアクセスしてみる。

データベースは起動しているか?

Mysql使用時は以下を実行して確認。

ターミナル
[ec2-user@ip-XXX-XX-XX-XXX <リポジトリ名>] $ sudo service mysqld start
#上記実行後running...と表示されていればOK

Railsは起動しているか?

unicorn使用時には以下を実行して確認。

ターミナル
[ec2-user@ip-XXX-XX-XX-XXX <リポジトリ名>] $ bundle exec unicorn_rails -c config/unicorn.rb -E production -D #エラー文が表示されなければOK

master failed to start, check stderr log for details #このようなエラー文がでた場合は以下を実行して詳細を確認する。

[ec2-user@ip-172-31-23-189 <リポジトリ名>]$ less log/unicorn.stderr.log #実行すると上から古い順にエラーのログが表示されるので、原因を探す。

I, [2016-12-21T04:01:19.135154 #18813]  INFO -- : Refreshing Gem list
I, [2016-12-21T04:01:20.732521 #18813]  INFO -- : listening on addr=0.0.0.0:3000 fd=10
E, [2016-12-21T04:01:20.734067 #18813] ERROR -- : Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)  #このようにエラーの履歴がいくつか表示されるので、未解決のものを下から潰していく
/home/ec2-user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/mysql2_adapter.rb:29:in `rescue in mysql2_connection'
/home/ec2-user/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activerecord-5.0.0.1/lib/active_record/connection_adapters/mysql2_adapter.rb:12:in `mysql2_connection'
#以下略

unicornのプロセスは停止されているか?

まず以下を実行してunicornのプロセスを確認。

ターミナル
[ec2-user@ip-172-31-23-189 <リポジトリ名>]$ ps aux | grep unicorn #左記を実行すると以下にプロセスが表示される。

ec2-user 17877  0.4 18.1 588472 182840 ?       Sl   01:55   0:02 unicorn_rails master -c config/unicorn.rb -E production -D
ec2-user 17881  0.0 17.3 589088 175164 ?       Sl   01:55   0:00 unicorn_rails worker[0] -c config/unicorn.rb -E production -D
ec2-user 17911  0.0  0.2 110532  2180 pts/0    S+   02:05   0:00 grep --color=auto unicorn

上記のように停止されていないことが確認された場合
unicorn_rails masterの行のプロセスID(PID)を確認する。
左から2列目、5桁の数字がPIDで、今回の場合は17877となる。

その後以下の通りにkillコマンドを実行する。

ターミナル
kill 17877

再度プロセスの確認を行い、以下のように config/unicorn.rb の記述がある行が削除されていれば成功。

ターミナル
[ec2-user@ip-XXX-XX-XX-XXX <リポジトリ名>]$ ps aux | grep unicorn
ec2-user 17911  0.0  0.2 110532  2180 pts/0    S+   02:05   0:00 grep --color=auto unicorn

Nginx内の記述を確認してみる。

確認するための記述は以下。

ターミナル
[ec2-user@ip-XXX-XX-XX-XXX <リポジトリ名>]$ sudo vim /開きたいファイルのURI

アプリケーション名や、Elastic IP、その他記述に誤りがないか確認する。

※vimの操作に関しては、以下にとても参考になる記事のリンクを載せました。
https://qiita.com/knife0125/items/5e91176c8401acd6bb0a

現状の理解

ターミナルでの作業はなかなか理解が難しい。
特にvimを使用する場面は理解が浅いので今後学習を強化していきたい。

誤り等ございましたらご指摘のほどよろしくお願いいたします。

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
6