INFRA

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']
end

vagrantを立ち上げます。

$ vagrant up

次にchefのセットをしていきます。 とりあえず、sshのconfigを設定しておきます。

$ vim ~/.ssh/config

Host 192.168.33.*
IdentityFile ~/.vagrant.d/insecure_private_key
User vagrant

chefのリポジトリをつくります。

$ 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をインストール