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

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

CodeIgniter公式サイト

CodeIgniterの速度については、2014年の最新PHPフレームワークをベンチマークしてみたを参照してください。

Vagrantを使えば簡単に他の開発者と同じ仮想マシンを構築できます。

VirtualBoxとVagrantのインストール

フリーな仮想化ソフトウェアであるVirtualBoxを、以下からダウンロードしインストールします(執筆時の動作確認バージョンはVirtualBox 4.3.18)。

VirtualBoxの仮想イメージを操作するツールであるVagrantを、以下からダウンロードしインストールします(執筆時の動作確認バージョンはVagrant 1.6.5)。

これで準備は完了です。

CodeIgniterのダウンロード

http://www.codeigniter.com/downloadより、開発中のCodeIgniter 3.x(CodeIgniter-develop.zip)をダウンロードします。

なお、CodeIgniter 3.xはMITライセンスになりました。CodeIgniter 2.x以前はCodeIgniterライセンスのままです。

Zipファイルを解凍するとCodeIgniter-developフォルダが作成されます。

CodeIgniter-develop
├── application
├── system
├── tests
└── user_guide_src

vagrant-centos6-phpのダウンロード

https://github.com/kenjis/vagrant-centos6-phpの右コラムの一番下の「Download ZIP」ボタンを押してダウンロードします。

ダウンロードしたvagrant-centos6-php-master.zipを解凍し、CodeIgniterのフォルダ(CodeIgniter-develop)の中に移動します。

CodeIgniter-develop
├── application
├── system
├── tests
├── user_guide_src
└── vagrant-centos6-php-master ←これ

仮想マシンの作成

CodeIgniterが使えるようにvagrant-centos6-php-masterフォルダの中のVagrantfileの設定を変更します。「codeigniter」の行の先頭のコメント記号#を削除します。

     # Framework of your choice
     #chef.add_recipe "codeigniter"

↓

     # Framework of your choice
     chef.add_recipe "codeigniter"

それでは、仮想マシンを構築します。

$ cd CodeIgniter-develop/vagrant-centos6-php-master/
$ vagrant up

初回はCentOS6の仮想イメージをダウンロードなどをするため、かなり時間がかかりますので気長に待ちます。

これで、仮想マシンが作成され、開発に必要なサーバなどもインストール設定されます。

ディレクトリ構成

ホスト(手許のPC)側

CodeIgniter-develop/(CodeIgniterプロジェクトのトップ)
├── public/(Web公開領域)
└── vagrant-centos6-php-master/

ゲスト(仮想マシン)側

/mnt/project/
├── public/
└── vagrant-centos6-php-master/

仮想マシンから、ホスト側のCodeIgniter-developフォルダを共有しているので、ホスト側から好きなエディタでソースを変更すれば、仮想マシンに自動的に反映されます。

ホームディレクトリにシンボリックリンクが張ってあるので、仮想マシンの中では/mnt/projectフォルダには~/codeigniterでアクセスできます。

CodeIgniter-develop
├── application
│   ├── cache
│   ├── config
│   ├── controllers
│   ├── core
│   ├── helpers
│   ├── hooks
│   ├── language
│   ├── libraries
│   ├── logs
│   ├── models
│   ├── third_party
│   └── views
├── system
│   ├── core
│   ├── database
│   ├── fonts
│   ├── helpers
│   ├── language
│   └── libraries
├── tests
│   ├── codeigniter
│   ├── mocks
│   └── travis
├── user_guide_src
│   ├── cilexer
│   └── source
└── vagrant-centos6-php-master
    └── cookbooks

ホストOSからhttp://localhost:8000/にアクセスすると、CodeIgniterの「Welcome」ページが表示されます。

CodeIgniter「Welcome」ページ

CodeIgniter本体のテストの実行

CodeIgniter本体のテストを実行してみましょう。

まず、仮想マシンにSSHでログインします。

$ cd CodeIgniter-develop/vagrant-centos6-php-master/
$ vagrant ssh
Last login: Tue Dec  2 01:21:42 2014 from 10.0.2.2
Welcome to your Vagrant-built virtual machine.

以下は仮想マシンの中です。

テストに必要なパッケージをComposerでインストールします。

[vagrant@localhost ~]$ cd codeigniter/
[vagrant@localhost codeigniter]$ composer install
Loading composer repositories with package information
Installing dependencies (including require-dev)
  - Installing mikey179/vfsstream (v1.1.0)
    Downloading: 100%         

Writing lock file
Generating autoload files

テストを実行します。

[vagrant@localhost codeigniter]$ cd tests/
[vagrant@localhost tests]$ phpunit 
PHPUnit 3.7.38 by Sebastian Bergmann.

Configuration read from /mnt/project/tests/phpunit.xml

.............................SS................................  63 / 296 ( 21%)
....................SSSSSSSSSSSSSSS..SS.S...................... 126 / 296 ( 42%)
.S.S........................................................... 189 / 296 ( 63%)
........................................S...................... 252 / 296 ( 85%)
.............S............................

Time: 11.98 seconds, Memory: 17.25Mb

OK, but incomplete or skipped tests!
Tests: 284, Assertions: 991, Skipped: 24.

24個がスキップされましたが、他は通りました。

サーバ環境

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

ホスト側のポート8000が仮想マシンのポート80に転送されるようになっています。仮想マシンに直接アクセスする場合は、http://192.168.33.33/にアクセスします。

ホストのCodeIgniterのプロジェクトのフォルダが仮想マシンの/mnt/projectにマウントされるようになっています。

MySQLデータベースは、php_devとphp_testが作成されており、rootのパスワードはrootです。

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

仮想マシンの起動と停止

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

$ vagrant halt

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

仮想マシンの起動は、

$ vagrant up

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

$ vagrant destroy

とします。

関連

Date: 2014/12/02

Tags: codeigniter, vagrant, php