Phalconの開発環境をvagrant-centos6-phpを使い構築する
今日は、VirtualBoxとVagrantを使って、最速PHPフレームワークPhalconのための開発環境を作成してみます。
Phalconの速度については、2014年の最新PHPフレームワークをベンチマークしてみたを参照してください。
Vagrantを使うと簡単に他の開発者と同じ仮想マシンを構築できます。
なお、この方法のデメリットは、仮想マシンを維持するためのリソースが余計に必要となることです。OSからまるごとインストールするわけですから、ハードディクスの容量もその分多く必要になりますし、仮想マシン実行のオーバーヘッドがありますので、実効速度もネイティブで動作しているWebサーバ/PHPより、多くの場合、多少遅くなるでしょう。
VirtualBoxとVagrantのインストール
フリーな仮想化ソフトウェアであるVirtualBoxを、以下からダウンロードしインストールします(執筆時の動作確認バージョンはVirtualBox 4.3.18)。
VirtualBoxの仮想イメージを操作するツールであるVagrantを、以下からダウンロードしインストールします(執筆時の動作確認バージョンはVagrant 1.6.5)。
これで準備は完了です。
仮想マシンの作成
Phalconのプロジェクト用のフォルダを作成し、その中にVagrantでPHP開発環境を構築するための「vagrant-centos6-php」を配置します。
$ mkdir phalcon
$ cd phalcon/
$ git clone https://github.com/kenjis/vagrant-centos6-php.git
$ cd vagrant-centos6-php
PhalconをインストールするようにVagrantfileの設定を変更します。
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -88,7 +88,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# Framework of your choice
#chef.add_recipe "fuelphp"
- #chef.add_recipe "phalcon"
+ chef.add_recipe "phalcon"
#chef.add_recipe "yum-update"
それでは、仮想マシンを構築します。
$ vagrant up
初回はCentOS6の仮想イメージをダウンロードなどするため、かなり時間がかかりますので気長に待ちます。
これで、仮想マシンが作成され、Phalconがコンパイルされ、また、開発に必要なサーバなどとともにインストール設定されます。
ディレクトリ構成
ホスト(手許のPC)側
phalcon/(Phalconプロジェクトのトップ)
├── public/(Web公開領域。まだ存在しない)
└── vagrant-centos6-php/
ゲスト(仮想マシン)側
/mnt/project/
├── public/
└── vagrant-centos6-php/
仮想マシンから、ホスト側のphalconフォルダを共有しているので、ホスト側から好きなエディタでソースを変更すれば、仮想マシンに自動的に反映されます。
Phalconプロジェクトの作成
vagrant-centos6-phpフォルダから、vagrant ssh
コマンドで仮想マシンにSSHで接続できます(Windowsを除く)。
$ cd phalcon/vagrant-centos6-php/
$ vagrant ssh
Last login: Mon Dec 1 10:02:45 2014 from 10.0.2.2
Welcome to your Vagrant-built virtual machine.
ホームディレクトリにシンボリックリンクが張ってあるので、/mnt/project
フォルダには~/phalcon
でアクセスできます。
phalconコマンド(Phalcon Developer Tools)もインストール済みなのですぐに実行できます。
既存のフォルダにはプロジェクトを作成できないので、ひとまず、ホームディレクトリにtest
というフォルダでプロジェクトを作成します。
[vagrant@localhost ~]$ cd
[vagrant@localhost ~]$ phalcon project test simple
そして、test
フォルダの中身を~/phalcon
フォルダに移動します。
[vagrant@localhost ~]$ shopt -s dotglob
[vagrant@localhost ~]$ mv test/* phalcon/
[vagrant@localhost ~]$ rmdir test/
これでPhalconプロジェクトのスケルトンが作成されました。
phalcon
├── app
│ ├── cache
│ ├── config
│ ├── controllers
│ ├── models
│ └── views
├── public
│ ├── css
│ ├── files
│ ├── img
│ ├── js
│ └── temp
└── vagrant-centos6-php
└── cookbooks
ホストOSからhttp://localhost:8000/にアクセスすると、Phalconの「Congratulations!」ページが表示されます。
サーバ環境
vagrant-centos6-phpで作成される仮想マシンのサーバ環境は以下のようになっています(執筆時点)。
- メモリ 480MB
- HDD 200GB
- OS CentOS 6.5 (64bit)
- Apache 2.2.15-39.el6.centos.x86_64
- MySQL 5.1.73-3.el6_5.x86_64
- PHP 5.5.19-2.el6.remi.x86_64
- phpMyAdmin 4.0.10.6-1.el6.noarch
- PHPUnit 3.7.38
- Phalcon 1.3.4
ホスト側のポート8000が仮想マシンのポート80に転送されるようになっています。仮想マシンに直接アクセスする場合は、http://192.168.33.33/にアクセスします。
ホストのPhalconのプロジェクトのフォルダが仮想マシンの/mnt/project
にマウントされるようになっています。
MySQLデータベースは、php_dev
とphp_test
が作成されており、rootのパスワードはroot
です。
また、http://localhost:8000/phpmyadmin/から、phpMyAdminにアクセスできます。
仮想マシンの起動と停止
仮想マシンの停止は、vagrant-centos6-phpフォルダに移動して、
$ vagrant halt
とします。vagrant suspend
コマンドを実行すれば、仮想マシンをシャットダウンせずに状態を保存したまま停止できます。
仮想マシンの起動は、
$ vagrant up
仮想マシンを破棄するには、
$ vagrant destroy
とします。
関連
Date: 2014/12/01