前回のエントリー

centOS5にmerbをインストールする

最後設定まで終わったところでrubyinlineでエラーが出ていたわけですが、それを解決しました。config.ruを書き換えます。
私は次のようにしました。

まずmerbアプリのディレクトリの直下にtmpディレクトリを作ります。
パーミッションに気をつけておいてください。その上でconfig.ruを次のようにします。

require ‘rubygems’
require ‘merb-core’

m_root = File.expand_path(File.dirname(__FILE__))
ENV["INLINEDIR"] = m_root / “tmp”
Merb::Config.setup(:merb_root   => m_root,
:environment => ENV['RACK_ENV'])
Merb.environment = Merb::Config[:environment]
Merb.root = Merb::Config[:merb_root]
Merb::BootLoader.run

# Uncomment if your app is mounted at a suburi
#if prefix = ::Merb::Config[:path_prefix]
#  use Merb::Rack::PathPrefix, prefix
#end

run Merb::Rack::Application.new

前回のエラーはruby_inlineというrubyに埋め込んだCのコードを実行するためのライブラリがテンポラリファイルを作ることに失敗していたわけです。
それをENV["INLINEDIR"]で指定してあげることで解決しました。

上のconfig.ruはこのままこぴぺしても使えるようにしてあります。tmpディレクトリだけちゃんと作ってください。

では、楽しいmerb生活を!

追記:公式wikiにpassenger + merbに関する記述があります。そちらも参考に

Deploying with Passenger