Windows 7 に VirtualBoxを利用してUbuntu Server 12.04 をセットアップ、Apache2の Virtual Hostの設定や ProFTPD のインストールを終え、開発環境ももう少しで整います。で、PHPUnitをインストールしようとしたところうまくいかなかったので、その備忘録です。
最初「PHPUnit インストール方法(http://d.hatena.ne.jp/tarurut/20110125/1295906030)」というページを参考にして、「#apt-get install phpunit」でインストール「$phpunit –version」で動作確認したら
$ phpunit --version PHP Warning: require_once(PHP/CodeCoverage/Filter.php): failed to open stream: No such file or directory /usr/share/php:/usr/share/pear') in /usr/bin/phpunit on line 38
のように表示されて動作しなかった。そこで「#apt-get remove phpunit」として削除、当該ページにリストされているpearコマンドを使った以下の入力を試した。
#pear upgrade-all #pear channel-discover pear.phpunit.de #pear channel-discover pear.symfony-project.com #pear channel-discover components.ez.no #pear install --alldeps phpunit/PHPUnit
で、最後の行のコマンドを実行したところ、しばらく何の表示もなかったのでCtrl-Cで終了し、今度は次のようにしてインストールした。
#pear install -a pear.phpunit.de/PHPUnit
ここで何故か「#apt-get install phpunit」を実行していたのですが、それは伏せておきます。で、「#phpunit –version」としたところ以下のようなメッセージが表示された。
PHP Fatal error: Call to undefined method PHP_CodeCoverate_filter::getInstance() in /usr/bin/phpunit on line 39
どうしたものかとググっていると以下のページを見つけたので、さっそく試してみた。
Call to undefined method PHP_CodeCoverage_Filter::getInstance()
http://stackoverflow.com/questions/9186000/call-to-undefined-method-php-codecoverage-filtergetinstance
すると「#pear install –alldeps phpunit/PHPUnit」を入力したところで次のメッセージが。
#pear install --alldeps phpunit/PHPUnit Unknown remote channel: pear.symfony.com phpunit/PHPUnit requires package "channel://pear.symfony.com/Yaml" (version >= 2.1.0) No valid packages found install failed
そこで
#pear channel-discover pear.symfony.com
として
#pear install --alldeps phpunit/PHPUnit
としたところ、良い雰囲気にインストールが完了。
#phpunit --version PHPunit 3.7.8 by Sebastian Bergmann.
となったのであります。もう一度コンソールに表示されたメッセージを眺めてみると、実は「#pear install -a pear.phpunit.de/PHPUnit」を実行したときに「Unknown remote channel: pear.symphony.com」とメッセージが表示されていたのでした。
お粗末さまでした。
ところでpearのインストールについて
$ sudo apt-get install php-pear
pearのアップデートは
$ sudo pear upgrade PEAR
(130724)
実は簡単にインストールできた
Ubuntu 12.04 サーバーのセットアップで再度インストール操作したが、実はPHPUnitのサイトのインストール操作通りで簡単にできた。pear インストール後
$ sudo pear config-set auto_discover 1 $ sudo pear install pear.phpunit.de/PHPUnit
ただし Stable の PHPUnit 3.7.22 がインストールされた。3.8をインストールする場合は Composer を使うのかな?
アップグレードの確認は
以前にインストールしたサーバーで
$ sudo pear list-upgrades
としたところ
Channel pear.php.net: No upgrades available pear.phpunit.de Available Upgrades (stable): ============================================ Channel Package Local Remote Size pear.phpunit.de PHPUnit 3.7.20 (stable) 3.7.22 (stable) 114kB pear.phpunit.de PHP_CodeCoverage 1.2.10 (stable) 1.2.12 (stable) 156kB pear.phpunit.de PHP_Invoker 1.1.2 (stable) 1.1.3 (stable) 3.7kB pear.symfony.com Available Upgrades (stable): ============================================= Channel Package Local Remote Size pear.symfony.com Yaml 2.2.1 (stable) 2.3.2 (stable) 40kB
と表示された。で、アップグレードは、
$ sudo pear upgrade --alldeps phpunit/phpunit
したところ
phpunit/PHP_CodeCoverage can optionally use PHP extension "xdebug" (version >= 2.0.5) downloading PHPUnit-3.7.22.tgz ... Starting to download PHPUnit-3.7.22.tgz (116,042 bytes) .........................done: 116,042 bytes downloading PHP_CodeCoverage-1.2.12.tgz ... Starting to download PHP_CodeCoverage-1.2.12.tgz (158,796 bytes) ...done: 158,796 bytes downloading Yaml-2.3.2.tgz ... Starting to download Yaml-2.3.2.tgz (40,003 bytes) ...done: 40,003 bytes downloading PHP_Invoker-1.1.3.tgz ... Starting to download PHP_Invoker-1.1.3.tgz (3,734 bytes) ...done: 3,734 bytes upgrade ok: channel://pear.phpunit.de/PHP_CodeCoverage-1.2.12 upgrade ok: channel://pear.symfony.com/Yaml-2.3.2 upgrade ok: channel://pear.phpunit.de/PHP_Invoker-1.1.3 upgrade ok: channel://pear.phpunit.de/PHPUnit-3.7.22
となり、アップグレード終了。