構成とか
この記事でのインフラ構成はAWS EC2 + Ruby on Rails + nginx + unicorn + capistrano です。その時に使いそうなコマンドをまとめています。
DBはEC2内にMySQLを立てて管理しています。
AWSを使ってデプロイするときにエラーにはまってしまった初学者の私は
logの見かたすら分からなかった。同じようなエラーにハマった時に使ってもらえたら良いですね。
共通
$ ps ax -H ワーキングプロセス(pid)を確認できる
$ sudo reboot EC2再起動
環境変数関連
vim ~/.bash_profile 環境変数書き込み
source ~/.bash_profile 環境変数適用
printenv 設定されている環境変数を確認
sourceコマンド打ってもなぜか入力内容が反映されていないことがありました。
printenvでちゃんと設定内容を確認するようにしています。
MySQL関連
$ sudo service mysqld status 状態を確認する
$ sudo service mysqld start 起動コマンド
$ mysql -u root -p PW入力してMySQLへ接続する
EC2を一度落とすとMySQLは落ちますのでmysql.sockがないというエラーが出ます。
起動させましょう。
unicorn関連
$ ps auxwww | grep unicorn 状態を確認する
$ kill -9 ●●●●● プロセス終了
Appディレクトリで
$ cat log/unicorn.stderr.log ログを見れる
または
$ cd /var/www/app/log
$ less unicorn.staderr.log ログが見れる
$ tail unicorn.staderr.log 最新10行ログが見れる
S3を設定して、
Capistranoで自動デプロイを行っても、なぜかS3に画像が保存されないことがあります。
そんな時はunicornの起動時刻を確認しましょう。
今さっきunicornをリスタートしたのに4時間前のプロセスのままだったりしていることがあります。
そういう場合はkillしてデプロイし直してみると直る。
nginx関連
$ sudo service nginx restart 再起動
本番環境のホームディレクトリで
$ sudo less /var/log/nginx/error.log ログが見れる
capistrano関連
ローカル環境、Appディレクトリで
$ bundle exec cap production deploy デプロイを行う
$ less log/capistrano.log ログファイルの内容全て表示
$ tail log/capistrano.log 最新10行を表示