
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の公式からダウンロードします。
下の方に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のインストールとかで戸惑いましたが、覚えたら素晴らしい技術だと思いました。
始めてみたら、構築するだけで結構時間かかったので、学習しないとなーと思いました。




コメントを残す