2007年9月13日木曜日

xaira 1.24のコンパイルとインストール

Ubuntu 7.04ではPHPのバージョンが上がっていて、xairaの1.23のDebian用パッケージではPHPによる検索が利用できません。

そこで、いろいろ苦心しながら1.24をコンパイルし、インストールして、なんとかxaira_phpのデモが動くようになりました。

以下、1.24のコンパイル・インストールのメモです。



コンパイルに必要なパッケージのインストール
以下のパッケージが必要なので、Synapticでインストールしておきます。
g++
libicu36-dev
libxerces27-dev
zlib1g-dev
libreadline5-dev
コンパイル
$ ./configure --with-php5=/usr/include/php5
$ make
インストール
# make install
しようとすると、xaira_php/Makefileが間違っているらしくエラーになるので、480-481行目の以下の箇所を修正します。
---修正前ここから---
mkdir -p
cp $(libdir)/libphpXaira.so
---修正前ここまで---
---修正後ここから---
mkdir -p /usr/lib/php5/20060613+lfs
cp $(libdir)/libphpXaira.so /usr/lib/php5/20060613+lfs/
---修正後ここまで---
これで
# make install
できるようです。
しかし、これで、付属のPHPプログラム(test2.php)で検索を試みたところ、
Fatal error: Call to a member function getWordList() on a non-object in /foo/bar/test2.php on line 21
というエラーが表示されました。
このtest2.phpをよく見てみると、その20行目は、1.23のdebパッケージ収録のものでは
$server=XairaServer::getXairaServer();
となっていたのが、1.24では
$server=XairaServer::getXairaServer('bnc');
となっていました。
そこで
$server=XairaServer::getXairaServer('corpus1');
と書き換えて試したところ、無事にデモプログラムが検索できました。
同様にtest1.phpなども該当箇所を書き換える必要があります。
さらに、CQLで検索を行うtest1.phpの60行目
echo htmlspecialchars($_GET['query']);
がなぜかエラーになるので、
$modified_query = $_GET['query'];
$modified_query = str_replace("<", "<", $modified_query); $modified_query = str_replace(">", ">", $modified_query);
echo $modified_query;
と書き換えて対処しています。

0 件のコメント:

コメントを投稿