タスク管理基盤 調査(OpenTask)

フリーで使えるタスク管理ソフトウェア「OpenTask」を自宅環境にインストールしてみた。
PHPにて動作するため、Webサーバの構築が必要だが、めんどくさいので、Windows Vista + XAMPPで代用。
自宅環境ぐらいなら、これで十分。

OpenTaskのバイナリダウンロード

http://opentask.jp/opentask_1_0.zipから入手。
さっそくXZMPPの公開ディレクトリhtdocsに格納。ブラウザからアクセス。
。。。。うごかない。$endがどーたらとエラー

googleで調べてみると、short_open_tag = Onにするといいらしい。
xzmpp/php/php.ini、short_open_tag = Onに変更。
再度ブラウザでアクセス。

・・・・うごかない。こんどはCB.phpのrequire_once WEBAPP_DIRのパスが無い、などエラーが。
ファイルはあるみたい。

と思って表示を見ているとパス中にwebappの文字が2回。
???そりゃパスが違うわ。と思ってソースを見たけど、PHPはよーわからん。

ソースコードと格闘すること1時間。すごく単純な原因でした。

define('ROOT_DIR'  , preg_replace("/\/webapp$/is","",dirname(__FILE__)));

としているwebapp部分をパスから取り除いている処理があるんだけど、上記はLinux環境では
有効(PATHが/で区切られるため)だけど、Windows環境では\webappになってしまい、うまく
取り除けていないことが判明。

わかってしまえばなんてことないけど、時間がかかった。。。。。
結局、windows環境ではdefineを切り変える(DIRECTORY_SEPARATORをチェックする)コードを作成して動作検証。

if ('/' == DIRECTORY_SEPARATOR) {
	define('ROOT_DIR'  , preg_replace("/\/webapp$/is","",dirname(__FILE__)));
}else {
	// 回避コード。Windowsだったら、以下の正規表現で¥マークも含めて取り除く。
	define('ROOT_DIR'  , preg_replace("/\\\webapp$/is","",dirname(__FILE__)));
}

うまく動いた。