2014年3月18日火曜日

ローカル開発環境でWebサーバを立ち上げ

タイトル通り、ローカル開発環境でWebサーバを立ち上げたかったので検索してオススメと書いてあったvagrantを使って立ち上げてみました。

vagrantはいわゆる仮想環境構築ツールです。
Rubyで書かれていて、すぐに使える開発環境を構築するのにかなり便利なツールとなっています。
以下から、実際に立ち上げてみます。
ここで、Vagrantは仮想環境構築ツールであり、仮想化用ソフトは別に必要です。今回はoracleのVirtualboxを使いました。

下の公式サイトのリンクからVagrantをインストールしてください。また、Virtualboxをインストールしていなければ、それもインストールしてください。
Vagrant
Virtualbox

今回はvagrantのバージョンは1.5.1
Virtualboxのバージョンは4.3.12です
次に、仮想マシンのイメージファイルを所得します。
今回は公式サイトのGetting Startedと同様に行います。
このhashicorp/precise32というのは、ubuntu12.04の32bitです。

$ vagrant init hashicorp/precise32
すると、このコマンドを入れた時のdirectory上にVagrantfileというものが生成されます。
このVagrantfileには、作る仮想環境の設定が記述されています。
つまり、このVagrantfileがあれば、どんな環境でも同じ仮想環境が作れるということです。
ここがVagrantを使う利点の一つです。
今回は、先にも述べたとおりvagrantが公式に提供している、ubuntu12.04の32bitの仮想環境が作られるVagrantfileが作られます。
他のVagrantfileを使うと、他のOS(CentOS,FreeBSDなど)を使用することもできます。
次に

$ vagrant up
をVagrantfileがあるdirectoryで入力します。
すると、仮想マシンのイメージファイルなどがダウンロードされ、その仮想環境が立ち上がります。
これで、仮想環境の作成は終了です。
二回目以降は、イメージファイルはダウンロードされずに仮想環境が立ち上がります。
この開発環境にsshしたい時には

$ vagrant ssh

この開発環境を終了したい時には

$ vagrant halt

この開発環境を削除したい時には

$ vagrant destroy

です。


webサーバを立ち上げるには、先のVagrantfileを編集します。
Vagrantfileを編集する前に、仮想環境を立ち上げていれば、終了してください。
終了させた後に、Vagrantfileの中身を編集します。 Vagrantfileの

#   config.vm.network "private_network", ip: "192.168.33.10"
というようにこの行がコメントアウトされていると思います。
この行のコメントアウトを解除して、保存してください。
そうして、

$ vagrant up
すると設定は完了です。
今回は、pythonのSimpleHTTPServerを使いWebサーバを立ち上げてみます。
本当に立ち上がっているか確認するために、index.htmlなどを作成して確認してみましょう。

$ vagrant ssh
$ mkdir web
$ touch index.html
$ echo hello >> index.html
これでwebというdirectoryの中にhelloという書いてあるindex.htmlが作られました。
次に、IDアドレスを確認します。

$ ifconfig
でeth1のinet addrを確認しましょう。
多分、先にコメントアウトを解除した192.168.33.10と書いてあると思います。
最後に、

$ python -m SimpleHTTPServer
とすることでWebサーバが立ち上がります。
ポートは8000番になっているはず…!
それでは最後にブラウザから確認してみましょう。
ブラウザで192.168.33.10:8000と入力してください。
helloと出ると思います。
これで、Webサーバの立ち上げの完了です。


何度もvagrant haltやvagrant upをしていると、

$ default: Error: Connection refused. Retrying...
が永遠と出続けることがあります。
これは、強制終了などが起こり、リカバリーモードなどが起動した時に起こります。(実際にぼくも起こりました。)
この時は、VagrantfileのvirtualboxのGUIを起動させ、正しい起動をさせることで起こらなくなります。
virtualboxのGUIは

#   config.vm.provider "virtualbox" do |vb|

#   vb.gui = true

#   vb.customize ["modifyvm", :id, "--memory", "1024"]

#   end
という4つのコードのコメントアウトを解除することで起動します。
困ったら試してみてください。

(この最後をメモとして残しておきたかった)

さんこうさいとさま
http://knowledge.sakura.ad.jp/tech/1552/
http://dev.classmethod.jp/server-side/virtual-box-vagrant/

0 件のコメント:

コメントを投稿