📝

UbuntuでRails6+Nuxt+Nginx+MySQL8をインストールする手順

2021/06/14に公開

VPS(Ubuntu 20.04)でRailsとNuxtを起動する機会があったので、インストール手順をメモしておきます。
インストール時、必要なパッケージがないよ!エラーを防ぐために、上から順番に行うことをオススメします!

MySQL8をインストール

sudo apt-get install -y mysql-server mysql-client

インストールされたバージョンを確認。

mysql --version

インストール後、自動で起動しているはずなので、起動を確認。

sudo service mysql status

rootユーザーの初期設定をします。

sudo mysql_secure_installation

以下の4つを聞かれます。yes or noで答える質問は、全てyesで問題ありません。

  • rootパスワードの長さ(3段階)をどうするか(0 or 1 or 2)
  • rootパスワードの入力
  • rootログインをリモートで禁止するか(yes or no)
  • テストユーザー・DBを削除するか(yes or no)

MySQLにログインします。

sudo mysql -u root -p

Rails用のユーザーの作成します。

CREATE USER '追加するユーザー名'@'localhost' IDENTIFIED BY '追加するユーザーのパスワード';

ユーザ一覧コマンドで追加されたか確認。

select user,host from mysql.user;

追加したユーザーに全権限を付与します。

GRANT all ON *.* TO '追加したユーザー名'@'localhost';

権限確認コマンドで全権限が付与されたか確認。

SHOW GRANTS FOR '追加したユーザー名'@'localhost';

Rubyをインストール

Rubyに必要なパッケージをインストールします。

sudo apt update
sudo apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libdb-dev default-libmysqlclient-dev npm

Ruby本体をインストールする前に、Rubyに必要な以下の2つをインストールします。

  • Rubyのバージョン管理ツールのrbenv
  • rbenvのinstallコマンドを実行するために必要なrbenvのプラグインruby-build
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build

rbenvインストール後、home/ubuntu/.bashrcにパスを通します。

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
alias sudo="sudo PATH=$PATH"

最後のalias sudo="sudo PATH=$PATH"は、Railsのcredentialsコマンドを実行するのに必要になります。

sourceコマンドで編集した.bashrcを実行し、有効にします。

source /home/ubuntu/.bashrc

Ruby本体をインストールします。今回は、2.7.1をインストール。

rbenv install 2.7.1

システム全体で使うRubyバージョンを設定します。

rbenv global 2.7.1

正常にインストールされたか確認。

ruby -v

yarnとNode.jsをインストール

Nuxtを実行する環境にするため、yarnとNode.jsをインストールします。
ちなみにNode.jsはNuxtだけでなく、Railsも6以降から必要になったので、Railsインストール前に行います。

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install -y yarn

Node.jsをインストールし、最新バージョンを指定します。

sudo npm install -g n
sudo n stable

シェルの再起動コマンドを実行して適用。

exec $SHELL -l

これでNuxtが実行できる環境になりました。

Rails6をインストール

今回は6.0.3.7をインストール。

gem install rails -v '6.0.3.7'

正常にインストールされたか確認。

rails -v

Nginxをインストール

sudo apt-get install -y nginx

Nginxログの書き込み権限を許可するため、/var/log/nginx/runディレクトリの所有者をrootからubuntuユーザーに変更します。

sudo chown -R ubuntu:ubuntu /var/log/nginx
sudo chown -R ubuntu:ubuntu /run

インストール後、自動で起動しているはずなので、ステータスを確認。

systemctl status nginx

さくらのVPSの場合、パケットフィルタ設定で80ポートを許可しましょう。

  1. ブラウザから「VPSコントロールパネル」にログイン
  2. パケットフィルタ設定の「Web TCP 80/443」を許可
  3. ブラウザからIPアドレスでアクセスすると、Nginxのページが表示されるはずです

あとは、デプロイと細かい設定が必要ですが、インストール自体はこれで完了です。

Discussion