#◇記事の概要
こちらの記事は、環境構築する際にドキュメントを探しにいくのが面倒なので、個人的な備忘録として残したものです。
※必要最低限の設定
##その1: Vagrantfileの設定
※vagrant及びvirtualboxがインストールされている前提とします。
まずは、ターミナルを開く。
vagrantfileを置きたいフォルダで以下のコマンドを叩く
$ vagrant init centos/7
フォルダ上にvagrantfileが作成される。
その「Vagrantfile」を修正します。
修正内容は必要最低限の内容になります。
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.network "private_network", ip: "192.168.33.10"
end
##その2:vagrantの起動
vagrantを起動して、ssh接続します。
$ vagrant up
起動後、、
$ vagrant ssh
これで、こんな感じのターミナルが表示される
[vagrant@localhost ~]$
これで一旦vagrant上の作業環境ができた。
##その3:rubyのインストール関連
必要なパッケージをインストールする。
[vagrant@localhost ~]$ sudo yum install -y git gcc openssl-devel readline-devel zlib-devel sqlite-devel gcc-c++ libicu-devel cmake vim
次に、rbenvをインストールします。環境変数を追加し、「source ~/.bash_profile」で内容を反映させます。
[vagrant@localhost ~]$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
[vagrant@localhost ~]$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
[vagrant@localhost ~]$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
[vagrant@localhost ~]$ source ~/.bash_profile
rbenv --versionと打って、バージョンが表示されれば、OK!
次に、「ruby-build」というプラグインをインストールします。
これは、rbenv installコマンドを使用するために必要なので、下記コマンドを入力します。
[vagrant@localhost ~]$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
次に、rubyをインストールします。
注意:個人的な都合で、こちらのバージョンを指定しています。
[vagrant@localhost ~]$ rbenv install 2.6.3
[vagrant@localhost ~]$ rbenv global 2.6.3
[vagrant@localhost ~]$ rbenv rehash
ruby -vと打って、バージョンが表示されれば、OK!
最後に、gem同士の互換性を補完するなど、gemを管理してくれる「bundler」をインストールします。
[vagrant@localhost ~]$ gem install bundler
[vagrant@localhost ~]$ rbenv rehash
bundle -v と打って、バージョンが表示されれば、OK!
##その4:git clone作業(必要な場合のみ)
今回は、sshを使用して既存のコードをクローンしてきました。
[vagrant@localhost ~]$ cd ~/.ssh
[vagrant@localhost ~]$ ssh-keygen -t rsa
[vagrant@localhost ~]$ sudo cat id_rsa.pub
これで公開鍵・秘密鍵ができます。
公開鍵をgit(今回はbitbucket)に登録し、クローンしました!
##その5:Mysql8.0の導入
ここからmysql8.0を使えるようにしていきます。
[vagrant@localhost ~]$ sudo yum install mysql80-community-release-el7-{version-number}.noarch.rpm
[vagrant@localhost ~]$ sudo yum install mysql-community-server
[vagrant@localhost ~]$ sudo systemctl start mysqld
[vagrant@localhost ~]$ sudo grep 'temporary password' /var/log/mysqld.log // 一時的に設定されているパスワードを確認
[vagrant@localhost ~]$ mysql -uroot -p //上記で確認したパスワードを使用
[mysql]$ ALTER USER 'root'@'localhost' IDENTIFIED BY 'ここに新パスワード'; //パスワード変更
[mysql]$ quit;
// bundle installするとmysql関連でエラー出るので、それを回避するために以下のプラグイン等をインストールする
[vagrant@localhost ~]$ sudo yum install mysql-devel
[vagrant@localhost ~]$ gem install mysql2 -v '0.4.10' --source 'https://rubygems.org/' // ここはクローンしてきたgemに含まれていなかったので。。。
[vagrant@localhost ~]$ bundle install
mysqlを使用できるようになるまであと少し。
何が足りないかというと、「database.yml」の設定です。
設定しないと、「rails s」してアクセスするとエラーが出るはず!
参考までに設定ファイル載せておきます。
ファイル設置場所は、app名/config/database.yml
default: &default
adapter: mysql2
pool: 5
username: root
password: 設定したパスワード
encoding: utf8mb4
charset: utf8mb4
collation: utf8mb4_general_ci
host: localhost
development:
<<: *default
database: 開発用DB名
test:
<<: *default
database: テスト用DB名
username: テスト用ユーザー名
password: テスト用パスワード
production:
<<: *default
database: 本番用DB名
username: 本番用ユーザー名
password: 本番用パスワード
database.ymlを設定し下記コマンドを入力すると、「database.yml」で設定したdatabaseが作成される。
[vagrant@localhost app名]$ rails db:create
テスト用・本番用は必要に応じて設定。
##その6:「rails s」を起動
bundle installもうまくいくはずなので、rails sを行ったところ、以下のエラーが発生。
※一部抜粋
Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
というエラー内容。
Javascriptを実行するために必要なプログラムが必要とのこと。
解決策としては、
①「mini_racer」のgemをインストール
②「Node.js」をインストール
前の環境ではNode.jsを利用していたので、②の手順を示します。
// 投稿時点のバージョン
[vagrant@localhost ~]$ curl -sL https://rpm.nodesource.com/setup_15.x | sudo bash -
[vagrant@localhost ~]$ sudo yum install -y nodejs
これで、rails sも実行可能に。