CodeIgniterの開発環境をvagrant-centos6-phpを使い構築する
今日は、VirtualBoxとVagrantを使って、軽量高速なPHPフレームワーク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本体のテストの実行
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