LoginSignup
6

More than 5 years have passed since last update.

posted at

updated at

Windows10にVagrant + Virtualbox + CentOS7でRails の開発環境を構築する

※この記事は、2016年8月に他のブログで書いた記事をQiitaに移行したものです。


Ruby on Rails4アプリケーションプログラミング という本で、Ruby on Railsの勉強を始めました。

その際に、WindowsにRailsの仮想開発環境を構築した際の手順です。

  • Vagrant upに失敗する
  • Railsのインストールでエラーが出る

などの問題で躓きましたが、最終的には構築できました。

1. Windows10に仮想環境を整える

Windows上でVirtualBox+Vagrant+CentOSによる仮想環境構築

こちらの記事を参考にしました。

ただ、「Vagrant upができない」という問題でつまづきました。

Windows10+Vagrant+Virtualboxが動かない

Windows10+Vagrantに、最新のVirtualboxだと動かないという問題があるようです。

私の場合、Virtualboxを5.0.10に戻したら動きました。

2. CentOS7にRuby, SQLite, Node.js, Railsをインストールする

最初は、CentOS6.7でやろうとした のですが、

gemでrailsをインストールしようとした際に、「Rubyのバージョンを1.9.3以上にしてください」という旨のエラーが出ました。

CentOS6.7のyumでRuby1.9.3以上をインストールするのは面倒くさそう なので、

私はCentOS7にしてやりました。

CentOSの言語設定がドイツ語になっていたので、日本語にしてみる

[vagrant@localhost ~]$ localectl status
   System Locale: LANG=de_DE.eucjp
       VC Keymap: de
      X11 Layout: de
[vagrant@localhost ~]$ sudo localectl set-locale LANG=ja_JP.utf8

参考サイト : VagrantからダウンロードしたCentOSのイメージを使ったらドイツ語になったので英語にする

Rubyのインストール

[vagrant@localhost ~]$ sudo yum -y install ruby
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
パッケージ ruby-2.0.0.598-25.el7_1.x86_64 はインストール済みか最新バージョンです
何もしません

と出た。CentOS7のVagrant用Boxだと、最初からRubyが入っているのか?

[vagrant@localhost ~]$ ruby -v
ruby 2.0.0p598 (2014-11-13) [x86_64-linux]

確認してみると、確かに入っている。

SQLiteのインストール

「Ruby on Rails 4 アプリケーションプログラミング」の本では、データベースにSQLiteを使うので。

[vagrant@localhost ~]$ sqlite3 -version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668

こちらもインストール済みのようだ。

Node.jsのインストール

Railsでアプリケーションを動作させるには、あらかじめNode.jsをインストールしておく必要がある。

[vagrant@localhost ~]$ sudo yum -y install epel-release
[vagrant@localhost ~]$ sudo yum -y install nodejs npm

参考サイト : CentOS7 node.jsのインストールメモ - Qiita

Ruby on Railsのインストール

[vagrant@localhost ~]$ gem install rails
Fetching: i18n-0.7.0.gem (100%)
Successfully installed i18n-0.7.0
Fetching: thread_safe-0.3.5.gem (100%)
Successfully installed thread_safe-0.3.5
Fetching: tzinfo-1.2.2.gem (100%)
Successfully installed tzinfo-1.2.2
Fetching: minitest-5.9.0.gem (100%)
Successfully installed minitest-5.9.0
Fetching: activesupport-4.2.6.gem (100%)
Successfully installed activesupport-4.2.6
Fetching: rack-1.6.4.gem (100%)
Successfully installed rack-1.6.4
Fetching: rack-test-0.6.3.gem (100%)
Successfully installed rack-test-0.6.3
Fetching: mini_portile2-2.1.0.gem (100%)
Successfully installed mini_portile2-2.1.0
Fetching: pkg-config-1.1.7.gem (100%)
Successfully installed pkg-config-1.1.7
Fetching: nokogiri-1.6.8.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing rails:
        ERROR: Failed to build gem native extension.

    /usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /usr/share/include/ruby.h


Gem files will remain installed in /home/vagrant/.gem/ruby/gems/nokogiri-1.6.8 for inspection.
Results logged to /home/vagrant/.gem/ruby/gems/nokogiri-1.6.8/ext/nokogiri/gem_make.out

エラーが起きた。ruby-develをインストールすると解決するようだ。

[vagrant@localhost ~]$ $ sudo yum -y install ruby-devel

参考サイト "mkmf.rb can't find header files for ruby"の対応 - Qiita

あらためて、Railsをインストールする。

[vagrant@localhost ~]$ gem install rails
[vagrant@localhost ~]$ rails -v
Rails 4.2.6

無事インストールできた。

追記

WEBrick起動後に、ホストOSのブラウザからゲストOSのhttp://localhost:3000/にアクセスできませんでした。

原因は、

  • CentOS7からFirewallの設定が違う
  • rails4.2から、WEBrickが仮想マシンからのみアクセスを許可するようになった

ことでした。

下記2点記事を参考にして解決できました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
6