mruby-hibari on mod_mrubyが動いた。
mruby-hibariというmrbgemがあり、主要なWebサーバならなんとM/WレベルでRackテイストなWebアプリを書けるようです。
Apacheでやってみたところ、少し修正して、なんとか動きました!!
まず、通常通り以下のようにmod_mrubyをビルド。
$ git clone https://github.com/matsumoto-r/mod_mruby $ cd mod_mruby $ vim build_config.rb # 依存gemにkentaro/mruby-hibariを追加します。 $ sh test.sh $ sh build.sh
で、こうして生成されたmod_mruby.soモジュールをApacheにて利用します。
サンプルにならえば、以下のようにLocationとmrubyHandlerMiddleCodeでhello, world!!ができます。
curl!!
$ curl http://lcoalhost/rack_base?hoge=fuga
$
と思いましたが、なにも返ってきません。
でもH2OでもNginxでもうまくいってるっぽいんだけどと思いつつ、mruby.confで何をやってもうまくいってくれない。。
さんざん見直した末、以下が種明かしだと気付きました。
'nginx' || 'apache'
は 'nginx'
と評価されるようですね。なので、
case engine when 'nginx' || 'apache' # => when 'nginx'
となるため、caseの中に'apache'がマッチする条件がなくなってしまうということのよう。
複数条件に正しくマッチさせるには、
case engine when 'nginx', 'apache'
とする必要があるようです。
このPR、送ったら即座にmergeしていただけました!
curl!!
$ curl http://localhost/rack_base?hoge=fuga
Hello, World!hoge: fuga
ちゃんと出ました。
自分が普段お世話になっているmrubyとそのmrbgems達のコントリビュータの末席を汚すことになり、鼻血がとまりません。