tDiaryのmod_ruby化
tDiaryをmod_ruby化してみる。
apt-get install libapache-mod-ruby
でインストール。/etc/apache/httpd.confに
LoadModule ruby_module /usr/lib/apache/1.3/mod_ruby.so
を追加。tDiaryはCGIとして動くものが、index.rb, update.rbなので <Directory "/home/httpd/tdiary">の中で
AddHandler cgi-script .rb
となっていたところを
AddHandler ruby-script .rb
に変更。これで終りのはずだが、アクセスしてみると、
Errors in plugins? Retry to Update or Configure.
TDiary::PluginError Plugin error in '01sp.rb'. Plugin error in 'misc/plugin/category.rb'. incompatible marshal file format (can't be read) format version 4.6 required; 4.8 given (plugin/01sp.rb):162:in `instance_eval'
こんなエラーが出る。categoryプラグインが作っているDBのバージョンが、 期待しているものより新しいと言っているらしい。 今までCGIで動いていたrubyは/usr/local/bin/rubyに入っている1.8.1なのだが、 mod_ruby.soは1.6.7なのだ。/home/diary/category/以下を退避して、 category DBを作り直す。
root@obs# su - www-data www-data@obs:/home/httpd/tdiary$ echo 'conf=category;category_initialize=1' | /usr/bin/ruby-167 ./update.rb
この時、PATHの最初は/usr/local/binなので
www-data@obs:/home/httpd/tdiary$ echo 'conf=category;category_initialize=1' | /./update.rb
とやってしまうと、結局1.8.1のrubyでDBが生成されてしまうのでダメだ。 これで完了。
で、どうかと言うと、速い。それほど大きな期待はしていなかったのだが、 明らかに速い。体感、半分くらいの感じ。でも何だかばらつきが大きいような...?
Last modified: 2011-03-20 by Unknown