スポンサーリンク

vagrantでcentos7.2-Rails(1)

http://qiita.com/SanoHiroshi/items/892a8516f4a6445e1e05

の通りに。

Windows 8.1 Pro
VirtualBox 5.0.14
Vagrant 1.8.1
bento/centos-7.2
Ruby 2.3.0
Rails 4.2.2

●ここから開始。コマンドプロンプトで、

cd /

mkdir vm

cd C:vm

mkdir centos-rails

cd centos-rails

vagrant init bento/centos-7.2

http://qiita.com/SanoHiroshi/items/892a8516f4a6445e1e05#vagrant%E3%81%AE%E7%AB%8B%E3%81%A1%E4%B8%8A%E3%81%92

にしたがって、

Vagrantファイルをテキストエディタで開き、

以下のように変更。ただし、//ここの・・・ は書き込まない。

image

vagrant up

TeraTermで、

127.0.0.1 Port 2222

でSSHで、vagrant , vagrant でログイン。

image

●共有フォルダ

ホストOS(windows8.1)の、Vagrantファイルがあるフォルダ
(今回では、c:vmcentos-rails)

と、

ゲストOS(Centos7.2)の、/vagrant フォルダ

が共有されている。

例)今回の例では、

ホストOS(CentOS)に、TeraTermでログインして、

cd /vagrant

vi test.txt

で、i を押して、test2 と書き込み、「Esc」wq!「Enter」とすると、

ゲストOS(Windows8.1)のc:vmcentos-rails フォルダに、text.txtが

表示されて、メモ帳でも閲覧、変更できる。

引き続き、

http://qiita.com/SanoHiroshi/items/892a8516f4a6445e1e05#vagrant%E3%81%AE%E7%AB%8B%E3%81%A1%E4%B8%8A%E3%81%92

にしたがってやっていく。

●Git, Ruby, Railsのインストール

SSHとかGitとか、いまいち、ほとんどわからないのだが、SSHはvagrantが使える時点で入っているらしい。Gitは、Rubyをインストールするのに必要だし、今後、BitBucketや、Herokuを使う必要が出てきたときにも必要。

TeraTerm(CentOS7.2)で、
$ sudo yum -y install kernel-devel
$ sudo yum -y install gcc make
$ sudo yum -y install update
$ sudo yum -y install gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf automake libtool bison git

image

git –version すると、私の場合は、なぜか、

git version 1.8.3.1

と出た。(Version2より下だけどいいのかな?わからん。)

とりあえず、

http://qiita.com/SanoHiroshi/items/892a8516f4a6445e1e05#rubyrails%E3%81%9D%E3%81%AE%E4%BB%96%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB

の通りに、Rubyをインストール。

$ rbenv install 2.3.0; rbenv rehash

のところでかなり待つ。10分以上かも、、、

image

その後、途中で、(Railsチュートリアルにあわせるため、)

gem install rails -v 4.2.2

を行った。この後も、ものすごく時間がかかる。

image

●Mysqlのインストールと設定

http://qiita.com/SanoHiroshi/items/892a8516f4a6445e1e05#mysql%E3%81%AE%E8%A8%AD%E5%AE%9A%E4%BB%AE%E6%83%B3%E3%83%9E%E3%82%B7%E3%83%B3%E5%81%B4

の通りに。

image

rails s -b 0.0.0.0

してから、ブラウザで、

localhost:3000

に接続すると、

image

エラー、がっくし。

なお、Gemfileに、

gem ‘mysql2’

はしっかり入っている。。。わからん。。。

bundle update

bundle install

してから、もう一度、

rails s -b 0.0.0.0

やっぱり駄目。同じエラー。

—————-

http://qiita.com/shizuma/items/0f9660d5d46a0012eb9e

を見ると、以下のようにすれば解決するのか?のか?

image

bundle update

image

してから、もう一度、

rails s -b 0.0.0.0

そして、ブラウザで、

localhost:3000

を見てみると、うまくいった。

image

ここまで4時間くらい。。。これをVagrantBoxで保存したい。。。

—————-

●databaseにsqlite3を使用する場合(Vagrant, TeraTerm)

image

Gemfileを編集してから、「bundle install」すると、なんかRubygemにつながらないとかエラーが出る。

http://qiita.com/roki1801/items/1665709a66ceb94987ea

Vagrant
上のRailsプロジェクトでbundle installするとrubygems.orgでエラー

roki1801が2015/03/06に投稿

によると、コマンドプロンプト上で、

vagrant reload

して、Vagrantを再起動すると、動くようになる。しかし、TeerTermでもう一度、bundle install すると、さらに、sqlite-develがどうのこうの言われて、その通りにやると、さらにエラーが出るので、エラーの指示の通りに、

yum -y install sqlite-devel

gem install sqlite3 -v ‘1.3.9’

このあと、

rails s -b 0.0.0.0

すると、またエラーが出る。

http://qiita.com/pugiemonn/items/11a2bc8403e5947a8f13

rails server で There was an error while trying to load the gem ‘uglifier’.と言われる解決方法。

pugiemonnが2015/12/17に投稿(2016/03/15に編集)

を見ながら、Gemfileに、

gem 'therubyracer', platforms: :ruby

image

を加えて、bundle installしてから、

rails s -b 0.0.0.0

で、Windowsのブラウザで、http://localhost:3000 で、Rails4の最初の画面が出る。

image

(参考:config/database.yml)

image

●このときのvagrant boxイメージを保存する。

http://blog.sims625.com/vagrant%E3%81%A7%E3%82%AA%E3%83%AA%E3%82%B8%E3%83%8A%E3%83%ABbox%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B/

を参考に。

VirtualBoxを起動し、現在起動しているVMの名前を確認してから、

vagrant package –base [VM名] –output [出力box名]

vagrant package –base "centos-rails_default_1460817053069_12134" –output CentOS72rails002.box

現在起動しているvmが自動的にshutdownされて、Exporting VM… と表示がでて、しばらく待つ。

私の場合は、c:/vm/centos-rails/ の中に、

CentOS72rails002.box

という、約600MBのファイルが作成された。

—————-

●最初の画面の作成

http://qiita.com/SanoHiroshi/items/892a8516f4a6445e1e05#%E6%9C%80%E5%88%9D%E3%81%AE%E7%94%BB%E9%9D%A2%E3%81%AE%E4%BD%9C%E6%88%90

の通りにやってみる。

image

image

image

rails s -b 0.0.0.0

そして、ブラウザで、

localhost:3000

で、無事、以下の画面になった。

image

スポンサーリンク