VagrantでOSだけ入れても仕方が無いので、
サーバー建ててプログラム動かせたら良いなと思ってVagrantfileを探しました。
そしたら、丁寧な説明もついてて、PHPを覚える際に凄くお世話になった(動画で)
@yandodさんが公開してたのでこちらを使ってWindows7上に環境作ってみました。
README.mdと結構違う感じになってるので失敗してるのかもしれませんが、
Nginxは動いています・・・。
とりあえず、今日はインストールした段階として・・・今後、
README.md通りに動くまで何度かチャレンジしてみようと思います。
INDEX
始まりの環境
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の公式からダウンロードします。
下の方にDEVELOPMENT KITってのがあるので、どれかをダウンロードしてください。
僕は64版にしました。
それでこいつをインストールします。
ruby-devkitをインストール
c:\hogeとか分かりやすい場所に解凍してから、
hogeディレクトリまで降りて行った後に
ruby dk.rb init //Initialzation complete!みたいな文章が出たら ruby dk.rb install
ってやってインストールします。
ChefDKをインストール
BerkShelfをインストールする為にChefDKが必要だった気がします。
エラー全部取っといたりBMしたりしておけばよかったのですが、
かなりハマってイライラしてたのもあり、取ってませんでした。
書きながら履歴漁っておりますが、未だに飛び飛びになってます。
履歴にあったBERKSHELFのページがあるので
多分これ見たんだろうという事にしておきます。
インストールした後に環境変数の設定をします。
僕は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にアクセスすると
こうなります。
はんせい
多分いろいろやり方間違ってると思うので、
READMEに書いてあるような仕様になるまで機会を見て試します。なので続き書くかも知れません。
ChefDKとかRubyDEVKITのインストールとかで戸惑いましたが、覚えたら素晴らしい技術だと思いました。
始めてみたら、構築するだけで結構時間かかったので、学習しないとなーと思いました。