SVX日記
2015-02-27(Fri) Yet Another Hikiインストール
今回、例によって各種設定の記録を残しながら業務サーバの構築を行なっていたのだが、構築中のサーバ上にHikiを導入し、その上に記録を残すことを思いついた。もしオイラが頓死しても、記録が見つかれば他の誰かがメンテナンスを引き継げる可能性がある。
/root # aptitude install hiki
/home/user $ mkdir public_html/hiki
/home/user $ hikisetup --lang ja public_html/hiki
/home/user $ vi /home/user/public_html/hiki/hikiconf.rb
/root # aptitude install apache2-suexec
/home/user $ chmod 755 public_html/
アッサリ動いたなぁ、と感心しつつ、自作のメーラ「mave」から文書の編集作業が行える(現公開バージョンには未搭載)よう設定してみる。既存文書は読み込めるが、文書の更新ができない。しばらく機能を使ってないし、潜在バグでも残っていたかと思って、ブラウザ上からの更新を試してみたところ、なんと、ブラウザ上からもダメ。「指定したタイトルは既に存在しています。」なんて出る。なんや、Hikiのバグやんか。
どうやら、文書のタイトルが多バイト文字の場合のみ、問題が出るらしい。「指定したタイトルは既に存在しています。」というメッセージから、逆にコードを追っていったところ、文書の既存チェック部分でコケていた。エンコーディングの変換を忘れてる。
/usr/share/hiki/hiki # diff -bc command.rb.org command.rb
*** command.rb.org 2014-01-17 01:02:29.000000000 +0900
--- command.rb 2015-02-27 17:28:04.915669859 +0900
***************
*** 553,558 ****
--- 553,559 ----
end
p = (@db.select {|p| p[:title] and unescape(p[:title]) == page})[0]
+ p.force_encoding('UTF-8')
if p != @p and p != nil
return p
end