CentOS7にRuby on Rails5をインストールする

### はじめに

最近使いはじめたRuby on Rails。
導入方法毎回忘れるのでメモです。

---

### 環境

OS CentOS 7.3
Ruby 2.3
Rails 5.0.1
DB MySQL Community 5.6

---

### 下準備

まずはRuby2.3をインストールするために色々準備

CentOS SCLリポジトリ登録

```
yum install centos-release-scl-rh centos-release-scl
```

Remiリポジトリ登録

```
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7.rpm
```

---

### Ruby 2.3インストール

Ruby2.3をインストール。
ここでついでにRuby develもインストールしておきます。

```
yum --enablerepo=centos-sclo-rh install rh-ruby23  
yum --enablerepo=centos-sclo-rh install rh-ruby23-ruby-devel
```

確認

```
scl enable rh-ruby23 bash
ruby -v
>ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
```

インストールできてるっぽいですね。
んで、ログインのたびに上のコマンド入力するのは流石にだるいので、

```/etc/profile.d/rh-ruby23.sh 
#!/bin/bash

source /opt/rh/rh-ruby23/enable
export X_SCLS="`scl enable rh-ruby23 'echo $X_SCLS'`"
```

profile.dに追加しておきます。
そしたら

```
reboot
ruby -v
```

で、ちゃんと表示されるか確認します。
表示されたらRubyのインストールは完了です。

---

### MySQLのインストール

[ここ](https://dev.mysql.com/downloads/repo/yum/)からCentOS7用のrpmファイルを取得します。

```
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
rpm -Uvh mysql57-community-release-el7-9.noarch.rpm
```

手順的にはさっきと似てますね。
出来たらファイルを少し変更します。

```/etc/yum.repos.d/mysql-community.repo
# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/
enabled=1 #0を1へ変更
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=0 #1を0へ変更
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
```

こうすることによってデフォルトでインストールされるMySQLを5.7から5.6へ変更します。
変更したら

```
yum install mysql-community-server mysql-community-devel
```

MySQLをインストールします。サーバーだけでなくクライアントも一緒にインストールされます。
完了したら

```
systemctl start mysqld
systemctl enable mysqld
mysql_secure_installation
```
MySQLを起動させ、自動起動を設定し、忘れずにmysql_secure_installationを実行します。
ぜんぶ終わったら

```
mysql -u root -p
```

で、しっかり設定したパスワードで接続できるか検証しましょう。
これでMySQLはセットアップ完了です。

---

### Rails5のインストール

最後にRails5をインストールします。

```
yum --enablerepo=epel,centos-sclo-rh install nodejs gcc make libxml2 libxml2-devel zlib-devel libxslt-devel 
```

必要なものは揃ったので

```
gem install bundler
gem install nokogiri -- --use-system-libraries
gem install rails --no-ri --no-rdoc
rails -v 
>Rails 5.0.1
```

完了です。
動作確認もしましょう。

サンプルプロジェクトの作成

```
rails new <プロジェクト名> -d mysql
cd <プロジェクト名>/
```

データベースの設定

``` <プロジェクト名>/config/database.config
default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: <適宜作成したユーザー>
  password: <作成したユーザーのパスワード>
  socket: /var/lib/mysql/mysql.sock
```

DB作成&テストページ作成

```
rails db:create
rails generate scaffold <ページ名> name:string title:string body:text
rails db:migrate
rails server --binding=0.0.0.0
```
ちなみこのページ名は単数系で。
ここまで来たら

`http://<サーバーのIP>:3000` へアクセスしてみて下さい。
なんか人がわちゃわちゃしながら｢いぇい!｣ってやってたら完了です。

---

### 参考URL

[CentOS 7 : Ruby on Rails 5 ： Server World](https://www.server-world.info/query?os=CentOS_7&p=rails5)
[CentOS 7 : Ruby 2.3 インストール ： Server World](https://www.server-world.info/query?os=CentOS_7&p=ruby23)
[CentOS 7 : 初期設定 : リポジトリ追加 ： Server World](https://www.server-world.info/query?os=CentOS_7&p=initial_conf&f=6)

ほぼ同じ内容ですがMariaDBではなくMySQLを使ってます。
あと、リポジトリの優先度設定等端折ってます。