Hikiのmod_ruby化
Hikiの0.8.0 preview1がリリースされた。mod_rubyに正式対応したそうなので、早速試してみようかと。が、rubyが1.8以降になってしまってる。woodyのlibapache-mod-rubyは1.6.7だ。仕方ないのでソースから入れてあったapache2で試すことに。apache2にはmod_rubyが無いので、まずこれから。
$ tar zxvf mod_ruby-1.2.0.tar.gz $ cd mod_ruby-1.2.0/ $ ./configure.rb --with-apxs=/usr/local/apache2/bin/apxs
/usr/local/apache2/bin/apxsの先頭に
#!/usr/local/bin/perl -w
と書いてあってエラーになるので(今まで使ったこと無かったのか?)、
# ln -s /usr/bin/perl /usr/local/bin/
としてから作業継続。
$ make # make install
httpd.confに以下を追加。
LoadModule ruby_module modules/mod_ruby.so
続いてHiki本体。hikifarmにしたいのでmisc/hikifarm/READMEに従ってインストール。
Hiki本体 → /usr/local/hiki-0.8.0 CGI → /home/httpd/hiki08 データ → /home/hiki08-data
httpd.confに以下を追加。
Alias /hiki "/home/httpd/hiki08" <Directory "/home/httpd/hiki08"> AllowOverride None Options +ExecCGI +FollowSymLinks #AddHandler cgi-script .cgi RubyRequire apache/ruby-run <Files *.cgi> SetHandler ruby-object RubyHandler Apache::RubyRun.instance </Files> DirectoryIndex index.cgi Allow from all </Directory>
これで完了。0.6.5のhiki-data/をそのままコピーするとinternal errorになるので、まずメニューからWikiサイトを作ってデータだけコピーする。
Wikiサイト名/hiki.conf
のフォーマットが違うのがいけないらしい。しかもその場合は、
http://server/hiki/Wikiサイト名/
は問題無く動くのに、
http://server/hiki/
がinternal errorなので、非常にわかりにくい。あと、管理メニューで更新すると落ちる。これもhiki.confのフォーマットか?落ちるとhiki.confが無くなってしまうようなので、あんまり試してない。
何はともあれ、それなりに動くようだ。てか、あからさまに速い。下手したら倍くらいの感じ。でもかみさんは満足しないだろーなー...
動くとなったら、他のものもさっさと移行して、apache2に一本化してしまいたい。tDiaryはhttpd.confの追加だけで問題無さそう。
Alias /hdiary "/home/httpd/tdiary" <Directory "/home/httpd/tdiary"> AllowOverride None Options +ExecCGI #AddHandler cgi-script .rb RubyRequire apache/ruby-run <Files *.rb> SetHandler ruby-object RubyHandler Apache::RubyRun.instance </Files> DirectoryIndex index.rb Order allow,deny Allow from all <Files update.rb> AuthName tDiary AuthType Basic AuthUserFile /home/.htpasswd.md5 Require user xxx </Files> </Directory>
#ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/" ScriptAlias /cgi-bin/ "/usr/lib/cgi-bin/"
例によってnamazuの検索結果が化けるので、DefaultCharsetをコメントアウト。
#AddDefaultCharset ISO-8859-1
cgiディレクトリの変更でsqwebmailも動くのではと思ったが、どうもダメっぽい。どうやらSSLが動いてない模様。セットアップ済のはずなのだが...調べてみると、443がlistenしてない。443ポートはssl.confで指定していて、httpd.confがssl.confをincludeしている。試しにssl.conf全体を囲んでいる、
#<IfDefine SSL>
をコメントアウトしたら動くようになった。サーバ証明書もセットアップしてあったので、以前は動いていたはずなのだが...意味わからんが、とりあえず動いたのでそれ以上追求せず。これで一通り常用していたものはapache2に移行できているはずなので、当面様子を見ることに。
忘れてた。Hikiの自作プラグインがまだだ...