Connotea Code
2006/05/18
今夜もConnotea Codeのインストールにチャレンジ。mod_perlの問題でもう3~4日ははまっているのですが。しかも動いたところでデモ用以外に使途は(たぶん)なし。
「今日本中でこんな作業しているのは自分だけ…かも。」漂う寂寥感。
Apache2.0.54+mod_perl2.xでは動かない。connoteaのPerlモジュールが必要としているモジュールがmod_perl2の中に無い。mod_perl1のモジュールが呼ばれている。マニュアルには推奨されるmod_perlのバージョンなんか書いてない。理由が分からない。理不尽。
開発者用メーリングリストを見ると、「mod_perl_1.99なら動く」との神託が。
…そういう大事なことは普通マニュアルに書くべきものではないのか。>nature publishingの中の人。
naoyaのはてなダイアリーの今年1月のエントリ、mod_perl 2.0.2 へのマイグレーションによれば、
現在、mod_perl には互換性のない三つのバージョンが存在してます。
- mod_perl 1.0 (1.29)
- mod_perl 1.99
- mod_perl 2.0 (2.0.2)
(略)
1.99 というのは、mod_perl 2.0 が Stable リリースされる直前までのバージョンで、言うなればベータ版。ベータが取れるときにいくつかの API が変更になったり、名前空間が Apache から Apache2 に変更されたりといった経緯があって、その両者はだいたい同じなんだけど互換性がありません。
とのこと。仕方がないので 2.0 と 1.99 をそれぞれyum installやCPAN shellからインストールしたり、rpmでパッケージから入れてみたりと試行錯誤を続け、結局ソースから以下のオプションでビルド。
$ cd mod_perl-1.99_12
$ perl Makefile.PL MP_INST_APACHE2=1 \
MP_APXS=/usr/sbin/apxs \
MP_APR_CONFIG=/usr/local/apache2/bin/apr-config \
MP_GENERATE_XS \
MP_USE_DSO \
MP_STATIC_EXTS \
MP_COMPAT_1X=1$ make
# make install
ちなみに、/usr/sbin/apxs はもともとのFedoraCoreのパッケージ版、/usr/local/apache2/bin/apr-config はソースからビルドしたもの。どちらもApacheのバージョンは2.0.54。
mod_perlがらみのエラーはなくなり何とか動きそう。しかしマニュアルにあった以外のPerlモジュールを入れろと言ってくる。(指定のモジュールをインストール中にPerlを5.6.0->5.8.8にさせられたりもしましたが。しかもインストール場所を間違えてpathが混乱して2回もインストール。)
で、
HTTP::OAI::UserAgent
Cache::Memcached
DBI-1.50.tar.gz
などを投入。これでPerlモジュール依存のエラーは解消。
httpdも起動するようになったし、さてブラウザからアクセスすると…Error 500。
logを見るとデータベースに接続できていないようだ。おかしいな。マニュアル通りにDBアクセス用のユーザを作って /etc/bibliotech.conf にも書き込んだのに。
よーくマニュアルを見て気がついた。DBのテーブルを作るSQLは作成しているのに、CREATE DATABASE していない。そうですか。方法は書かないけどそれぐらいは暗黙の了解。空気読めよと。イギリス人らしいスタイルだな。ペルーから単身渡英して駅で暮らしていたクマを受け入れる余裕があるだけのことはある。(本文とはまったく関係ないが、「老くまホーム」があるくらいペルーのクマ福祉政策は充実しているのになぜ渡英。謎だ。)
そしてテーブルを作るためSQLを食わせるとエラーを吐くMysql。どうしたものか。明日も続くのか。もう意地だ。
2006/05/24 追記
そんな苦労をしなくても、開発用メーリングリストからの最近の情報では、perl5.0.8+mod_perl2でもコードをちょっといじれば動作するようだ。
あと、MySQLの件はこちらのポカ。catとかechoしないとテキストファイル中のSQLは出力されないじゃないか。超初心者なミス。
で、とりあえず動いてはいますが…機能を何も設定していないからユーザ登録しかできない寂しい状態。時間があったらなんとかしよう。