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の編集
- FuelPHPのダウンロード、および解凍は不要なので削除
- example/fuelphpの存在有無によるチェックは使えないので削除
編集前
---
# 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>