VirtualBox + Vagrant +Rails + Mysql で初心者が開発環境構築(Windows7)②

さて、前回の続きです。

前回は、無事にyumコマンドが使えるようになったところで終わりましたが、実はあの後トラブりまして・・・

スポンサーリンク
ピエロ広告ーレクタングル大

windowsがシャットダウンできないんだが・・・?

vagrant halt で停止させた後、windowsをシャットダウンしようとしたら、プログラムが閉じられていないので、シャットダウンを待機します、とのこと。

どうやら、VirtualBox interfaceが立ち上がったままらしい。

これは何ぞや・・・と思い調べてみるも、解決策は見つからず、一応似たような事例があったので、試してみるも、シャットダウンできず・・・

あれー、さっき停止したのになーと思い、何回か起動→停止を繰り返すも解決せず・・・

強制終了は嫌だなーと思っていたのですが、調べてもわからないので、もう知らん!!と思い、強制終了しました。

壊れたらまた最初から作り直せばいいやと思い、やってやりました、強制終了。

次の日どうなったかなーと恐る恐るパソコンを起動したのですが、vagrant up したところ、なにやらエラーが・・・

こ、これはまさか昨日の強制終了の影響か・・・?

と思い調べたら、yum updateした影響らしいです。

よかったーと思ったものの、またエラーか・・・と思い、開発用パッケージのインストールの前に、エラーの解決に向かったのでした。

vagrant up のエラー

吐かれたエラーは以下の通りで、調べたところ、どうやらホストとゲストの間のファイル共有が失敗している模様です。

Vagrant was unable to mount VirtualBox shared folders. This is usually
because the filesystem "vboxsf" is not available. This filesystem is
made available via the VirtualBox Guest Additions and kernel module.
Please verify that these guest additions are properly installed in the
guest. This is not a bug in Vagrant and is usually caused by a faulty
Vagrant box. For context, the command attempted was:

mount -t vboxsf -o uid=1000,gid=1000 vagrant /vagrant

The error output from the command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device

解決するには「vbox をリビルドする」という呪文を使えばいいらしいので、とりあえずやってみたところ、

$ sudo /etc/init.d/vboxadd setup

今度はこんな画面になりました。

[vagrant@localhost ~]$ sudo /etc/init.d/vboxadd setup
Removing existing VirtualBox non-DKMS kernel modules       [  OK  ]
Building the VirtualBox Guest Additions kernel modules
The gcc utility was not found. If the following module compilation fails then
this could be the reason and you should try installing it.

The headers for the current running kernel were not found. If the following
module compilation fails then this could be the reason.
The missing package can be probably installed with
yum install kernel-devel-2.6.32-504.8.1.el6.i686

Building the main Guest Additions module                   [FAILED]
(Look at /var/log/vboxadd-install.log to find out what went wrong)
Doing non-kernel setup of the Guest Additions              [  OK  ]

どうやら、この[FAILED]しているところを解決すればうまくいくらしいので、指示にある通り、カーネルさんをインストールしてみました。

そしてvagrantを再起動すると・・・

うまくいきましたー!!

実によかったです。

これでやっと、開発用パッケージのインストールに進めます。

rails関連パッケージのインストール②

参考サイト(Vagrant 1.8 + CentOS 7 + VirtualBox 5 + Ruby on Rails + Mysqlで開発環境構築)にあるように、「gcc」,「git」他大事そうなやつを入れ、「rbenv」、「Ruby」、「Rails」の順番にインストールしました。

いやー、ここら辺はスーパースムーズでしたね。

涙が出そうでした。

いままでのは何だったのかと思うほどスムーズで、逆に心配になるほどでしたね。

そんなわけでここはさくっとクリアして、Mysqlの設定に進めたのでした!

6.Mysqlの設定

これも上と同じようにやっていたのですが、

$ sudo mysql_secure_installation

とコマンドを入力したら、色々と確認を求められてテンパりました。

このコマンドを入力すると、DBに関する設定を変更できるそうで、

  • パスワード変更するかどうか
  • 匿名ユーザを削除するかどうか
  • root ユーザのリモートログインを禁止するかどうか
  • test データベースを削除するかどうか
  • 権限テーブルをリロードするかどうか

を聞かれます。

それぞれ、[Y/n]で答えていくと設定が完了します。

ちなみに私は、全部Yesにしておきました。

他には詰まるところはなく、無事にMysqlも設定できました!

いよいよ、大詰めです。

7.アプリの作成

さて、いよいよアプリの作成ですが、ここで注意しなきゃなと感じたところがあります。

それは、「rails new」するのはホストではなく仮想マシン上ってことです。

私は、ホストマシンで「rails new」して、共有フォルダにアプリを作ると思っていたんですが、仮想マシンの方の共有フォルダ(デフォルトだと「/vagrant」)にしなくてはいけないんですね。

なんで、「rails new」するのは仮想マシン上のターミナルでやることになるので、注意が必要だなーと思いました!

基本的に「vagrant」以外のコマンドは仮想マシン上で行うって考えておくとわかりやすいかもしれません。

そんなこんなで、「rails new」でサンプルアプリを作成して、http://localhost:3000/につないでみると・・・

無事に表示されましたー!!

いやー、長かったですが、ここまで来れてよかったです!

これで一安心なのです・・・

もし、表示されない、って方は、Vagrantfileを編集して仮想マシンの3000番ポートをホスト側の3000ポートに転送する設定をしているか、確認してみてくださいな!

まとめ

まー色々と書いてきましたが、結局何が言いたかったかというと、

一安心

ってことです。

やっとこれでスタートラインに立てたなぁと思いましたね。

若干もう満足感出てきちゃってますが、ここからがスタートなので、もう一度気持ちを強く持ちたいと思います。

次こそはすんなりデプロイできることを願って。

スポンサーリンク
ピエロ広告ーレクタングル大
ピエロ広告ーレクタングル大

フォローする