Hikiでページを作っていて、画像を表示させるために「添付ファイル」プラグインを使用しようと思ったのだが、これが簡単にいかなかった。
管理画面でプラグインを有効にするだけでいいとおもったのに、わざわざatacch.cgiをhiki/misc/plugin/attachからルートにコピーしなきゃいけない。
標準添付プラグインだというのにメンドクセー。
Hikiでページを作っていて、画像を表示させるために「添付ファイル」プラグインを使用しようと思ったのだが、これが簡単にいかなかった。
管理画面でプラグインを有効にするだけでいいとおもったのに、わざわざatacch.cgiをhiki/misc/plugin/attachからルートにコピーしなきゃいけない。
標準添付プラグインだというのにメンドクセー。
Hikiのデザインは「るびま」のパクリ。。。ロゴはGIMP2のスクリプトで簡単作成。いや~このツール便利だわ。
以下、ロゴ作成手順。
ロゴにリンクを持たせる方法がわからない。Hikiの公式サイトの説明では、出力HTMLを柔軟に変更かのうってあるけどどうすればいいんだ?
あと、検索したときにバグる。
いろいろwikiを実験した結果、Rubyで書かれたHikiを入れることにした。しかしやっぱりすんなりはいらなかったのでメモ。
.htaccess
#Options +ExecCGI
AddHandler cgi-script .cgi
DirectoryIndex hiki.cgi
<Files "hikiconf.rb">
deny from all
</Files>
hiki.cgi
#!/usr/local/bin/ruby
クッキーまわりではまったので、いろいろまとめておく。
クッキーの仕様にはバージョン0-2まである
javaの場合、v0とv1に対応しており、特にしてしなければv0の仕様に従う。
通常明示的にdomain属性を指定するのは、host.hoge.ne.jp など、hoge.ne.jpドメインのすべてのホストでクッキーを利用したい場合などに限るようである。したがって、host.hoge.ne.jpのCGIが
domain=host.hoge.ne.jp
と設定した場合、保存されるクッキーは
.host.hoge.ne.jp
となる。このため、クッキーはホスト名として保存されるのではなく、ドメイン名として保存される。
このように、特にクッキーを共用するのでなければdomain属性は省略すべきである。
最新の仕様であるRFC2965でもdomain属性を省略したときは、ホスト名となっている(ドットではじまらない)。
domain属性に設定するべきは、フルスペルのホスト名ではなくドメインのみである(host.hoge.comであれば.hoge.com)。
domain属性にホスト名をそのまま送ってしまうと、RFC2965に準拠している場合、次回から受け取れなくなってしまう。
(firefoxの場合大丈夫のようだが)
RFC2019に準拠するのであれば、domain属性が.foo.comの場合、www.foo.com はクッキーを参照できるが、a.b.foo.com はクッキーを参照できない。ただし、firefoxほか多くのブラウザでは、これに準拠しておらず(ネスケ仕様のバージョン0に準拠)普通にクッキーを送ってしまう。
ネスケの仕様では、ホスト名には少なくとも3つのドットが含まれてる必要があるとある。host.hoge.ne.jpのように通常は3つあるので納得。
Cookie test=hoge;
↑ max-age, secureなどの情報はない。
hoge.com のクッキーであれば、aaa.hoge.com, bbb.hoge.com の各ホストでクッキーを削除できるが、
aaa.hoge.com のクッキーは bbb.hoge.com のクッキーは削除できない。そもそもクライアントからクッキーが送られてこない。
下記のように、同じクッキオブジェクトで2回addCookieしすると最後のaddCookieのみ有効になり、2つクッキーは発行されないので注意
Cookie cookie = new Cookie("test", "hoge");
cookie.setMaxAge(COOKIE_AGE);
cookie.setDomain(request.getHeader("Host"));
response.addCookie(cookie);
cookie.setValue("fuga");
cookie.setMaxAge(COOKIE_AGE);
cookie.setDomain(null);
response.addCookie(cookie);
Twikiがぼつったので、今度はFreeStyleWikiを自サバに入れてみた。
ココを参考にインストール
以下、自サバのapacheの設定
<Directory "/usr/local/www/htdocs">
# ExcecCGIで実行可能にしておく
Options Indexes FollowSymLinks ExecCGI
AllowOverride None
Order allow,deny
Allow from all
# 見られたくない奴を隠す
<FilesMatch "\.(pm|dat|wiki|log)$">
deny from all
</FilesMatch>
</Directory>
# ハンドラも有効にする
AddHandler cgi-script .cgi
自サバにTWikiをインストールしてみる。
簡単にインストールできると思ったがはまった。
というのもTwikiはwiki自身の設定をTwiki管理ページで設定できるようなっており、そのページへのアクセス制限があるのだ。
以下のページが管理ページなのだが、なんどアクセスしても500エラーになってしまっていた。
http://192.168.1.2/twiki/bin/configure
で、twiki.confをよく見たら以下の記述が!
<FilesMatch "^configure.*">
SetHandler cgi-script
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 192.168.1.3
Require user JohnDoe
Satisfy Any
</FilesMatch>
ここに普段自分が使ってるローカルIPを入れたらあっけなく動いたよ。
configureページにいけるようになったが、今度はtmpディレクトリにかけないといわれる。
そこで
${TWIKI__HOME}/tmp
を作った。
んで今度はこれの保存の仕方がわからかったが、nextを押せば保存された。
このとき、初めてのときNewPasswordの方に入れないと駄目。
これはtwiki更新時にtwikiがメールで知らせてくれる機能のために必要らしい。
とくにいる機能で無いのでとりあえず無視。
どうも、Perlモジュールの「CGI::Session」がないのが原因らしい。ユーザ管理をしないのなら必要ないみたいだけど、ここでは自分だけしか編集できないような管理のしかたにしたいので、インストールする。
CPANとうものを使う必要があるらしい。初回起動時にはいろいろ設定が必要。めんどくせー
とりあえずココを参考に入れてみる
$ perl -MCPAN -e shell
↑これするとなんか対話式の設定モードになった。よくわからないのでとりあえずエンターエンター。
途中、地域を選択するところがあったのでそこはasia->japanと選択。
cpan> install CGI::Session
やっぱり動かなかった。。。
きちんと設定法を見直すか。するとlynxが必要らしい。入れる。
sudo apt-get install lynx
そしてココを参考に再度CPANの環境設定する。
$ su -
# perl -MCPAN -e shell
今度は入った。原因は最初のCPANの設定のときは一般ユーザで設定していて、lynxの設定がしてなかったせい?
lynx設定後、rootで再設定したので大丈夫になったっぽいな。
そして、やっとこさtwikiの設定にもどり、再度Saveしなおす。
やった~。errrorが消えた。
wikiのトップページ表示されたけど、CSSが適用されてないな。。。
twiki.confをよく見たらAliasの設定が間違ってた。
誤
Alias /twiki/ "/usr/local/www/twiki/bin"
正
Alias /twiki/ "/usr/local/www/twiki/"
置換みすったかな?でやっと表示にこぎつけた!
おおお!なんかみやすくていい!
で、さっそくsandboxで新規ページをつくってみる。
が、つくれない。hogeとかtestとかで作ろうとしてもNotWikiWordといわれる!
パーミッション関係の問題かな?と思ったが、よくよくメーセージを読むと
wikiWordの説明があった。
要はキャメルケースになってないページは作れない。
HogeHogeとかにすれば作れる。
てことは日本語の見出しのページは作れないのか?
。。。つくれなかったよ