MacにVagrantでCentOS+FuelPHPの環境を作成する(その4(おまけ). ローカルのFuelPHPを使う)
CentOS側でFuelPHPをダウンロード(インストール)すると編集するのが面倒なので、ローカルに用意したFuelPHPを使う
ディレクトリ構成等はその3で作成したものをベースにする
実施環境
- OS: OS X Yosemite (10.10.5)
- Vagrant: 1.7.4
- Virtualbox: 5.0.10 r104061
- Ansible: 1.9.4
今回のゴール
ローカルのFuelPHPに加えた変更がVagrant側に反映される
今回の成果物
こちらに置いてあります
negibouze/vagrant-fuelphp_part4
1. ローカルにFuelPHPを用意する
今回は公式サイトからダウンロードしたzipをVagrantfileと同じ階層に展開
また、ディレクトリ名を「fuelphp-1.7.3」から「fuelphp」に変更
2. Vagrantfileを編集する
step1. ローカルのFuelPHPを同期させる
下記2行を追加
host.vm.synced_folder ".", "/vagrant" host.vm.synced_folder "./fuelphp", "/srv/example/fuelphp", mount_options: ['dmode=777','fmode=666']
編集前
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 "ansible" do |ansible| ansible.playbook = "provisioning/site.yml" ansible.inventory_path = "provisioning/hosts" ansible.limit = 'all' end end
編集後
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" host.vm.synced_folder ".", "/vagrant" host.vm.synced_folder "./fuelphp", "/srv/example/fuelphp", mount_options: ['dmode=777','fmode=666'] end config.vm.provision "ansible" do |ansible| ansible.playbook = "provisioning/site.yml" ansible.inventory_path = "provisioning/hosts" ansible.limit = 'all' end end
3. AnsibleのPlaybookを編集する
step1. webtier/tasks/fuelphp.ymlの編集
編集前
--- # install FuelPHP - stat: path=/usr/local/src/fuelphp-1.7.3.zip register: fuelphp_zip - name: download fuelphp1.7.3 get_url: url=http://fuelphp.com/files/download/34 dest=/usr/local/src/fuelphp-1.7.3.zip when: not fuelphp_zip.stat.exists - stat: path=/srv/example/fuelphp register: fuelphp - name: create target directory command: mkdir -p /srv/example - name: unzip fuelphp command: unzip -o /usr/local/src/fuelphp-1.7.3.zip -d /srv/example when: not fuelphp.stat.exists - name: rename unzip directory command: mv fuelphp-1.7.3 fuelphp args: chdir: /srv/example/ when: not fuelphp.stat.exists - name: install oil shell: get.fuelphp.com/oil | sh when: not fuelphp.stat.exists - name: refine install command: php oil refine install args: chdir: /srv/example/fuelphp notify: restart httpd when: not fuelphp.stat.exists
編集後
--- # install FuelPHP - name: create target directory command: mkdir -p /srv/example - name: install oil shell: get.fuelphp.com/oil | sh - name: refine install command: php oil refine install args: chdir: /srv/example/fuelphp notify: restart httpd
4. 動作確認
step1. 仮想マシンを作成する
$ vagrant up
step2. 動作確認(編集前)
ブラウザで「192.168.100.11」を開いて下記画面が表示されればOK
step3. ローカルのFuelPHPを編集する
試しにfuelphp/fuel/app/views/welcome/index.phpを適当に編集
編集前
<div class="jumbotron"> <h1>Welcome!</h1> <p>You have successfully installed the FuelPHP Framework.</p> <p><a class="btn btn-primary btn-lg" href="http://docs.fuelphp.com">Read the Docs</a></p> </div>
編集後
<div class="jumbotron"> <h1>ようこそ!</h1> <p>あなたはFuelPHPフレームワークのインストールに成功しました。</p> <p><a class="btn btn-primary btn-lg" href="http://docs.fuelphp.com">ドキュメントを読む</a></p> </div>
step4. 動作確認(編集後)
ブラウザを更新して下記画面が表示されればOK