【環境構築】Vagrantでnginxをインストールして動かした

Vagrant
VagrantでOSだけ入れても仕方が無いので、
サーバー建ててプログラム動かせたら良いなと思ってVagrantfileを探しました。
そしたら、丁寧な説明もついてて、PHPを覚える際に凄くお世話になった(動画で)
@yandodさんが公開してたのでこちらを使ってWindows7上に環境作ってみました。
README.mdと結構違う感じになってるので失敗してるのかもしれませんが、
Nginxは動いています・・・。

とりあえず、今日はインストールした段階として・・・今後、
README.md通りに動くまで何度かチャレンジしてみようと思います。

始まりの環境

VirtualBox 4.3.12r
Vagrant 1.65
Ruby 2.0.0p353
DEVELOPMENT KIT なし
chef なし
git 1.8.3

GithubにてVagrantfileを手に入れる

まずはVagrantfileを手に入れます。
リポジトリごとダウンロードしても良いですけど、
一度Github見たい人用にリンク貼っておきます。
ここがリポジトリです

リポジトリをクローンするなら

git clone git://github.com/yandod/php5-nginx-vagrant-sample.git

こうやります。

この後に、Berkshelfのプラグインを入れるとありますが、
僕は環境が整ってなかったのでこの後エラー連発しました。

Vagrant upでエラー

Berkshelf::BerksfileNotFoundってエラーが出て、検索してみると、
Berkshelfをgemとvagrantで両方入れないとダメそうな感じだったので、
Berkshelfをgemで入れようと思ったらまたエラーが出ました。

Please update your PATH to include build tools or download the DevKit
見たいな奴が出た気がします。これはまずいのでDevKitとやらをRubyの公式からダウンロードします。

Downloadsrrr

下の方にDEVELOPMENT KITってのがあるので、どれかをダウンロードしてください。
僕は64版にしました。

それでこいつをインストールします。

ruby-devkitをインストール

c:\hogeとか分かりやすい場所に解凍してから、
hogeディレクトリまで降りて行った後に

ruby dk.rb init
//Initialzation complete!みたいな文章が出たら
ruby dk.rb install

ってやってインストールします。

ChefDKをインストール

BerkShelfをインストールする為にChefDKが必要だった気がします。
エラー全部取っといたりBMしたりしておけばよかったのですが、
かなりハマってイライラしてたのもあり、取ってませんでした。
書きながら履歴漁っておりますが、未だに飛び飛びになってます。

履歴にあったBERKSHELFのページがあるので
多分これ見たんだろうという事にしておきます。

ChefDKはこのページからダウンロードします。
chefdkkkkdebian

インストールした後に環境変数の設定をします。
僕はc:\opscode\chefdk\bin
に設定しました。

環境変数へはシステムのプロパティ→右下の設定変更→システムのプロパティ→詳細設定タブの中の下の環境変数で行けます。
正しく設定ができたなら

chef -v

ってコマンドが通るはずです。

berkshelfをインストール

ここでようやくberkshelfがインストールできた気がします。
chef-dkへパスを通して無いとエラーが出ます。
RuntimeError: Couldn’t determine Berks version windows
確かこんな奴がでてたきがします。

gem install berkshelf

でインストールして下さい。
その後にVagrantにberkshelfのプラグインを入れます。

vagrant plugin install vagrant-berkshelf

待望のvagrant up

このままやると、Berkshelf::BerksError: Berks command Failed:が出るので、
Berksfileの先頭にエラーメッセージに出たsources "URL"を追加します。
Vagrantfileで自動的にBerksfileが追加される場合はVagrantfileに追加します。

//Berksfile

    source 'https://supermarket.getchef.com'
    cookbook 'apt'
    cookbook 'hoge', git: "url"
    cookbook 'moge', git: "url"
//Vagrantfile

  File.open('Berksfile', 'w').write <<-EOS

    source 'https://supermarket.getchef.com'
    cookbook 'apt'
    cookbook 'hoge', git: "url"
    cookbook 'moge', git: "url"
  EOS

これでVagrant Upが通りました。

SSH でアクセス

localhostのポート2222でアクセスして
ID:vagrant PW:vagrantでSSHできます。

ポートはvagrantfileで変更できます。
SSHのポートは変更できるか分かりません><。


  config.vm.network :forwarded_port, guest: 80, host: 8080
 ↓
 config.vm.network :forwarded_port, guest: 443, host: 8443

nginx Helloworld

この状態だと、localhostに繋いでもエラーだったので
/etc/nginx/sites-available
ここに行って

server {

        listen   443; //ここにゲストポートを設定
        #listen   [::]:80 default ipv6only=on; ## listen for ipv6

        root /usr/share/nginx/www;
        index index.html index.htm;

        # Make site accessible from https://localhost/
        server_name localhost;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to index.html
                try_files $uri $uri/ /index.html;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }

        location /doc/ {
                alias /usr/share/doc/;
                autoindex on;
                allow 127.0.0.1;
                deny all;
        }


//・・・・・

listenのところをコメントアウト解除してゲストポートに設定します。
そうしたところで

service nginx restart

とやります。

リスタートしてから、localhost:8443にアクセスすると
nginxsamplerrr
こうなります。

はんせい

多分いろいろやり方間違ってると思うので、
READMEに書いてあるような仕様になるまで機会を見て試します。なので続き書くかも知れません。
ChefDKとかRubyDEVKITのインストールとかで戸惑いましたが、覚えたら素晴らしい技術だと思いました。
始めてみたら、構築するだけで結構時間かかったので、学習しないとなーと思いました。

後日続き書きました。

スポンサーリンク

この記事が気に入ったら
フォローしよう

最新情報をお届けします

おすすめの記事