VagrantでPHPUnitを使う

#PHPUnitを使ってみよう
調べたらphpStormでphpUnitと書かれている記事ばかりが出てくる...
違うんだよ、phpStormを使わずにやりたいんだよ！
ってことでやってみた。
今回の環境は
windows8
vagrant 1.8.4
Oracle VM VirtualBox 5.0.24
(vagrant,VirtualBoxに関しては最新に乗り換えるのは怖いので古いものを使っています。最新版でも大丈夫なはず！)
CentOS release 6.7
Apache/2.2.15
PHP 5.6.28
PHPUnit 5.6.3

今回はwindowsでvagrantの初期設定が完了した想定で行きます。
設定も知りたい！って人は[こちら](http://qiita.com/NAZA/items/adb849e795861d81a520)をどうぞ

それではcentos6でphpunitが使えるようにしていこう！

##CentOSでVimコマンド等が使えない(自分のは使えなかった)ので使えるように!

全てスーパーユーザーで話を進めていきますのであしからず

```ruby:terminal
yum -y groupinstall "Base" "Development tools"
# 依存があれば
yum -y --skip-broken groupinstall "Base" "Development tools"
```

##時間があってないので合わせる

```ruby:terminal
#/etc/localtimeファイルの設定をしておかないと、日本標準時刻が設定されない。
cp -p /usr/share/zoneinfo/Japan /etc/localtime
#NTPサーバーのインストール
yum -y install ntp
#NTPサーバーの日付を設定
ntpdate ntp.nict.jp
```

/etc/ntp.confの編集
設定ファイルに、参照するNTPサーバーのIPアドレスをserverオプションで指定する。

```ruby:terminal
vim /etc/ntp.conf

#コメントアウトをつける
# server 0.centos.pool.ntp.org iburst
# server 1.centos.pool.ntp.org iburst
# server 2.centos.pool.ntp.org iburst
# server 3.centos.pool.ntp.org iburst

#コメントアウトした下に記述
server -4 ntp.nict.jp
server -4 ntp1.jst.mfeed.ad.jp
server -4 ntp2.jst.mfeed.ad.jp
server -4 ntp3.jst.mfeed.ad.jp
```

ntpdデーモンの起動をします。

```ruby:terminal
service ntpd start

#ntpqコマンド（オプションについてはここを参照）でNTPサーバが動作しているかを確認できる。
ntpq -p

#自動起動設定をしておく
chkconfig ntpd on

chkconfig --list ntpd
#下記のようになっていればOK
ntpd      0:off     1:off     2:on     3:on     4:on     5:on     6:off

#dateで確認してみる
date
Tue Nov 15 13:18:35 JST 2016
```

これで大丈夫かな!

##Apacheをインストール
ApacheのインストールしかまだしたことないのでApacheを使います。
(そのうち、nginx使ってみたい(º﹃º ))

```ruby:terminal
yum -y install httpd
#Apache バージョン確認
httpd -v
```

centos6.7はデフォルトはApache2.2です、
centos7になるとApache2.4になるので記述の仕方が変わるのでご注意を。

インストールしたままだとvagrantで共有フォルダが反映されないことがあるので以下を修正しましょう。

```vim:/etc/httpd/conf/httpd.conf
vim /etc/httpd/conf/httpd.conf

// 以下修正
<Directory /path/to/public_html>
  EnableMMAP Off
  EnableSendfile Off
</Directory>
```

これで使えるようになるはず！
httpdを起動とhttpd自動起動設定をしておきましょう。

```ruby:terminal
#httpd起動
/etc/rc.d/init.d/httpd start
#httpd自動起動設定
chkconfig httpd on

#自動起動設定ができているか確認
chkconfig --list httpd
#下記のようになっていればOK
httpd  0:off   1:off   2:on    3:on    4:on    5:on    6:off
```

##PHPをインストール
さぁ、やってきました！
それでは、いってみよう！

epelとremiのリポジトリを使うので追加します。

```ruby:terminal
rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
```
これでOK

yum listで提供されているパッケージを確認したい！って人のために。

```ruby:terminal
yum list --enablerepo=remi --enablerepo=remi-php56 | grep php
```

それではphpをインストール！

```ruby:terminal
yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof
```

インストールが終わったらバージョン確認しましょう。

```ruby:terminal
#php バージョン確認
php -v
#phpunit バージョン確認
phpunit --varsion
```

###php.iniを編集
ここら辺はしといた方がいいかと

```ruby:terminal
#バックアップを作成
cp /etc/php.ini/ /etc/php.ini.org

#編集していく
vim /etc/php.ini

#以下を変更
;error_log = php_errors.log
  |
error_logs = /var/log/php_errors.log
;mbstring.language = japanese
  |
mbstring.language = Japanese
;mbstring.internal_encoding = EUC-JP
  |
mbstring.internal_encoding = UTF-8
;mbstring.http_input = auto
  |
mbstring.http_input = auto
;mbstring.detect_order = auto
  |
mbstring.detect_order = auto
expose_php = on
  |
expose_php = off
;date.timezone = 
  |
date.timezone = Asia/Tokyo
```

httpdを再起動

```ruby:terminal
/etc/rc.d/init.d/httpd restart
```

これで確認がとれます。

##それではphpUnit試してみよう!

```
cd /vagrant
vim SampleTest.php
```

ファイルを作成してその中に

```php:
<?php
Class SampleTest extends PHPUnit_Framework_TestCase
{
    /**
     * @test
     */
    public function 試しに実行してみる()
    {
        $this->assertTrue(true);
    }
}
```

phpファイルを作成し終わったら早速テストだ！

```ruby:terminal
phpunit SampleTest.php

#下記結果
PHPUnit 5.6.3 by Sebastian Bergmann and contributors.

.                                                                   1 / 1 (100%)

Time: 112 ms, Memory: 3.25MB

OK (1 test, 1 assertion)
```

ｷﾀ――(ﾟ∀ﾟ)――!!
これで完了です。
それではみなさん、楽しいphp生活を！