PHP開発日記:3度目の仮想環境
今回からは開発日記という形で、大層なことはないですがその日やったことを書いていきたいと思います。
まず新しく開発をするにあたって、例によって仮想環境を用意します。
前回の構築の際に1つメモを忘れていたエラーがあったのですが、今回もそれに当たりました。せっかくなので忘れないように書いておきます。
手順としては、
- 開発で使う仮想マシンのためのフォルダを作成
- PowerShellで「vagrant init bento/centos-6.8」を実行、Vagrantの設定ファイルを作成
- 使用するIPを設定、上書き保存
- PowerShellで「Vagrant Up」を実行
- 「/sbin/mount.vboxsf: mounting failed with the error: No such device」が発生
- 仮想マシンのホストとゲストのバージョンがずれていると推測し、「vagrant plugin install vagrant-vbguest」をPowerShellで実行。プラグインをインストール。
- インストールが終わったら「vagrant vbguest」を実行。これでプラグインが適用されるはず
- 再度「Vagrant up」したが、また「/sbin/mount.vboxsf: mounting failed with the error: No such device」が発生
手順8まできたところです。PowerShellを遡って読んでいくと、
The distribution packages containing the headers are probably:
kernel-devel kernel-devel-2.6.32-642.el6.x86_64
modprobe vboxguest failed
こんな文章を見つけました。前回はこの「kernel-devel kernel-devel-2.6.32-642.el6.x86_64」について調べたら仮想環境の構築がうまくいった覚えがあります。
検索して見つけた以下のコマンドを実行。
sudo yum install http://vault.centos.org/6.4/cr/x86_64/Packages/kernel-devel-2.6.32-431.el6.x86_64.rpm
exit
「vagrant ssh」で仮想マシンにログインし、その次のコマンドで不足していたものをインストール。終わったらexitで仮想マシンからログアウト。自分のPCの再起動も必要だと読んだので、「vagrant halt」で仮想マシンをOFFに。その後自分のPCを再起動。それでも同じエラーが出てダメだった。
他にコマンドがないかを調べたところ、以下のブログを発見。
この記事の追記部分を参考にして「vagrant ssh」からの「yum install update kernel kernel-devel」を実行しようとしたら、「You need to be root to perform this command.」というエラーでできなかった。このゲストは管理者権限を持っていないからコマンドの実行ができないとのこと。
ならばならば、「su -」と入力して管理者としてログイン(要パスワード)。このとき、コマンドプロンプトでコマンドの前に付く「$」が「#」になれば管理者としてログインできているとのこと。
この状態で「yum install update kernel kernel-devel」を実行したらいろいろとインストールされた。これはいける!と思い、「exit(管理者権限を終了して一般ゲストへ)」からの「exit(一般ゲストでもログアウトしてホストOSへ)」を実行、そして「vagrant reload」。するとエラーも発生せず、仮想マシンの起動が正常に終了した。
ここまで長かったが、前回までの構築よりはスムーズにいった…。
あとはPuTTYでこのマシンへ入り、ドットインストールのスクリプトで環境構築を行う。
//OSアップデート
sudo yum -y update
//スクリプト入手のため、gitをインストール
sudo yum -y install git
//gitを使ってアプリケーション設定用スクリプトをダウンロード
git clone https://github.com/dotinstalleres/centos6.git
//centosフォルダへ移動
cd centos
//スクリプト実行
./run.sh
//設定反映
exec $shell -l
これでやっと仮想環境の設定が完了。今度からはこのページを見ながらしよう…。