MacにVagrantでCentOS+FuelPHPの環境を作成する(その1. Vagrantfile(shell)で頑張る)
実施環境
- OS: OS X Yosemite (10.10.5)
- Vagrant: 1.7.4
- Virtualbox: 5.0.8 r103449
目標
Vagrantを使用して下記環境を構築する
今回のゴール
vagrant up
だけでFuelPHPのWelcomeが表示できるようにする
今回の成果物
こちらに置いてあります
negibouze/vagrant-fuelphp_part1
1. 各ツールの準備(インストール済みの場合不要)
step1. Homebrewをインストールする
ターミナルで下記を実行
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
step2. Homebrew Caskをインストールする
$ brew install caskroom/cask/brew-cask
step3. VirtualBoxをインストールする
$ brew cask install virtualbox
step4. Vagrantをインストールする
$ brew cask install vagrant
step5. Vagrant-vbguest pluginをインストールする
$ vagrant plugin install vagrant-vbguest
2. Vagrantfileの作成
step1. 対象ディレクトリ配下で下記を実行
$ vagrant init
3. Vagrantfileの編集
step1. vm.boxを設定
今回はpuppetlabsのCentOS 6.6(64-bit)を使用
!Puppetは使わないので「nocm」
config.vm.box = "puppetlabs/centos-6.6-64-nocm" # boxがない場合、インストール config.vm.box_url = "https://vagrantcloud.com/puppetlabs/boxes/centos-6.6-64-nocm/versions/1.0.2/providers/virtualbox.box"
step2. $scriptを追記
$script = <<SCRIPT # 詳細は後で追加 SCRIPT
step3. provisionを追記
config.vm.provision "shell", inline: $script
ここまででこんな感じ
$script = <<SCRIPT # 詳細は後で追加 SCRIPT Vagrant.configure(2) do |config| config.vm.box = "puppetlabs/centos-6.6-64-nocm" config.vm.box_url = "https://vagrantcloud.com/puppetlabs/boxes/centos-6.6-64-nocm/versions/1.0.2/providers/virtualbox.box" config.vm.define :"web1" do |host| host.vm.hostname = "web1" host.vm.network :private_network, ip: "192.168.100.11", netmask: "255.255.255.0" end config.vm.provision "shell", inline: $script end
4. $scriptに処理を追加
step1. Timezoneを変更
# timezone cp -p /usr/share/zoneinfo/Japan /etc/localtime
step2. iptablesを無効にする
# remove all rules /sbin/iptables -F # iptables stop /sbin/service iptables stop # iptables off /sbin/chkconfig iptables off
step3. httpd(apache)をインストールする
httpd.confは事前に用意しておく
!DocumentRoot とか編集しています
### apache install ### # install httpd yum install -y httpd # cp local httpd.conf cp -a /vagrant/httpd.conf /etc/httpd/conf/ # httpd restart /sbin/service httpd restart # enable launch settings /sbin/chkconfig httpd on
step4. Gitをインストールする(やらなくても良い)
!FuelPHPをgitで持ってくるのをやめたためこの手順は不要でした(ここは時間がかかるのでやらない方が良いです)
* 多少古くても良い場合
yum install -y git
- 最新版を入れる場合
### git install ### # install dependency packages (temporariy install old version git) yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker git cd /usr/local/src/ # download latest version git clone https://git.kernel.org/pub/scm/git/git.git # remove old version sudo yum remove -y git cd git # make make prefix=/usr/local all make prefix=/usr/local install
step5. PHP5.6をインストールする
### php5.6 install ### # install epel & remi sudo rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm # install php & packages (& dependencies) sudo yum install -y --enablerepo=remi --enablerepo=remi-php56 php php-common php-cli
step6. php.iniをコピーする
php.iniは事前に用意しておく
!date.timezone とか編集しています
# cp local php.ini cp -a /vagrant/php.ini /etc/
step7. curlを更新する(やらなくても良い)
### ref: update curl ### sudo rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-1-13.rhel6.noarch.rpm sudo yum install -y libcurl
step8. FuelPHPをインストールする
- gitプロトコルが使える場合はこちらでいけるかも
$ oil create <project_name>
### FuelPHP install ### # oil install curl get.fuelphp.com/oil | sh # create target directory sudo mkdir -p /srv/example # fuelphp1.7.3 download cd /usr/local/src sudo wget -O fuelphp-1.7.3.zip http://fuelphp.com/files/download/34 sudo unzip fuelphp-1.7.3.zip -d /srv/example cd /srv/example sudo mv fuelphp-1.7.3 fuelphp cd fuelphp sudo php oil refine install
step9. httpd(apache)を再起動する
# httpd restart sudo service httpd restart
5. 動作確認
step1. 仮想マシンを作成する
$ vagrant up
step2. 動作確認
ブラウザで「192.168.100.11」を開いて下記画面が表示されればOK