Phalconの開発環境をvagrant-centos6-phpを使い構築する post

今日は、VirtualBoxとVagrantを使って、最速PHPフレームワークPhalconのための開発環境を作成してみます。

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!」ページが表示されます。

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_devphp_testが作成されており、rootのパスワードはrootです。

また、http://localhost:8000/phpmyadmin/から、phpMyAdminにアクセスできます。

仮想マシンの起動と停止

仮想マシンの停止は、vagrant-centos6-phpフォルダに移動して、

$ vagrant halt

とします。vagrant suspendコマンドを実行すれば、仮想マシンをシャットダウンせずに状態を保存したまま停止できます。

仮想マシンの起動は、

$ vagrant up

仮想マシンを破棄するには、

$ vagrant destroy

とします。

関連

Date: 2014/12/01

Tags: phalcon, vagrant, php