LoginSignup
4
4

More than 5 years have passed since last update.

VagrantでPHPUnitを使う

Posted at

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の初期設定が完了した想定で行きます。
設定も知りたい!って人はこちらをどうぞ

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

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

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

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

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

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オプションで指定する。

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デーモンの起動をします。

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使ってみたい(º﹃º ))

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

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

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

/etc/httpd/conf/httpd.conf
vim /etc/httpd/conf/httpd.conf

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

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

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のリポジトリを使うので追加します。

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で提供されているパッケージを確認したい!って人のために。

terminal
yum list --enablerepo=remi --enablerepo=remi-php56 | grep php

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

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

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

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

php.iniを編集

ここら辺はしといた方がいいかと

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を再起動

terminal
/etc/rc.d/init.d/httpd restart

これで確認がとれます。

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

cd /vagrant
vim SampleTest.php

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

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

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

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生活を!

4
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4