Ruby
Rails
capistrano
vps

(初心者向け)vpsを契約して、Capistrano3でRailsアプリをデプロイするまで [その3 補足]

(初心者向け)vpsを契約して、capistrano3でRailsアプリをデプロイするまで その1 サーバー設定編 - Qiita
の補足です。

手順を実行すると各種エラーが出ることがあるかと思います。
その際の覚え書きとして、今回のデプロイを通して所持たエラーの回避について記します。

Permission denied エラー

サーバー、ローカルのどちらの作業でもpermission deniedというエラーログが表示されること多々あると思います。
コンピューターが言いたいことは一つ、お前権限ないけど!!ってことです。なのでその時は何も考えず、sudoを前につけて実行しましょう。
コマンドを管理者権限で実行することができます。

# ファイルを作成したいけど作れない!
$ mkdir hoge
Error xxxx Permission dinied!
# 管理者権限で実行
$ sudo mkdir hoge

毎回sudoを付けるのが面倒!!という時は「sudo chown ユーザー名 ファイル名orディレクトリ名」 でファイル、ディレクトリの所有者を設定できます。そうすれば、設定したユーザーで操作を行う際は、sudoを付ける必要がなくなります。ただ、こちらセキュリティ的にあれな時あるので注意してください。
なお、あるディレクトリ以下のディレクトリ、ファイルを再帰的に権限を設定したい場合は-Rのオプションをつけます。

# fugaディレクトリにhogeを所有者として設定
$ sudo chown hoge fuga
# fugaディレクトリ以下、すべてのファイルの所有者をhogeに設定
$ sudo chown -R hoge fuga

ssh接続でWARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!が出た時

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

私も作り直して接続して、、、を繰り返している内に上記が出てしまい接続不可となりました。
その場合は、known_hostsの設定削除を行えば良いらしいです。

# known_hostsの更新
$ ssh-keygen -R [conohaのipアドレス]

より詳細については以下記事が分かりやすかったです。
SSH接続エラー回避方法:.ssh/known_hostsから特定のホストを削除する/削除しないで対処する3つの方法 - Qiita

unicornが再起動しない

capistranoでデプロイが成功してもunicornが再起動しない場合があります。
その場合は、サーバーにて手動でプロセスを削除後、再度capistrano deployを行いましょう。

プロセスの確認

bash
$ ps -ef | grep unicorn
unityro+  8575     1  0 17:18 ?        00:00:01 unicorn_rails master -c config/unicorn.rb -E production -D
unityro+  8579  8575  0 17:18 ?        00:00:00 unicorn_rails worker[0] -c config/unicorn.rb -E production -D
unityro+  8582  8575  0 17:18 ?        00:00:00 unicorn_rails color=auto unicorn

プロセスIDを確認後(上記の場合は8575、8579)それをkill

bash
# 上記の場合は$ kill -QUIT 8575
$ kill -QUIT [PID]

以下記事参考にさせて頂きました。

unicornの起動と終了 - naichi’s lab