サーバー構築から Nginx + Unicorn でRails アプリケーションを本番環境で立ち上げる

初めてサーバー構築からRails アプリケーションのデプロイまでを経験しました。
また同じ様な作業をする時の為の備忘録として作業内容を纏めます。

新規でRailsプロジェクト作成

gem install rails -v 7.0.2.3
rails _7.0.2.3_ new project_name -d mysql -B
gem i -v 7.0.2.3 rails
# 使いたいgemを適当に入れてから
bundle
# database.ymlで開発環境のpasswordを設定してから。しないと以下のエラーでる。
> Access denied for user ‘root’@’localhost’ (using password: NO)
rake db:create

今回は、新規でRailsプロジェクト作成・RailsのWelcomeページを開発環境で確認出来たら、すぐに本番環境でも見えるようにサーバー構築の作業をしました。

余談:Rails7はWelcomeページが変わってた。

サーバー購入 ~ git clone まで

さくらでサーバーを購入しました。スペックはこんな感じ。

サーバープラン
仮想コア:2 / メモリ:2GB
ディスク
アーカイブ選択:centos の最新版

ディスクの修正
管理ユーザーパス:pass
ホスト名:project_name
スタートアップスクリプト:shell

サーバーの情報
名前:project_name
説明:project_name

ssh root ログインしてユーザーを作成します。

ssh root@IP_address
# rootでログイン成功
useradd user_name
su user_name

公開鍵認証の設定をしていきます。

# 鍵をローカルで作る。
cd .ssh/
mkdir project_name
cd project_name
# パスフレーズは面倒なので未入力。本当はあった方がいいと思う。
ssh-keygen -t rsa -b 4096

# 公開鍵をリモートサーバーへ転送して登録
ssh-copy-id -i ~/.ssh/project_name/id_rsa.pub user_name@IP_address

# ssh ユーザーログイン
ssh -i ~/.ssh/project_name/id_rsa user_name@IP_address

上記のやり方だとtypoとかも防げるのでいい感じです。