0. 概要

開発環境が作れるツールとして XAMPP などがあるけど、構築した環境をまた壊すという事を繰り返えしたり
そもそも Windows ではない環境を作りたい、という時に便利な「Vagrant」という開発環境構築ツールがあります。
実際には、VirtualBox 上に作ることになるので、ゲスト作成時は多少OSに依存することになりますが
Vagrant 側のコマンドは同じなので、使い勝手が良いのではないかと思います。

ここでは「Vagrant」にNginx、PHP5.5(5.3)、MySQL、PostgreSQL、curl、ImageMagick などを同梱したBoxイメージ
「php5-nginx-vagrant-sample」を Windows 8.1 環境にインストールする方法を書いておきます。

1. 環境

今回は以下の構成で環境で構築しました。
なお、Vagrant-Berkshelf が非推奨になっていたので、こちらは使用せず進めていきます。
コマンドプロンプトでgitは使える状態、VirtualBox の PATH を通しておくなどは済ませておいてください。

  • Windows 8.1 Pro 64bit
  • Vagrant 1.5.1 (vagrant_1.5.1.msi)
  • VirtualBox 4.3.10 (VirtualBox-4.3.10-93012-Win.exe)
  • php5-nginx-vagrant-sample (Dec 02, 2013)

2. リポジトリのクローン

まずはコマンドプロンプトから php5-nginx-vagrant-sample リポジトリをクローンします。

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

php5-nginx-vagrant-sample フォルダに移動し、cookbook フォルダを作ります。

cd php5-nginx-vagrant-sample
mkdir cookbook

cookbook フォルダに移動し、本来 Berkshelf で指定されているリポジトリ3つをクローン。
php5_ppa はブランチが指定されているので、忘れないように指定しておきます。

git clone https://github.com/opscode-cookbooks/apt.git
git clone -b ondrej https://github.com/yandod/php5_ppa.git
git clone https://github.com/yandod/omusubi.git

3. Berkshelf 利用部分の変更と削除

php5-nginx-vagrant-sample フォルダに戻り、Vagrantfile を修正します。
修正内容としては、以下の通り Berkshelf 部分を削除して、cookbook を指定する必要があります。
PHP5.3 のままで良い場合は、versions で指定されている部分を削除し、ブランチを指定せずにインストールします。

PHP5.5/PHP5.3 共通
-config.berkshelf.enabled = true
– File.open(‘Berksfile’, ‘w’).write <<-EOS
– cookbook ‘apt’
– cookbook ‘php5_ppa’, git: “https://github.com/yandod/php5_ppa.git”, branch: “ondrej”
– cookbook ‘omusubi’, git: “https://github.com/yandod/omusubi.git”
– EOS
– config.vm.provision :chef_solo do |chef|
+ config.vm.provision :chef_solo do |chef|
+ chef.cookbooks_path = ‘./cookbooks’

※PHP5.3 をインストールする場合は、更に versions 部分と下記のブランチ指定の削除が必要。
– chef.add_recipe “php5_ppa::from_ondrej”
+ chef.add_recipe “php5_ppa”

4. 起動と Box イメージのインストール

以上が設定できたら、コマンドプロンプトで php5-nginx-vagrant-sample フォルダに移動し

vagrant up

を実行するとイメージのインストールが始まります。

複数回インストールする必要がある場合は、Vagrantfile で指定されている Box イメージをローカルに保存して
config.vm.box_url の部分を書き換えるか、VirtualBox 側で複製することで追加の環境が瞬時に作成できると思います。

5. nginx.conf の設定

php5-nginx-vagrant-sample では、nginx のデフォルト設定が生きているようなので
sandbox フォルダ内をそのまま動作させるには、ゲスト側で /etc/nginx/nginx.conf を編集する必要があります。

具体的には /etc/nginx/nginx.conf の最後にある

include /etc/nginx/site-enabled/*;

という行をコメントアウトします。
必要があれば、omusubi のレシピを編集して最初から sandbox フォルダが動くようにしても良いと思います。

以上でSandboxフォルダ内が http://localhost:8080/ で動く環境が出来ました。