Insipidインストールしてみた

| コメント(0) | トラックバック(0)

先日取り上げたばかりのInsipidをインストールしてみた。

添付のドキュメントには最低限の情報しかない上、日本語記事が非常に少ないため、予想以上に苦戦。一部問題が残っているが、とりあえず動作させることができた。

http://orima.jp/insipid/

ただかなり行き当たりばったりで動かしたため、やり方が間違っている可能性が大。

前提条件

  • MySQLまたはPostgreSQLのいずれか
  • いくつかPerlモジュールの追加が必要

1.ダウンロード

以下のサイトより最新のInsipidの圧縮ファイルをダウンロードし、ディレクトリ付きで解凍。圧縮ファイルはtar.gz形式(というかgzip形式というのか?)なので、それに対応した解凍ソフトが必要。

Insipid - a web-based bookmark repository

2.各種ファイル修正

insipid-config.cgi修正

insipid-config.cgi.exampleをコピーして作成したinsipid-config.cgiに、DB設定およびInsipid用ユーザ設定を記述。

dbuser = DBユーザ名
dbpass = DBパスワード
dbtype = DBタイプ (mysql or Pg)

pagepath = /insipidルートパス

username = Insipidユーザ名
userpass = Insipidパスワード
htaccess修正

修正点は二つ。

  • insipid.cgiを指定しなくてもページが表示できるよう、DirectoryIndex記述を追加
  • RewriteBaseにInsipidルートパスを記述
DirectoryIndex insipid.cgi
RewriteEngine On
RewriteBase /Insipidルートパス
RewriteRule ^bookmarks/(.*) insipid.cgi?tag=$1 [QSA]
RewriteRule ^bookmarks insipid.cgi [QSA]
RewriteRule ^feeds/bookmarks/(.*) insipid.cgi?op=rss&tag=$1 [QSA]
RewriteRule ^feeds/bookmarks insipid.cgi?op=rss [QSA]
RewriteRule ^snapshot/(.*) insipid.cgi?op=viewsnapshot&md5=$1 [QSA]
リモートDBサーバ対応(リモートDBサーバ利用時のみ)

ソースを見る限り、InsipidはリモートDBサーバに対応していない(思い切り「localhost」と書いてある)ようなので、一カ所ソースを書き換える。本来は他のパラメータと同じようにinsipid-config.cgiから取得するように変えればいいのだが、面倒なのでソースにサーバ名を直書きした。

修正箇所は、lib/Database.pmの49行目。

変更前 $dsn = "DBI:$dbtype:database=$dbname;host=localhost";
変更後 $dsn = "DBI:$dbtype:database=$dbname;host=リモートサーバ名";

3.アップロード

サーバ上にInsipidインストールディレクトリ(Insipidルートパスに相当)を作成し、Insipidディレクトリの中身を丸ごと転送。

4.htaccessの名前を変更

FTPツールによりhtaccessのファイル名を「.htaccess」に変更。

5.初回アクセス

http://example.com/Insipidルートパス/への初回アクセス時に初期化が行われ、問題がなければリロードを促すメッセージが表示される。リロードを行うと何も登録されていないInsipidのトップページが表示される。

初回アクセス時にPerl moduleが不足していると、以下のようなエラー画面が表示される。

Couldn't find the module "Date/Format.pm".

You may want to search CPAN for the module or check the Insipid homepage for more information.

この場合、The CPAN Search Siteで探して来るか、Perlモジュールのインストールが自由にできる環境であればppmコマンドなどでインストールする必要がある。今回の場合、取ってきた以下のモジュールに含まれるDate、Time、XML(XML-Writer-0.600からリネーム)ディレクトリを、Insipidインストールディレクトリのlib直下にコピーした(正しいやり方か不明)。

  • XML-Writer-0.600
  • TimeDate-1.16

ログイン

loginリンクをクリックし、表示された画面でユーザ名とパスワードを入力すると、ログイン状態の画面に切り替わり、各種設定やブックマーク登録が可能となる。

ブックマーク登録

Insipid登録画面によるブックマーク登録
Insipid登録画面を表示

ログイン状態にてaddリンクをクリック。

登録内容の入力

登録するページの情報を入力。

  • URL
  • Title
  • Description
  • Tags
ブックマーク登録実行

オプションを選択してAddボタンを押下。

  • Snapshot : ページキャッシュ取得有無(キャッシュはログイン時のみ参照可能)
  • Public : ブックマーク公開/非公開
  • Return : 前画面に戻るか否か
Bookmarkletsを利用したブックマーク登録
事前準備

ログイン状態で表示されるbookmarkletsをクリックし、表示されたPost This Pageリンクを、あらかじめブラウザのブックマークまたはお気に入りに登録しておく。

ブックマーク登録実行

Insipidに追加したい画面を表示し、ブックマークより登録したリンクを選択すると、Insipidの登録画面で上書きされる。ここで通常の登録操作をすることによりInsipidにそのページが登録される。なおMTのクイックポストと異なり、別ウィンドウが開かれるわけではないので注意が必要。

ちなみにログインした状態で操作しないとうまくいない模様。

未解決の問題

ブックマークページのキャッシュを取得するsnapshot機能において、UTF-8なページに限って以下のエラーが発生して動作しない。EUC-JPおよびShift-JISなページでは問題なく動作する(まだ動作例は少ないが)。

Parsing page... Content-Type: text/html Couldn't find the module "auto/MyParser/utf8_mode.al".

You may want to search CPAN for the module or check the Insipid homepage for more information.

utf8_mode(1)という記述の問題らしいが、Perlモジュールの不足でもなさそう。以下のページを見る限り、Perl 5.8以降であれば問題ないとあるが、今使っているサーバのPerlは5.8.4なのでクリアしているはず。

blojsom@couer de lion - Parsing of undecoded UTF-8 will give garbage when decoding entities at ほげほげ

HTML::Parserに文字列を食わせるとこういうワーニングを吐くことがある。 utf8_mode(1)を呼べばよいらしい。 こんな感じ。

my $p = new HTML::Parser;
$p->utf8_mode(1);

Perl 5.8以降じゃないと使えない。

正直言ってちょっとお手上げっぽい感じ。

トラックバック(0)

トラックバックURL: http://orima.jp/mt/mt-tb.cgi/2787

コメントする

月別 アーカイブ

ウェブページ

Powered by Movable Type 6.0.3

このブログ記事について

このページは、orimaが2005年10月15日 00:31に書いたブログ記事です。

ひとつ前のブログ記事は「予想通り」です。

次のブログ記事は「MT3.2に上げるべきか悩む」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。