UbuntuでRails6+Nuxt+Nginx+MySQL8をインストールする手順
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ポートを許可しましょう。
- ブラウザから「VPSコントロールパネル」にログイン
- パケットフィルタ設定の「Web TCP 80/443」を許可
- ブラウザからIPアドレスでアクセスすると、Nginxのページが表示されるはずです
あとは、デプロイと細かい設定が必要ですが、インストール自体はこれで完了です。
Discussion