VagrantでRuby on Railsの開発環境を構築する手順

#環境
macOS 10.15.4

#Vagrantをインストール
Vagrantをホームページからインストールします。

<img width="1440" alt="スクリーンショット 2020-07-12 16.09.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587506/ff41c38c-6636-5a71-75d1-4a188c2412b7.png">
https://www.vagrantup.com

#Cent OSをインストール
まずはVagrantがインストールできているか確認をします。

```ruby:terminal
$ vagrant -v
Vagrant 2.2.9
```
ディレクトリを作成し、移動します。

```ruby:terminal
$ mkdir -p vagrant/centos7
$ cd vagrant
$ cd centos7
```

移動したディレクトリで下記のコマンドを実行します。

```ruby:terminal
$ vagrant init centos/7
```

インストール完了後、エディタを開き下記の1行をコメントアウトから外します。

```ruby:Vagrantfile
# config.vm.network "private_network", ip: "192.168.33.10"
```
<img width="1440" alt="スクリーンショット 2020-07-12 16.22.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587506/8c9560cb-e41e-3bef-aa71-b7aa33ec55f3.png">

下記のコマンドを実行し、少し待ちます...

```ruby:terminal
$ vagrant up
```

#CentOSにログイン
下記のコマンド実行しログインします。

```ruby:terminal
$ vagrant ssh
[vagrant@localhost ~]$  
```

# rbenv をインストール
yumパッケージを準備します。

```ruby:terminal
$ sudo yum install -y git gcc openssl-devel readline-devel zlib-devel sqlite-devel gcc-c++ libicu-devel cmake vim
```
rbenvをインストールします。

```ruby:terminal
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv    
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
```
インストールが完了しているかどうか確認をします。

```ruby:terminal
$ rbenv --version
rbenv 1.1.2-30-gc879cb0
```

# ruby-buildプラグインを追加
下記のコマンドを実行しruby-buildプラグインを追加します。

```ruby:terminal
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
```

# Rubyをインストール

Rubyをインストールします。

※余談ですがわたしが他者様のサイトを参照にしたときにバージョンが2.4でした。しかしRails5以上と現在主流のRailsのバージョンには2.5以上が必要になりますので、バージョン指定などに気をつけてください。

```ruby:terminal
$ rbenv install 2.7.1
$ rbenv global 2.7.1
$ rbenv rehash
$ ruby -v 
```
インストールの完了が確認できましたら次に進みます。

# Bundlerをインストール
Bundlerのインストールを行うため下記のコマンドを実行します。

```ruby:terminal
$ gem install bundler
$ rbenv rehash
$ bundle -v
Bundler version 2.1.4
```

#Ruby on Railsをインストール
インストールするためのディレクトリの作成と移動を行います。

```ruby:terminal
$ mkdir -p app/memo_app
$ cd app
$ cd memo_app
```
そしてインストールするためのコマンドを実行します。

```ruby:terminal
$ bundle init
$ sed -i 's/# gem "rails"/gem "rails", "~> 5.1.0"/g' Gemfile
$ bundle install --path vendor/bundler
$ bundle exec rails new .
$ sed -i "s/# gem 'therubyracer'/gem 'therubyracer'/g" Gemfile
$ bundle install

```
#サーバーを起動
下記のコマンドを実行し下記のアドレスにアクセスしてください。

```ruby:terminal
$ ./bin/rails s -b 0.0.0.0
```
http://192.168.33.10:3000/ 

<img width="1440" alt="スクリーンショット 2020-07-12 12.29.09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587506/dd2a9f77-4ed7-9a1e-79bb-8836f1df07cd.png">

これで手順は終了になります^_^

#(補足)シャットダウンとログイン/ログアウトについて
一度閉じてしまったときや再度開くときに必要になると思いますのでシャットダウンとログイン/ログアウトについても説明します。

**ログアウト**

```ruby:terminal
# CentOSからログアウトする場合のコマンド
$ exit
 
#CentOSをシャットダウンする場合のコマンド
$ vagrant halt
   
```
**ログイン**

```ruby:terminal
# Cent OSにログインする場合のコマンド
$ vagrant up
   
$ vagrant ssh
[vagrant@localhost ~]$
```

#Vagrantの開発環境でも高機能エディタ(VSCode)でアプリを作成できるようにする手順
Vagrantの仮想環境が構築されましたがこれを高機能エディタ(VSCode)でも作成や編集が行えるように接続する方法を解説していますので合わせてご覧ください^_^

https://qiita.com/chisaki0606/items/982f296389ffcb850994