edo1z blog

プログラミングなどに関するブログです

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