主に備忘録

基本的には自分用の備忘録っぽいもの。

MacにVagrantでCentOS+FuelPHPの環境を作成する(その4(おまけ). ローカルのFuelPHPを使う)

CentOS側でFuelPHPをダウンロード(インストール)すると編集するのが面倒なので、ローカルに用意したFuelPHPを使う
ディレクトリ構成等はその3で作成したものをベースにする

実施環境

今回のゴール

ローカルの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
f:id:ita3y:20151123194535p:plain

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 f:id:ita3y:20151128000540p:plain