Vagrantを使ってFuelPHP開発環境を構築

2015-02-04

こんにちは、mi2yo4です。
ここの所ずっと喉の痛みが取れず、風邪だと思っていたんですがどうも違ったようです。
耳鼻科に行って薬を貰ったら、あら不思議。痛みが消えて今までの不調が嘘のように無くなりました。もっと早くにかかっていれば良かったなぁと思ったのでした。

どこでも変わらない開発環境を手に入れたい

さてさて、本格的に社内でもFuelPHPを使った開発が始まろうとしているので、FuelPHP環境を私も構築しようと思います。

と、ここでハタと考えました。

社内では開発環境にWindowsを使用しています。
がワタクシ、プライベートではOS XとLinux(ubuntu)を使用しています。

そうするとWindowsとOS X/LinuxではFuelPHP開発環境の構築方法が違ったりするんですね。両方をメンテナンスするのはとても骨が折れる作業となってしまいます。
それに、OS Xに標準で付いているapache環境はLinuxのものと比較してconfファイルの設置場所等の癖が強く、一筋縄では行きません。この作業の前に少しやってみたのですが、思いのほかつまずくポイントが多く、環境を整えるだけで力が尽きそうになりました。
(OS X環境はレールの上に乗っている場合は楽なんですが、ひとたびレールから外れるような事をしようとすると、とても要らぬ苦労をしてしまいますね)

最近のトレンドとしてホストPCの中に仮想マシン環境を作り出し、仮想環境の中で開発作業をする、という事があります。
なるほど、特に本運用ではLinuxなどのUnixライクなサーバOSで動作させる事が殆どです。ホストPCがWindowsでもOS Xでもubuntuでも、サーバOSと同等の仮想環境を作り出してそこで作業をしてしまえば、全ての用事が事足りるというのがとても魅力的です。

…今回はこの方法でやってみますか!

Vagrantのインストール

とは言え、何も知らない状態から開発環境を構築するのは骨の折れる仕事です。先人が色々と情報を残しているので、それらを上手く使って各ソフトをインストールしましょう。

殆どQiitaに情報があったので、それを元に作業を行います。

Mac 上で Vagrant を使って CentOS に FuelPHP をセットアップ
Vagrant体験入門ハンズオン手順
まずは上記を参考にVagrant(仮想マシンの作成や環境構築、仮想マシンの破棄までを自動化するツール)とVirtualBox(x86仮想化ソフトウェア・パッケージ)をインストールします。バージョンは記載のものよりも新しいバージョンがあるので、迷わずそれをインストールします。

  config.vm.provision "shell", inline: <<-EOT
    #
    # iptables off
    #
    /sbin/iptables -F
    /sbin/service iptables stop
    /sbin/chkconfig iptables off
    #
    # Apache
    #
    yum -y install httpd
    /sbin/service httpd restart
    /sbin/chkconfig httpd on
  EOT

一つ注意点として上記のようなprovisionパートを記述すると思いますが、inlineの後のコロン(:)を忘れないようにします。デフォルトのVagrantfileではこのコロンが記述しておらず、syntax errorとなる場合がありました。

PHP,Composerのインストール

Mac 上で Vagrant を使って CentOS に FuelPHP をセットアップ
上記を参考に仮想マシンOSとしてCentOSをインストールします。
インストール作業が終了したら、PHPとComposerをインストールするため、仮想マシン環境にログインします。

(追記)
Windows環境では標準でsshが入っていませんのでsshクライアントを使う必要があります。
WindowsでVagrantの環境構築を参考にすると良いです。

$ vagrant ssh

ログイン後、いよいよphpとComposerのインストールです。

$ yum -y install php
$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer

FuelPHPのインストール

そしていよいよFuelPHPのインストールです。下記の情報を参考にしています。
FuelPHP 1.7.2のComposerによるインストール

どうせならcomposerでパッケージを一元管理したいと考えてこのようにしています。
(まだ少し分からない部分が色々とあるので、追記していきたいですね)

/vagrantディレクトリは親マシンとの共有ディレクトリとなっているようなので、ここにファイルを置いておくとファイル転送の手間が省けます。
今回はここにFuelPHPをインストールします。

$ cd /vagrant
$ mkdir work
$ cd work
$ composer create-project fuel/fuel:dev-1.7/master fuelphp_prj

httpd.confその他ファイルの編集

標準では/var/www/htmlがDocumentRootとなっています。今回は先ほど設定したfuelphp_prjディレクトリ内のpublicディレクトリをDocumentRootとします。
/etc/httpd/httpd.confを編集します。

DocumentRoot "/vagrant/work/fuelphp_prj/public"

次にPHPのタイムゾーンを設定しておかないと怒られるので、/etc/php.iniを編集します。

date.timezone = Asia/Tokyo

最後にFuelPHPでのタイムゾーン設定が必要となります。これもAsia/Tokyoを設定しておきます。

$ cd fuelphp_prj
$ vi fuel/app/config/config.php

無事に表示できました

そして、冒頭のスクリーンショットのような画面が表示されれば成功です。お疲れさまでした。
今回はCentOSをインストール後、vagrant sshを用いて仮想マシンにログインし、環境構築を行いました。

しかしvagrantの魅力は環境構築(プロビジョニング)を自動化できる事です。今回は色々とコマンド入力していたため、その実力の半分も使っていませんでした。
今回の手順についてある程度自動化できそうな気がするので、折を見てVagrantfileのカスタマイズを行いプロビジョニング自動化を進めたいですね。

それではまた〜。