3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-03-12

※この記事は、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点記事を参考にして解決できました。

3
6
0

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
  3. You can use dark theme
What you can do with signing up
3
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?