Main Contents
2006年01月03日
mod_ruby + railsではまった…
Rails運用環境を作ろうとしてはまった。
Apache + mod_ruby で複数のrailsアプリを動かせるようにしたかったのだが…
つまづいたのは2箇所。ひとつはWEBrickからApacheに移行しようとしたとき、もうひとつはmod_rubyで複数アプリを動かそうとしたとき。後者は結局解決できなかった。lighttpd + FastCGI環境にしておこうかしら。
WEBrickからApacheにサーバーを変更したとき
Application Errorが出て動かない。
error.logには 「Premature end of script headers: dispatch.cgi」としか出ないし、development.logには何もでない。結局、/tmp/ruby_sess.* が残っているのを見つけて削除したら、動くようになった。これで半日のロス。
mod_rubyで複数アプリを動かそうとしたとき
以下のサイトを参考にして、
Journal InTime - Apache::RailsDispatcher
次のように作業するが、cgiの内容がそのまま表示されてしまう。mod_ruby添付の解説のようにapache/ruby-runを使えば動くのだけれど、これでは複数アプリは動かせないらしいのだ。
apxsコマンドが必要になるので、開発用パッケージをインストールする。
aptitude install apache2-dev
Subversionから最新のmod_rubyのソースを取得してビルドする
svn co http://svn.modruby.net/repos/mod_ruby/trunk mod_ruby cd mod_ruby ./configure.rb --with-apxs=/usr/bin/apxs2 make make install
/etc/apache2/mods-enabled/ruby.loadを編集する
LoadModule ruby_module /usr/lib/apache2/modules/mod_ruby.so
RubySafeLevel 0
<IfModule mod_ruby.c>
RubyRequire rubygems
RubyRequire apache/rails-dispatcher
RubyTransHandler Apache::RailsDispatcher.instance
<Location /cookbook>
AddHandler ruby-object .rb
AddHandler ruby-object .cgi
RubyHandler Apache::RailsDispatcher.instance
RubyOption rails_uri_root /cookbook
RubyOption rails_root /var/www/store/cookbook
RubyOption rails_env development
</Location>
</IfModule>
- by
- at 2006年01月03日 15:32
- in Install Log
TrackBacks
トラックバックURL:
Post a comment