vagrant + chefでcakePHP3の環境をつくる
Vagrantのcentos6.5.3に、php5.6、apache2.2、mysql5.6、phpmyadmin、vim、gitをchefで自動的に入れます。
macにvagrantはインストール済みであるものとします。 chefのknife-soloと、Berkshelfもインストール済みの状態とします。
作成した、Vagrantfile、chef-repoは、下記のgithubにpushしました。 https://github.com/endoyuta/vagrant_contos65_cakephp3/tree/php5.6
php5.6ブランチが、php5.6やphpmyadminがインストールできて、cakephp3をインストールした際に出たエラーなども若干対応したものになります。
まず、~/vagrant/test内に、新たにvagrantを立ち上げます。
$ cd ~/vagrant $ mkdir test $ cd test $ vagrant init
これで~/vagrant/test内に、Vagrantfileが作成されます。
BOXは、下記のCentOSの6.5.3を使います。 https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box
Vagrantfileを編集します。
$ vim Vagrantfile
# -*- mode: ruby -*-# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "centos6.5.3" config.vm.box_url = "https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box" config.vm.network "private_network", ip: "192.168.33.10" config.vm.synced_folder "./", "/vagrant", mount_options: ['dmode=777', 'fmode=666']endvagrantを立ち上げます。
$ vagrant up
次にchefのセットをしていきます。 とりあえず、sshのconfigを設定しておきます。
$ vim ~/.ssh/config
Host 192.168.33.* IdentityFile ~/.vagrant.d/insecure_private_key User vagrantchefのリポジトリをつくります。
$ knife solo init chef-repo
chef-soloをvagrantにインストールします。
$ cd chef-repo $ knife solo prepare 192.168.33.10
次に、Berkshelfを使って、cookbookを作ります。
$ vim Berksfile
<br?
site :opscode
cookbook 'mysql', '~> 5.3.6'cookbook 'vim'cookbook 'git'cookbook 'openssl'cookbookを作成します。
$ berks vendor site-cookbooks
phpと、httpd、phpmyadminについては、berkshelfだと中々上手くいきませんでした。phpは、5.3までならすんなり入りますし、httpdも勝手にインストールされます。httpdとphpmyadminはエラーが続いたのでberkshelfはやめました。代わりに、vargrant+chefでつくるPHP5.5+MySQL5.6+CakePHP3環境を参考に、baseとphp55とphp56というcookbookをつくりました。baseとphp55は参考サイトをほぼそのまま使わせてもらってます。
次に、jsonファイルを編集します。
$ vim nodes/192.168.33.10.json
{ "run_list": [ "recipe[base]", "recipe[php56]", "recipe[mysql::server]", "recipe[mysql::client]", "recipe[vim]", "recipe[git]", "recipe[openssl]" ], "automatic": { "ipaddress": "192.168.33.10" }, "mysql": { "version":"5.6", "port":"3306", "server_root_password":"vagrant", "remove_anonymous_users":true }, "httpd": { "port": "80", "docroot": "/var/www/app/webroot" }, "php": { "timezone": "Asia/Tokyo" }}chefを実行します。
$ knife solo cook 192.168.33.10
■参考 vargrant+chefでつくるPHP5.5+MySQL5.6+CakePHP3環境 Chef-Solo + Berkshelf で Rails 4 の開発環境を構築 chef-solo(knife)でMySQLサーバ5.6をインストールする 2014年度版 cakePHP3にチャレンジ! https://supermarket.chef.io/ CentOSにPHP5.6をインストール