Apache Lounge版(VC9版)のインストール

サーバー側に合わせてPHP5.3以降を使いたいと思いましたが、何と5.3.6以降ではWindowsバイナリはVC6版しか提供されません。ApacheがVC6版のままでも、phpのVC9版が動くという情報もありましたが(真偽は未確認)、ここはApacheそのものから、VC9版に差し替えることにしました。

今回使用したバージョン

インストール手順

  1. Visual C++ 2008 Redistributable Package(vcredist_x86.exe)をインストール
  2. Apache ZIPファイルを解凍し、Apache2フォルダをそのまま C:\Apache2へコピー
  3. Apacheをサービスとしてインストール
    c:\apache2\bin\httpd.exe -k install 
    
  4. PHPをインストーラでC:\PHPへ
  5. xdebugをC:\PHP下にコピー
  6. php.iniを修正
    include_path = ".;c:\php\PEAR"
    ...
    date.timezone = Asia/Tokyo
    ...
    mbstring.language = Japanese
    mbstring.internal_encoding = UTF-8
    mbstring.http_input = pass
    mbstring.http_output = pass
    mbstring.encoding_translation = Off
    mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
    mbstring.substitute_character = none
    ...
    [xdebug]
    zend_extension="C:/PHP/php_xdebug-2.1.1-5.3-vc9.dll"
    xdebug.remote_enable=on
    xdebug.remote_host=127.0.0.1
    xdebug.remote_port=9000
    xdebug.remote_handler=dbgp 
    
  7. httpd.confに追加
    PHPIniDir "c:\php\"
    LoadModule php5_module "c:\php\php5apache2_2.dll"
    
  8. conf/mime.typesに追加
    application/x-httpd-php	php
    application/x-httpd-php-source	phps
    
  9. PEARの設定とPHPUnit
    c:\php\go-pear.bat  => 初期設定そのままでEnterするとpear.batが生成される
    pear channel-update pear.php.net
    pear upgrade-all
    pear channel-discover pear.phpunit.de
    pear channel-discover components.ez.no
    pear channel-discover pear.symfony-project.com
    pear install phpunit/PHPUnit
    

NetbeansのSeleniumPlugin & Firefox3.6 でエラー

Netbeansから、Pluginを使ってSeleniumでテストすると、IEはOKだがFirefoxでのみ妙なエラーになります。

PHPUnit_Framework_Exception:
Response from Selenium RC server for getNewBrowserSession(*firefox,…
Failed to start new browser session: Unable to delete file C:\DOCUM…

調べてみると、既知の障害らしいです(stackoverflowの投稿)

Selenium1.0.3から直ったらしいのですが、
Netbeansのplugin同梱のSeleniumは古いまま(1.0.1)です(Netbeans側への投稿

上記投稿にあるように、Selenium1.0.3に置き換えたらOKでした。置き換えは下記のようにおこないました(かなり乱暴ですが)

  1. Selenium1.0.3をダウンロード
  2. 解凍して selenium-server.jarを取り出し、selenium-server-1.0.1.jarに改名
  3. %UserProfile%/.netbeans/6.9/modules/ext/selenium/下のselenium-server-1.0.1.jarを上書き

Plugin自体がアップデートされるのが本筋だと思いますが、とりあえず・・・。

PHPUnitのバッチファイル

Windowsで正直にC:\Program Files\PHP\ にphp.exeがある場合、普通にPHPUnitをインストールすると、同じ場所にphpunit.batができます。
これをNetbeansから(このフォルダの外側から)動かす時、パス内の空白のためにBAT自体がまともに動きません。
いろいろ対処の方法はありますが、面倒なのでphpunit.bat自体を下記のように書き変えて動かしました。

"C:\Program Files\PHP\php.exe" "C:\Program Files\PHP\phpunit" %*

PHPunitのインストール

PHPunitサイトの情報をもとにインストール
WindowsXP環境で、PHPはC:\Program Files\PHPにあることが前提です。

コントロールパネルからphpの[変更]、インストーラで[Change]。
pearがインストールされていなければ、これをチェックしてインストールします。

php.iniを変更します。

include_path = ".;C:\Program Files\PHP\PEAR"

PEARの自動設定とアップグレード

cd C:\Program Files\PHP
go-pear.bat

初期設定そのままでEnter。これでpear.batが生成されるので

pear upgrade-all

PEARチャネルの追加と、PHPUnitのインストール

pear channel-discover pear.phpunit.de
pear channel-discover components.ez.no
pear channel-discover pear.symfony-project.com
pear install phpunit/PHPUnit

これでphpunit.batが生成されるので、 下記で確認

phpunit --version