CentOS 7とRails 5とMySQL 5.7で使う(1)

# 長めの前置き
日頃、業務ではWindows ServerとASP.NET MVC5でWEBサイトを構築しています。WEB系企業ではLinuxが主流だと思いますし、RubyやNodeでサンプルコードが記載されることも多いですよね。今まで避けて逃げてきたLinuxの学習をひと通り終えた(とりあえずLPIC2取得)ので、以前より興味のあったRailsを勉強することにしました。
インストール手順を調査しましたが、RubyやRailsの進化が早かったり、CentOS 6ベースの情報であったりで公開されている情報ではインストールの進行上、エラーに遭遇しました。
色々な記事を横断して参考にさせて頂きながら行ったインストールの方法を記事にいたします。
そして、この情報も陳腐化してしまうかもしれませんが、ご参考いただければと思います。

# 構成
いくつかの記事に分けたいと思います。
・CentOS 7にRubyやRails 5をインストールする。
・MySQLをインストールする。
・Rails 5でアプリを構築する。

# CentOS 7にRubyやRails 5をインストールする
まずCentOS 7を用意します。VirtualBoxの例が多いように思いますが、公開を想定しているので、ConoHaでやってみます。

1. CentOS 7のサーバーを追加します。
[こんな感じで。](https://www.conoha.jp/guide/addvps.php)

1. rootのSSHを禁止します。
本題に早く入りたいけど、このくらいはやっておきます！
私も早く本題を書きたい:robot:

    ```
# vi /etc/ssh/sshd_config
    ```

    ```:sshd_config
PermitRootLogin no　　　　# yesからnoへ。
    ```
1. railsユーザを作成します。
アプリはrailsユーザで動作させるようにします。

    ```
# useradd -p $(perl -e 'print crypt("Hoge123!", "\$6\$saltsalt")') rails
# usermod -aG wheel rails
    ```
1. Gitをインストールします。

    ```
# yum install -y git
    ```
1. rbenvをインストールします。
今回はシステムワイドインストールで進行します。
  1. Gitから取得します。

        ```
# git clone git://github.com/rbenv/rbenv.git /usr/local/src/rbenv
        ```
  1. パスを通して再読み込みします。

        ```
# echo 'export RBENV_ROOT="/usr/local/src/rbenv/"' >> /etc/profile.d/rbenv.sh　
# echo 'export PATH="${RBENV_ROOT}/bin:${PATH}"' >> /etc/profile.d/rbenv.sh
# echo 'eval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh
# cat /etc/profile.d/rbenv.sh
# . /etc/profile.d/rbenv.sh
        ```
  1. インストールされたか確認します。

        ```
# rbenv --version
rbenv 1.1.1-37-g1c772d5
        ```
  1. 他のユーザでも確認しておきます。
問題なし:thumbsup:

        ```
# su - rails
$ rbenv --version
rbenv 1.1.1-37-g1c772d5
$ exit
        ```
1. Rubyをインストールします。
Ruby on Railsなんで、Rubyがいなきゃ始まりません。というわけでRubyをインストールします。
  1. まずそもそもRubyのインストールに必要なパッケージからインストールします。
「下ごしらえ」の「下ごしらえ」です。

        ```
# yum install -y bzip2 openssl-devel readline-devel zlib-devel gcc
# git clone git://github.com/rbenv/ruby-build.git /usr/local/src/rbenv/plugins/ruby-build
# cd /usr/local/src/rbenv/plugins/ruby-build
# ./install.sh
        ```
  1. インストールするRubyのバージョンを決めます。
ここでは執筆時点で最新の2.5.1をインストールしてみます。

        ```
# rbenv install -l
Available versions:
          1.8.5-p52
          1.8.5-p113
              :
              :
          2.5.1
              :
              :
          ree-1.8.7-2012.02
          topaz-dev
        ```
  1. Ruby本体をインストールします。
私の場合、これから新規かつ個人で学習するので、ここでは執筆時点で最新の2.5.1をインストールしてみます。インストールには5分程度かかります。

        ```
# rbenv install 2.5.1
        ```
  1. 使用するRubyを指定します。

        ```
# rbenv global 2.5.1
        ```
  1. インストールされたか確認します。
問題なし:thumbsup:

        ```
# ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
# gem -v
2.7.6
        ```
1. Railsをインストールします。
  1. まずはgemを更新します。

        ```
# gem update --system
        ```
  1. Rails本体をインストールします。

        ```
# gem install -N rails
# gem install bundler
Overwrite the executable? [yN]  y
# rbenv rehash
        ```
ちなみに以下のコマンドがたくさん溢れていますが、Deprecatedです。

        ```
# gem install --no-ri --no-rdoc rails
        ```
  1. インストールされたか確認します。
  :thumbsup::thumbsup::thumbsup:

        ```
# rails -v
Rails 5.2.0
        ```

# 終わりに
最後までお読み頂き、ありがとうございます。初めてのQiita投稿が、初めてのRailsになってしまいました。次回はMySQLをとりあえずインストールしたいと思います。正直、すでに素晴らしい記事やブログがありますが、ひととおり実施したことを投稿したいと思います。