mod_ruby
前まではerubyのインタプリタを適当な場所において、ごそごそっとリンク張るとか泥臭い事をやっていたので、jail環境で再構築ついでにmod_rubyでerubyを利用しようかな、と。
しかし、うまくいかない。
インタプリタで展開はされてるんだけど、ファイルダウンロードされてしまう。
どうも、htmlヘッダがおかしいみたい。
ウッウー。
で、調べると、こんな話が。
<% puts 1+2 %>のような簡単なrhtmlに対して
試してみたところ、eRubyによる処理は行われるものの、
Content-Type: application/x-httpd-eruby で返ってくるので
ブラウザがバイナリ扱いで保存しようとしますね。
/usr/lib/ruby/1.8/apache/eruby-run.rbの末尾のほうにunless r.content_type r.content_type = format("text/html; charset=%s", ERuby.charset) endというところがあるのですが、このときにr.content_typeには
「application/x-httpd-eruby」がすでに入ってしまっているため、
text/htmlへの書き換えが行われることなくContent-Typeの出力が
されてしまっているようです。
このunless行とend行をコメント化してApache2をreloadすると、
text/html形式でブラウザで正常に表示されます。
引用:http://lists.debian.or.jp/debian-users/200703/msg00073.html
まじっすか。
/usr/local/lib/ruby/site_ruby/1.8/apache/eruby-run.rb
に移動して、該当箇所を変更。
…おお。きちんと動いた。
何か、昔に色々あったみたいですが、その関係でごたごたしてるのかなぁ。
まったく逆の現象で。。。
http://lists.modruby.net/ml/archive/modruby-ja/200108.month/202.html
http://lists.modruby.net/ml/archive/modruby-ja/200108.month/209.html