2007年10月24日水曜日

Hikiの添付ファイル

0 コメント


Hikiでページを作っていて、画像を表示させるために「添付ファイル」プラグインを使用しようと思ったのだが、これが簡単にいかなかった。


管理画面でプラグインを有効にするだけでいいとおもったのに、わざわざatacch.cgiをhiki/misc/plugin/attachからルートにコピーしなきゃいけない。


標準添付プラグインだというのにメンドクセー。





2007年10月21日日曜日

hiki用のロゴ作成

0 コメント


Hikiのデザインは「るびま」のパクリ。。。ロゴはGIMP2のスクリプトで簡単作成。いや~このツール便利だわ。


以下、ロゴ作成手順。




  1. GIMP2を起動しツールボックスをアクティブ

  2. 拡張→Script-Fu→ロゴ→グラデーションめんどりを選択

  3. 文字入力


ロゴにリンクを持たせる方法がわからない。Hikiの公式サイトの説明では、出力HTMLを柔軟に変更かのうってあるけどどうすればいいんだ?


あと、検索したときにバグる。





Hikiのインストール(Sakuraインターネット)

0 コメント


いろいろwikiを実験した結果、Rubyで書かれたHikiを入れることにした。しかしやっぱりすんなりはいらなかったのでメモ。



  • .htaccessでは、Optionsはコメントにしないといけない。500エラーになる

  • hiki.cgiでは、/usr/bin/envが使えない。


.htaccess



#Options +ExecCGI
AddHandler cgi-script .cgi
DirectoryIndex hiki.cgi
<Files "hikiconf.rb">
deny from all
</Files>




hiki.cgi



#!/usr/local/bin/ruby





2007年10月16日火曜日

クッキーメモ

0 コメント


クッキーまわりではまったので、いろいろまとめておく。


クッキーのバージョン


クッキーの仕様にはバージョン0-2まである





  • ver0. ネスケが策定したもの

  • ver1. ネスケの仕様をもとに厳密にしたもの。多くのブラウザがサポートしてる(RFC2019)

  • ver2. さらに整理したもの?あまりサポートされてない(RFC2965)


javaの場合、v0とv1に対応しており、特にしてしなければv0の仕様に従う。






domain値について



  • domain属性を省略した場合は、そのクッキーをセットしたサーバのホスト名がブラウザに設定される。

  • domain属性にホスト名を設定した場合、ブラウザ側で勝手にドットがつく。これはRFCに準拠してると思われる。

  • 普通はdomain属性は設定してはいけない。domain属性を設定するのは、共通ドメインでクッキーを共用したいときのみである。



通常明示的にdomain属性を指定するのは、host.hoge.ne.jp など、hoge.ne.jpドメインのすべてのホストでクッキーを利用したい場合などに限るようである。したがって、host.hoge.ne.jpのCGIが




domain=host.hoge.ne.jp


と設定した場合、保存されるクッキーは



.host.hoge.ne.jp



となる。このため、クッキーはホスト名として保存されるのではなく、ドメイン名として保存される。


このように、特にクッキーを共用するのでなければdomain属性は省略すべきである。



余談1

最新の仕様であるRFC2965でもdomain属性を省略したときは、ホスト名となっている(ドットではじまらない)。


domain属性に設定するべきは、フルスペルのホスト名ではなくドメインのみである(host.hoge.comであれば.hoge.com)。


domain属性にホスト名をそのまま送ってしまうと、RFC2965に準拠している場合、次回から受け取れなくなってしまう。


(firefoxの場合大丈夫のようだが)


余談2


RFC2019に準拠するのであれば、domain属性が.foo.comの場合、www.foo.com はクッキーを参照できるが、a.b.foo.com はクッキーを参照できない。ただし、firefoxほか多くのブラウザでは、これに準拠しておらず(ネスケ仕様のバージョン0に準拠)普通にクッキーを送ってしまう。



余談3


ネスケの仕様では、ホスト名には少なくとも3つのドットが含まれてる必要があるとある。host.hoge.ne.jpのように通常は3つあるので納得。



ヘッダについて



  • ネスケ仕様によると、Set-Cookieヘッダは一度のレスポンスで何度も発行できる。

  • 同じパス、同じクッキー名であってもドメイン属性が違えば違うクッキーとして扱われる。

  • クライントからサーバへはクッキー本体以外の情報(属性?)は送られない。



Cookie test=hoge;


↑ max-age, secureなどの情報はない。




  • Set-Cookieヘッダで削除できるのは、実際にそのクッキーが持っているドメイン情報のホストだけである。



hoge.com のクッキーであれば、aaa.hoge.com, bbb.hoge.com の各ホストでクッキーを削除できるが、


aaa.hoge.com のクッキーは bbb.hoge.com のクッキーは削除できない。そもそもクライアントからクッキーが送られてこない。



Java Tips



下記のように、同じクッキオブジェクトで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);





2007年10月13日土曜日

FreeStyleWikiの設置

0 コメント


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









2007年10月10日水曜日

twikiでハマリ

0 コメント


configureページにアクセスできない


参考ページ



自サバに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を入れたらあっけなく動いたよ。


tmpに書き込めないと怒られる


configureページにいけるようになったが、今度はtmpディレクトリにかけないといわれる。


そこで



${TWIKI__HOME}/tmp


を作った。


んで今度はこれの保存の仕方がわからかったが、nextを押せば保存された。


このとき、初めてのときNewPasswordの方に入れないと駄目。


STMPTとMAILHOSTがないと怒られる


これはtwiki更新時にtwikiがメールで知らせてくれる機能のために必要らしい。


とくにいる機能で無いのでとりあえず無視。


securtySetupでエラー


どうも、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が消えた。




CSSが適用されない


wikiのトップページ表示されたけど、CSSが適用されてないな。。。


twiki.confをよく見たらAliasの設定が間違ってた。




Alias /twiki/ "/usr/local/www/twiki/bin"

Alias /twiki/ "/usr/local/www/twiki/"


置換みすったかな?でやっと表示にこぎつけた!


おおお!なんかみやすくていい!






ページがつくれない


で、さっそくsandboxで新規ページをつくってみる。


が、つくれない。hogeとかtestとかで作ろうとしてもNotWikiWordといわれる!


パーミッション関係の問題かな?と思ったが、よくよくメーセージを読むと


wikiWordの説明があった。


要はキャメルケースになってないページは作れない。


HogeHogeとかにすれば作れる。


てことは日本語の見出しのページは作れないのか?


。。。つくれなかったよ