phpUnitとxdebugのインストール
したので覚書
環境は以下
$ cat /etc/redhat-release
CentOS Linux release 6.0 (Final)$ rpm -qa | grep php
php-mysql-5.3.10-2.el6.remi.x86_64
php-pear-1.9.4-3.el6.remi.noarch
php-common-5.3.10-2.el6.remi.x86_64
php-cli-5.3.10-2.el6.remi.x86_64
php-pdo-5.3.10-2.el6.remi.x86_64
php-devel-5.3.10-2.el6.remi.x86_64
php-mbstring-5.3.10-2.el6.remi.x86_64
php-5.3.10-2.el6.remi.x86_64
php-xml-5.3.10-2.el6.remi.x86_64
pearの使い方
phpUnitはpearからインストールするのだけど、まずはpearってなにものなのか、その使い方から。
pearとは
PEAR(PHP Extension and Application Repository)はPHPで利用する事ができるライブラリ(パッケージ)を提供しているサービス。 PEARはPHPで書かれたライブラリを提供しているが、C言語で書かれた拡張ライブラリ(extension)を提供するPECLというサービスも存在する。
[http://ja.wikipedia.org/wiki/PEAR:title=http://ja.wikipedia.org/wiki/PEAR]
rubyでいうgems的な、perlでいうcpan的な存在。pearとpeclの違いがよく分からなかったけど、その違いも上のように書いてあります。
pearのインストール
普通はphpと一緒にインストールされてるようです。ソースインストールの場合に ./configure に --without-pear とか指定してなければ。
windows?知るか。死ね。go-pear.batとかいうバッチファイル叩いたらいいらしいけど、よく知らないし思い出したくもないです。死ね。
http://www.phpbook.jp/pear/install/index1.html
pearのコマンド基本
$ pear install [options] [channel/]
...
パッケージをインストールします。channelについては後述。
パッケージによっては、フジの昼ドラもドン引きなくらいドロッドロの依存関係があるので、その依存関係を解決して全部ひっくるめてインストールする場合は -a オプションを付けます。
オプションでパッケージの保存場所を指定したりとかも可能。
$ pear uninstall [options] [channel/]
...
パッケージをアンインストールします。
これも例によって依存関係でアンインストールできたりできなかったりすることがあるようなので、オプションで解決したりしなかったり。
$ pear list
今インストールされているパッケージの一覧を表示します。
channelとは?
チャネルとは、パッケージの取得元のことです。 詳細な情報は、マニュアルの チャネルに関するセクション 参照ください。
とりあえずは「チャネルっていうものを使えば、 PEAR 以外のところにあるパッケージもインストールできるらしい」 ということを知っておけばよいでしょう。かの有名な Horde や PHPUnit といったプロジェクトも、PEAR 互換のチャネルでソフトウェアを配布しています。
http://pear.php.net/manual/ja/guide.users.commandline.channels.php
channelとはリポジトリ的なやつです。デフォルトは pear.php.net となっていると思います。 pear install hoge などとした場合は、hogeというパッケージをデフォルトのチャネルから探してインストールしようとするわけです。
パッケージによっては、というかこれからインストールしようとしているPHPUnitはデフォルトのチャネルにはないので、新たにチャネルを追加してからパッケージをインストールする必要があります。
PHPUnitのインストール
というわけでpearについては多少分かったので、早速pearでPHPUnitをインストールします。
$ pear channel-discover pear.phpunit.de
$ pear channel-discover components.ez.no
$ pear channel-discover pear.symfony-project.com
まずは必要なチャネルを全部登録。
これでインストールが出来てるはず。channelがpear.phpunit.deではなくてphpunitだけで済んでるのはchannelのaliasが登録してあるから。
ちゃんと入ってるか確かめてみます。
$ pear list -a
(略)
INSTALLED PACKAGES, CHANNEL PEAR.PHPUNIT.DE:
============================================
PACKAGE VERSION STATE
File_Iterator 1.3.1 stable
PHPUnit 3.6.10 stable
PHPUnit_MockObject 1.1.1 stable
PHPUnit_SkeletonGenerator 1.0.0 stable
PHP_CodeCoverage 1.1.1 stable
PHP_Invoker 1.1.0 stable
PHP_Timer 1.0.2 stable
PHP_TokenStream 1.1.2 stable
Text_Template 1.1.1 stable
問題なさそう。
あとgithubからもphpunitは入れられるみたいです。
https://github.com/sebastianbergmann/phpunit
参考:
http://havelog.ayumusato.com/develop/php/e241-pear_install_phpunit.html
xdebugのインストール
これだけ。ダウンロードが終わるとビルドが始まるのでしばし待ちます。
ビルドが終わったらxdebugの拡張モジュールを読み込むようにphp.iniに次の1行を追記します。
xdebug.soのバスは適当に読み替えてください。
相対パスではなく絶対パスで入れてください。
http://www.xdebug.org/docs/install
あとはapacheなどの実行環境を再起動すれば完了。
ちゃんと入っているか確かめてみます。
(略)
xdebug support => enabled
(略)
大丈夫そうですね。
あ?windowsはどうすんのかって?死ね。心臓止まれ。
大体なんだよ、「windows」で「php」って組み合わせは。なんだその「NGL」と「キメラアント」みたいな、「北朝鮮」と「核製造施設」みたいな、「逆転裁判」「実写化」みたいな考えうる限りの最悪の組み合わせは。完全に地雷剥き出しじゃないか。キムタクのヤマトの大爆死から何も学ばなかったのか。本当に誰が得するんだよ。あんな恥ずかしい髪型までしちゃって。
一応書いとくと、http://www.xdebug.org/find-binary.phpにphp.iniを貼りつけると、どのバイナリをインストールすればいいのか詳しく教えてくれるので、それに従うといいらしいです。もう本当に勘弁してください。