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/ で動く環境が出来ました。