読者です 読者をやめる 読者になる 読者になる

Develop and Design Note

フロントエンドなデザイナーの覚書

Vagrantを使って仮想サーバーを作ってみた

Vagrant 効率化

巷で話題の「Vagrant」を使った仮想サーバーを構築してみました。

XAMPPから乗り換え

これまでは、PHPの使える環境が欲しくて、XAMPPを使っていました。
XAMPPをインストールすれば、自分のPCをサーバーと化し、ApacheMySQLPHPPerlが使える状態になるので、とても便利です。

ただ、ターミナルの操作に慣れてくると、XAMPPを立ち上げて、ボタンを押して、サーバーを起動、というGUIツールの操作がめんどくさくなってきます。
そこで、今回はVagrantを使って、仮想サーバーを立ち上げてみました。

仮想サーバー構築手順

厳密には、Virtual Boxで仮想化した環境を、Vagrantを使って、OSやサーバー、PHPなどのプラットフォームをインストールし、仮想サーバーを作ります。
要するに、Vagrantは仮想環境を操作するツールで、仮想化そのものはVirtual Boxが担当します。

Vagrantの概要に関する資料はこちらです。

Vagrantで仮想サーバーを構築する手順の資料はこちらです。

大まかな流れはこんな感じです。

手順 コマンド
1 VirtualBoxVagrantのインストール  
2 box(仮想マシンのテンプレート)のインストール ※1 vagrant box add hoge boxの配布元URL
3 仮想マシン用のディレクトリを作成して、そこに移動 mkdir fuga
cd fuga
4 仮想マシンの初期化・起動 vagrant init hoge
vagrant up
5 仮想マシンにアクセス vagrant ssh
6 サーバー、PHPのインストール sudo yum -y install httpd
sudo yum -y install php
7 サーバーの起動 sudo service httpd start
8 再起動してもWebサーバーを有効にする sudo chkconfig httpd
on
9 ファイアウォールを無効にする sudo service iptables stop
sudo chkconfig iptables off
10 Vagrantからログアウト exit
11 Vagrantfileの「# config.vm.network :provide_network, ip: "192.168.33.10"」の#を削除  
12 仮想マシンを再起動 vagrant reload
13 ブラウザで「192.168.33.10」にアクセス  

※1 「box」はVagrantで使える、仮想マシンのテンプレートです。
これをインストールすることで、瞬時に仮想マシンの環境を揃えることができます。

boxを探す際は、有志の方が作成したboxリストから見つけると良さそうです。

今回はLinuxディストリビューションの「CentOS6.5」を使います。
正直、boxがいろいろあって、どれにしたら良いのかよくわかなかったのですが、「Provider」が「Virtual Box」で、CentOSの比較的新しいバージョンなら問題なさそうです。


一応、上記手順で、仮想サーバーは完成です。
ちなみに、仮想マシン1つに、1つのディレクトリが必要とのこと。

共有フォルダの作成

このままだと、仮想サーバーにいちいち「vagrant ssh」でアクセスしないと、仮想サーバー内のファイルを編集することができません。
そこで、エディターなどでファイルを編集したら、それが即、仮想サーバーに反映されるように、
仮想サーバーのルートディレクトリと、Vagrantfileファイルのあるディレクトリ(今回は「fuga」)にシンボリックリンクを割り当てます。
fugaディレクトリに移動して、以下コマンドを実行します。

vagrant ssh
sudo rm -rf /var/www/html
sudo ln -fs /vagrant /var/www/html
exit

ここまでやればXAMPPと同じ状態ですね。

仮想サーバーの操作

この状態になれば、最低限以下の操作ができれば、仮想サーバーを開発環境として十分使えるようになります。

仮想サーバーの操作 コマンド
状態確認 vagrant status
スリープ vagrant suspend
スリープから復帰 vagrant resume
終了 vagrant halt
起動 vagrant up
再起動 vagrant reload
仮想サーバー削除 vagrant destroy

あとは、プロジェクトフォルダ(今回は「fuga」)に、自由にindex.phpなど格納して、開発していきましょう。