Railsチュートリアルを完走後はサイト作成に挑戦です
テキストではcloud9を用いてクラウド環境で学習してきましたが、実際の開発現場ではLinax環境で開発が行われるケースがほとんど。ということを解説動画でも言っていました。。
そこで、ここは多少苦労してでも自分で環境構築しようと決意しました。
いろんなところから情報かき集めて、結果的に分からないなりにうまくいったので、そこまでの軌跡を記録しておきます
CentOS上にRails環境を構築するということにトライしています
##開発環境##
- Mac + Vagrant
- CentOS7.8
- rbenv:1.1.2
- bundler:2.2.17
##Ruby , Railsのバージョン##
Railsチュートリアルの復習も含めてサイト作成に取り組むため、テキストに合わせて以下のバージョンで始められるように構築しております
- Ruby: 2.6.3
- Rails: 6.0.3
###1. Virtual Box と Vagrantをインストール###
「Linux」や「Virtual Box」や「Vagrant」が何なのかについてはここでは説明しませんが、Linax環境立ち上げるなら、まずそれぞれをインストールします
「Virtual Box」:Virtual Box公式サイト
「Vagrant」:Vagrant公式サイト
「Virtual Box」や「Vagrant」が何なのかは「こちら」でわかりやすい説明がありました
###2. centOS7.8のインストール###
ターミナルを開いて以下のコマンドを送信
$ vagrant box add bento/centos-7.8 --provider virtualbox
これで「centOS 7.8」が「bento/centos-7.8 」という名前でインストールされます
以前インストールしていた余計なcentOSのバージョンがあったらここで削除します
※余計なバージョンが既にインストールされている場合のみ
まずはどのバージョンがインストールされてるかチェックします
$ vagrant box list
ここでリストが表示されたら消しましょう
$ vagrant box remve 消したいバージョン
###3. MyVagrantディレクトリを作成###
TOPページにまずはMayVagrantフォルダを作成
$ mkdir MyVagrant
###4. MyVagrantに移動###
作成したフォルダに移動する
$ cd MyVagrant
###5. Vagrantfileを作成する###
MyVagrantファイル内にVagrantfileを作成します
$ vagrant init bento/centos-7.8
###6. FinderからVagrantfileを開いてipの設定###
作成したVagrantfileの中身を編集します
以下の階層にVagrantfileがあります
Finderを開く > ユーザー > user > MyVagrant
ファイルを開いて以下の部分を探して、「#」を消します。
上書き保存を忘れずに!!
ここの「#」を消してね
# config.vm.network "private_network", ip: "192.168.33.10"
###7. Vagrantを起動する###
ここでやっと仮想マシンとかいうものを起動させます
$ vagrant up
ターミナルで以下のコマンドを実行し、仮想マシンの状態を確認
$ vagrant status
これを入力して
「default running」
が表示されてたらOK
###8. 仮想マシンにログイン###
仮想マシンを立ち上げたので中に入っていきましょう
$ vagrant ssh
これで「ContOS」が入った仮想マシンに「vagrant」というユーザーでログインできました
一応ログアウトして仮想マシンを終了させるには
$ exit
$ vagrant halt
$ exit
これで、
「プロセスが完了しました」
が、表示されればOKです
###9. SELinuxを無効化する(環境開発ではトラブルの元になるため)###
余計なものになるらしいので以下を送信しておきます
$ sudo sed -i "s/(^SELINUX=).*/disabled/" /etc/selinux/config
###10. rbenvをインストールして、Rubyのバージョンを変更可能にする###
これからやっとRubyを入れる準備に入ります
まずはrbenv をインストールするために必要な yum パッケージを入れます
$ sudo yum install -y git gcc openssl-devel readline-devel zlib-devel sqlite-devel gcc-c++ libicu-devel cmake vim
ここからrbenvをインストールする
$ 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
これでインストールが完了したら、バージョンを確認してみる
$ rbenv -v
###11. ruby-buildプラグインを追加###
Rubyをインストールするための準備第2段階です
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
###12. Rubyをインストールする###
やっとRubyをインストールできるようになりましたので早速やっていきましょう
今回インストールしたいバージョンを「2.6.3」に指定しますのでコマンドはこうなります
$ rbenv install 2.6.3
そのままですね。数字の部分を変えれば自分のインストールしたいバージョンでインストールしてくれるそうです
###13. CentOS環境全体で使えるrubyのバージョンを指定###
CentOS環境で使用するRubyのデフォルトバージョンを決める
$ rbenv global 2.6.3
これで、特に指定しなかったら勝手にRubyのバージョン「2.6.3」が適用される
あとで、「いや!2.7を使いたいんだ!」ということであれば
$ rbenv local 2.7
とすればよい
###14. Rubyのバージョンや設定を反映###
Rubyに関する設定をしましたので反映させる
$ rbenv rehash
ちなみにこのコマンドはよく出てきます・・・
ここで無事にRubyのバージョン「2.6.3」が適用されたか確認しときます
$ ruby -v
###15. Bundlerのインストール###
Rubyのライブラリ管理ツールであるBundlerをインストールします
Rubyを使う上ではBundlerは絶対利用することになるのでインストール必須です!
$ gem install bundler
Rubyに関する設定を反映させる
$ rbenv rehash
Bundlerが適用されたかどうかを確認する
$ budle -v
###16. Ruby on Railsのインストール###
やっとここまできた・・・
まずはRubyドキュメントをインストールしないようにしてインストールの時間短縮する
$ echo "gem: --no-document" >> ~/.gemrc
バージョンを「6.0.3」に指定してRailsをインストールする
$ gem install rails -v 6.0.3
終わりましたら、無事に適用されているか一応確認します
$ rails -v
##そのほかの機能も追加する##
これで、目的であったRubyとRailsを目的のバージョンでインストールすることがが完了しました。
が、今のままではまだまだ足りてません。ここでは以下の機能を追加していきます
- Linux(CentOS)にMySQLをインストール
- yarnのインストール
###17. Linux(CentOS)にMySQLをインストール###
まずはCentOSに初めから入ってるデータベース(MariaDB)を削除する
$ sudo yum remove -y mariadb-libs
MySQLのリポジトリをインストール(CentOS7のデフォルトのリポジトリに「MySQL8.0」が存在しないため)
$ sudo yum localinstall -y https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
MySQLをインストールする
$ sudo yum install -y mysql-community-server
インストールしたSQLを起動する
まずは現時点の状態を確認
$ systemctl status mysqld
起動時:「Active: active (running)」
停止時:「Active: inactive (dead)」
これで停止状態だったら起動する
$ sudo systemctl start mysqld
起動したかどうかを再度確認
$ systemctl status mysqld
最後にSQLが自動で起動するように設定する
まずは現時点の状態を確認
$ systemctl is-enabled mysqld
「disabled(無効)」になっていた場合は、以下のコマンドを実行して有効にする
$ sudo systemctl enable mysqld
###18.yarnのインストール###
yarnをインストールするにはNode.jsを先にインストールする必要がある
まずはNode.jsのリポジトリを追加する
$ curl -sL https://rpm.nodesource.com/setup_8.x | sudo bash -
そのあと、Node.jsをインストールする
$ sudo yum install nodejs
一応バージョンを確認
$ node -v
yarnのインストールの準備ができたので、yarnのリポジトリを追加する
$ sudo curl –silent –location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
$ sudo rpm –import https://dl.yarnpkg.com/rpm/pubkey.gpg
yarnをインストールする
$ sudo yum install yarn
$ yarn -v