こないだは簡単に流してしまったけど、FastCGI はけっこういいねえ。 仕組みはシンプルだし、pure Ruby 版インターフェイスもあるし、 CGI からの移行も簡単だ。
cgi = CGI.new
を
FCGI.each_cgi do |cgi| .... end
に変えるだけで終わり。 まあ、こういうことができるように作っとかないとだめだけど、 それなりに作っておけば意外と簡単に変更できる。
家のウェブサーバは FastCGI にしようかな。
(13:25)
(追記) BitChannel は FastCGI に変更した。 なんかめちゃ速くなったね。 tDiary も fcgi 化できるだろうか……。
(追記2) ときどきレスポンスにひっかかりを感じることがある。 Recent のときに多いようだ。なんだろう?
しまったー!
そうだよ……内部で CVS/Entry をキャッシュしてるんだよ。 どうも表示がおかしいと思ったら、これが原因か。
まあ、見付けるのが難しい潜在バグを発見できたということで、 結果オーライだ。
(15:21)
キャッシュミスマッチは修正した。 いまいち美しい修正にならないのが残念だ。 Recent でひっかかるのもついでに直ったような気がする。
しかし本当に速いなあ。
(16:39)
バージョン 0.2 をリリースしました。
(20:49)
chroot しなければ動くようにはなった。 chroot するとなぜか cvs が exec できずに落ちる。
(root)/bc/index.rb (root)/bin/cvs
こんな配置で、File.exist?('/bin/cvs') も true になってるのに、 exec は no such file or directory になってしまう。よくわからん。
(例によって) CVS が何か余計なことをやってるんじゃないかと思って /bin/true とか /bin/hello もやってみたけど、これも exec できない。
CGI プログラム
print "Content-Type: text/html\r\n" print "\r\n" fork { exec "/bin/true" } Process.wait
エラーログ
(eval):3:in `exec': No such file or directory - /bin/true (Errno::ENOENT) from (eval):3 from (eval):2:in `fork' from (eval):2
環境は以下の通り。
とりあえずあきらめることにした。 先に webrick servlet を攻略しよう。
(21:04)
WEBrick servlet として動くようになりました。 WEBrick で CGI 使って動かしても面白くないんで、そっちは試してません。
(00:34)
そういえば Wiki 記法標準化案についてですけど。 決まったらどうするかと言えば、たぶん何もしないと思います。
だって基本的な部分はすでに実装してそうだし、 「*」のキャプションとかは現時点の文法と衝突するから実装できないし、 強調だの水平線だのは何が起ころうと入れる気はありませんから。
また「中間記法を用意して云々」っていう案も見かけますが、 それはそれで問題があると思います。
特に最後のはシステムが工夫すれば済むわけじゃないのが致命的です。 例えば pre ブロックを閉じ忘れてセーブしてしまった場合、 次はたぶん二つの記法が混ざって登場することになる。
(00:56)
Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved.
ruby自身が動いてるんなら共有ライブラリの線はないか…。
chroot $root straceで試してみるとか。
そ れ で す た
ruby は esehttpd 自体にリンクされているので、
共有ライブラリがなくても動いてしまうのでした。
/lib 以下をごっそりもってきたら行けました。
修行しなおしてきます……。