FastCGIがいろいろうまくいかない

http://sinatra-book.gittr.com/に書いてあるFastCGI用設定は2010/5/4現在outdated。

set :logging, false
set :server, "FastCGI"

のみでいいはず。

しかしPATH_INFOは空になるので、REQUEST_URIから適当にとってきてやる

class Rack::Handler::FastCGI
  class <<self
    alias rack_serve serve

    def serve(request, app)
      env = request.env
      parts = env['REQUEST_URI'].to_s.split('?')
      env['SCRIPT_NAME'] = ''
      env['PATH_INFO'] = parts[0] if env['PATH_INFO'] == ''
      rack_serve(request, app)
    end
  end
end

結局これでもQUERY_STRINGが消えるとかいろいろ面倒になって後ろにthinおく事に。