rack-devel archive mirror (unofficial) https://groups.google.com/group/rack-devel
 help / color / mirror / Atom feed
* Lighttpd's FastCGI Environment
@ 2009-08-28 14:37 bones
  2009-08-28 20:43 ` Yehuda Katz
  2009-08-28 22:22 ` Magnus Holm
  0 siblings, 2 replies; 9+ messages in thread
From: bones @ 2009-08-28 14:37 UTC (permalink / raw)
  To: Rack Development


I am porting my application from ruby fcgi to rack which is in
production using the Lighttpd webserver.

I noticed that lighttpd doesn't send PATH_INFO or QUERY_STRING so I
used to patch it by reconstructing it from REQUEST_URI. Now with Rack
I have exactly the same situation. Rack::Request.GET is empty. This
fix on the environment makes it working:

class RackApp

  def fix_env(ec)
       if (ec['PATH_INFO'].to_s.empty?) then
          pi =  ec['REQUEST_URI']
          pi = pi[0..(pi.index('?')-1)] if pi.include?('?')
          ec['PATH_INFO'] = pi
       end

       if (ec['QUERY_STRING'].to_s.empty?) then
          ec['QUERY_STRING'] = ec['REQUEST_URI'].include?('?') ?
              ec['REQUEST_URI'].scan(/.?\?(.*)/)[0][0] :
              ""
       end
       ec
  end

 def call(env)
    Rack::Request.new(fix_env(env))
   # [...]
  end
end


As far as I know Lighttpd and Rails (which used Rack?!) is a popular
combination - so I am quiet surprised that I don't find anything
related on the web. Especially - shouldn't that be implemented into
Rack's CGI/FastCGI Handler?

Cheers,
Martin

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-08-30 19:02 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-08-28 14:37 Lighttpd's FastCGI Environment bones
2009-08-28 20:43 ` Yehuda Katz
2009-08-28 22:22 ` Magnus Holm
2009-08-29  8:17   ` Martin Boese
2009-08-29 14:06     ` Yehuda Katz
2009-08-29 17:59       ` Magnus Holm
2009-08-30  8:45       ` Martin Boese
2009-08-30 18:27         ` Magnus Holm
2009-08-30 18:51           ` Yehuda Katz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).