最近、少しずつさわっているVagrantでFuelPHPが動くようにするまでにしたことを。
バージョン情報
・Vagrant(1.3.5)
・Chef(11.8)
Vagrant+Chefのインストールのでインストールは以下のサイトを参考にしました。
とりあえずVagrantの立ち上げ
box を http://www.vagrantbox.es/からダウンロードして任意のディレクトリでinitします。
box を http://www.vagrantbox.es/からダウンロードして任意のディレクトリでinitします。
$ vagrant box centos64-minimal http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130731.box $ mkdir fuelphp $ cd fuelphp $ vagrant init centos64
initで生成されたVagrantfileにとりあえずプライベートIPの設定をしておきます。
$ vi Vagrantfile VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "centos64-minimal" config.vm.network :private_network, ip: "192.168.33.10" end
これで vagrant up します。
正常に動いたらvagrant sshでつながることを確認しておきます。
(Windowsの場合は Tera Term とかで192.168.33.10に接続できればok)
次にapache、php、mysqlのインストールをするためにrecipeを作ります。
recipeを全部書いていたら長くなりそうなので簡単に作ったものをgithubに。
設定していることは
・apacheのドキュメントルートを/var/www/html から /vagrant/public に変更
くらいです。
(FuelPHPのディレクトリ構成上、publicがウェブのルートになるので)
それを使ってrecipeを実行します。
これでapache、php、mysqlのインストールが完了。
http://192.168.33.10/にアクセスしてページが表示されればOK。
phpinfo()などを実行するとPHPがインストールできていることも確認できます。
さて、本題のFuelPHP。
これもrecipeを使って・・・としたかったんですがまだそこまではできていないです。
とりあえずFuelPHPをダウンロードしてきてVagrantfileがあるディレクトリに展開します。
あとは、vagrant ssh でゲストOSにログインしていつもの手順どおり
php composer.phar update や php oil refine install を実行すると画面が立ち上がります。
このプロジェクトをgitなどでバージョン管理して開発メンバーで共有するとメンバー間での環境の違いで悩まされなくなります。
(.vagrantはバージョン管理から除外した方がいいみたい)
Vagrant + Windows の環境ではこれで問題なく動きますが
Vagrant + Mac で開発する場合は、権限関係で動かないところがあるようで
app/tmpやapp/logsなど、php oil refine installで権限を変更している箇所を0777などにしておかないと動かないみたい。
やり方が間違っているのかもしれないけど何かいい方法がないか模索中・・・。
$ vagrant up Bringing machine 'default' p with 'virtualbox' provider... [default] Clearing any previously set forwarded ports... [defualt] Creating shared folders metadata... [default] Clearing any previously set network interfaces... [default] Preparing network interfaces based on configuration... [default] Forwarding posts... [defualt] -- 22 => 2222 (adapter 1) [default] Booting VM... [default] Waiting for machine to boot. This may take a few minutes... [default] Machine booted and ready! [default] Configuring and enabling network interfaces... [default] Mounting shared folders... [default] -- /vagrant
正常に動いたらvagrant sshでつながることを確認しておきます。
(Windowsの場合は Tera Term とかで192.168.33.10に接続できればok)
次にapache、php、mysqlのインストールをするためにrecipeを作ります。
$ mkdir cookbooks $ cd cookbooks $ git clone https://github.com/hayashida/httpd-php.git $ git clone https://github.com/hayashida/mysql-server.git
recipeを全部書いていたら長くなりそうなので簡単に作ったものをgithubに。
設定していることは
・apacheのドキュメントルートを/var/www/html から /vagrant/public に変更
くらいです。
(FuelPHPのディレクトリ構成上、publicがウェブのルートになるので)
それを使ってrecipeを実行します。
$ cd .. $ vi Vagrantfile VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.box = "centos64-minimal" config.vm.network :private_network, ip: "192.168.33.10" config.vm.provision :chef_solo do |chef| chef.cookbooks_path = "./cookbooks" chef.add_recipe "httpd-php" chef.add_recipe "mysql-server" end end $ vagrant reload $ vagrant provision
これでapache、php、mysqlのインストールが完了。
http://192.168.33.10/にアクセスしてページが表示されればOK。
phpinfo()などを実行するとPHPがインストールできていることも確認できます。
$ touch ./public/phpinfo.php $ vi ./public/phpinfo.php <?php phpinfo();
さて、本題のFuelPHP。
これもrecipeを使って・・・としたかったんですがまだそこまではできていないです。
とりあえずFuelPHPをダウンロードしてきてVagrantfileがあるディレクトリに展開します。
fuelphp + .vagrant + cookbooks + docs + fuel + public + CHANGELOG.md + composer.json + composer.phar + CONTRIBUTING.md + LICENSE.md + oil + README.md + TESTING.md + Vagrantfile
あとは、vagrant ssh でゲストOSにログインしていつもの手順どおり
php composer.phar update や php oil refine install を実行すると画面が立ち上がります。
このプロジェクトをgitなどでバージョン管理して開発メンバーで共有するとメンバー間での環境の違いで悩まされなくなります。
(.vagrantはバージョン管理から除外した方がいいみたい)
Vagrant + Windows の環境ではこれで問題なく動きますが
Vagrant + Mac で開発する場合は、権限関係で動かないところがあるようで
app/tmpやapp/logsなど、php oil refine installで権限を変更している箇所を0777などにしておかないと動かないみたい。
やり方が間違っているのかもしれないけど何かいい方法がないか模索中・・・。