Then we need a lighty adapter that inherits from the FCGI one. -- Yehuda On Sun, Aug 30, 2009 at 1:27 PM, Magnus Holm wrote: > IMO, Rack::Handler::FastCGI should strictly follow the FastCGI spec. If the > FastCGI doesn't mention it, we shouldn't take care of it. > > //Magnus Holm > > > > On Sun, Aug 30, 2009 at 10:45, Martin Boese wrote: > >> You mean the Rack FastCGI Handler... >> >> if that's the case, this fix works for me: >> >> rack-1.0.0/lib/rack/handler/fastcgi.rb >> >> 48c48,55 >> < env["QUERY_STRING"] ||= "" >> --- >> > if env["PATH_INFO"].to_s.empty? then >> > env["PATH_INFO"] = env["REQUEST_URI"].split('?')[0] >> > end >> > >> > if env['QUERY_STRING'].to_s.empty? then >> > env['QUERY_STRING'] = >> env['REQUEST_URI'].scan(/.+?\?(.*)/).to_s >> > end >> >> > >> >> >> >> >> On Sat, Aug 29, 2009 at 3:06 PM, Yehuda Katz wrote: >> >>> That is definitely the intention. This should be fixed in the rack lighty >>> adapter. >>> -- Yehuda >>> >>> >>> On Sat, Aug 29, 2009 at 3:17 AM, Martin Boese wrote: >>> >>>> >>>> On Fri, Aug 28, 2009 at 11:22 PM, Magnus Holm >>>> wrote: >>>> > >>>> > There is another know issue with Lighttpd: >>>> http://github.com/rack/rack/blob/master/KNOWN-ISSUES >>>> > >>>> > Maybe they're related? >>>> > >>>> > //Magnus Holm >>>> >>>> Thanks, yes that sounds related. >>>> >>>> I was hoping that Rack will give me a standard set of environments no >>>> matter in which technologie the applicaion is deployed at the end. >>>> But I guess that should be fixed in Lighttpd's cgi implementation >>>> instead... >>>> >>>> Martin >>>> >>>> >>>> > >>>> > >>>> > On Fri, Aug 28, 2009 at 16:37, bones wrote: >>>> >> >>>> >> >>>> >> 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 >>>> > >>>> > >>>> >>> >>> >>> >>> -- >>> Yehuda Katz >>> Developer | Engine Yard >>> (ph) 718.877.1325 >>> >> >> > -- Yehuda Katz Developer | Engine Yard (ph) 718.877.1325