さくらVPSにPEARを入れてPHPUnitを入れてみるまで

僕が最初にプログラミングを始めたころ、最初に手にとった本の中でPEARが使われていました。
ただ、本当に学び始めたころってパスを通すってのもわけがわからないしPEARで何が便利になるのかわかりませんでした。
また、その影響もあってか、PEARは難しいもの、として今の今まで避けてきました。

しかし、さすがにそろそろPHPUnit使ってテストコード書いていかないと最近のプログラマーではないよな、と思い、今回はさくらVPSにPEARを導入し、PHPUnitを動かしてみるところまで行なってみます。

それでは始めましょう。

PEARをインストールする

PEARはすごい簡単にインストールすることが出来ます。

yumが使える環境では以下のコマンドで一発です。

$ yum -y install php-pear

yumが使えない環境の場合は、以下の記事を参考にしてみてください。

>>> PEAR パッケージマネージャの取得とインストール

PHPUnitをPEAR経由でインストールする

PEARをインストールすることが出来たら、今度はPHPUnitをインストールしましょう。
以下の2つのコマンドを打ち込むだけでインストール出来ます。

$ pear config-set auto_discover 1
$ pear install pear.phpunit.de/PHPUnit

インストールされているか確認しましょう。

$ pear list
Installed packages, channel pear.php.net:
=========================================
Package          Version State
PEAR             1.9.4   stable
PHPUnit          1.3.2   stable

インストールすることが出来ました。

PHPのinclude_pathを通す

僕はここで2時間つまりました。

ここで何がしたいかというと、PHPファイルの中でrequire_onceしたときにPEARでインストールしたパッケージを読み込めるようにするということです。
そのためにはまずPEARでインストールしたファイルがどこにあるのか確認しましょう。

$ pear config-show
Configuration (channel pear.php.net):
=====================================
...
PEAR directory                 php_dir          /usr/share/pear
...

色々設定が出てきますが、「PEAR directory」という部分を探してください。
そこに書いてある部分にパスを通していきます。
僕の場合だと、「/usr/share/pear」にパスを通すべきだということがわかりました。

次に、php.iniの設定を変更します。
php.ini内に include_path という部分があるので、そこに上で確認したパスを追加してあげます。

$ vim /etc/php.ini
....
include_path = ".:/usr/share/pear"
....

追加して保存したらapacheを再起動してPHPを再読み込みしましょう。
以下を実行して、動けばOKです。

$ phpunit
PHPUnit 3.7.7 by Sebastian Bergmann.

Usage: phpunit [switches] UnitTest [UnitTest.php]
       phpunit [switches] 
.....

これでPHPUnitを使用する準備を整えることが出来ました!!

終わりに

最初はPEARがどのディレクトリに入っているのかを探すのにとても苦労しました。
また、include_pathを変更する!と気づいてから更に1時間くらい悩みました。
これは、include_pathの書き方をコロン(:)ではなくセミコロン(;)にしていたので動きませんでした。
この区切り文字は環境によって変わるらしいのでもし動かない場合は何個か試してみるとよいかもしれません。

しかしPEAR、便利ですね。昔のPEARは難しいと思っていた僕から相当成長したのだなぁと感じます。