* 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
* Re: Lighttpd's FastCGI Environment
2009-08-28 14:37 Lighttpd's FastCGI Environment bones
@ 2009-08-28 20:43 ` Yehuda Katz
2009-08-28 22:22 ` Magnus Holm
1 sibling, 0 replies; 9+ messages in thread
From: Yehuda Katz @ 2009-08-28 20:43 UTC (permalink / raw)
To: rack-devel
[-- Attachment #1: Type: text/plain, Size: 1436 bytes --]
These sounds like bugs in the Rack LightHTTP adapter. It looks like
LightHTTP is supposed to work: http://rack.rubyforge.org/doc/
-- Yehuda
On Fri, Aug 28, 2009 at 9:37 AM, bones <boesemar@googlemail.com> 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
[-- Attachment #2: Type: text/html, Size: 2029 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Lighttpd's FastCGI Environment
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
1 sibling, 1 reply; 9+ messages in thread
From: Magnus Holm @ 2009-08-28 22:22 UTC (permalink / raw)
To: rack-devel
[-- Attachment #1: Type: text/plain, Size: 1368 bytes --]
There is another know issue with Lighttpd:
http://github.com/rack/rack/blob/master/KNOWN-ISSUES
Maybe they're related?
//Magnus Holm
On Fri, Aug 28, 2009 at 16:37, bones <boesemar@googlemail.com> 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
>
[-- Attachment #2: Type: text/html, Size: 2037 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Lighttpd's FastCGI Environment
2009-08-28 22:22 ` Magnus Holm
@ 2009-08-29 8:17 ` Martin Boese
2009-08-29 14:06 ` Yehuda Katz
0 siblings, 1 reply; 9+ messages in thread
From: Martin Boese @ 2009-08-29 8:17 UTC (permalink / raw)
To: rack-devel
On Fri, Aug 28, 2009 at 11:22 PM, Magnus Holm <judofyr@gmail.com> 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 <boesemar@googlemail.com> 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
>
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Lighttpd's FastCGI Environment
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
0 siblings, 2 replies; 9+ messages in thread
From: Yehuda Katz @ 2009-08-29 14:06 UTC (permalink / raw)
To: rack-devel
[-- Attachment #1: Type: text/plain, Size: 2122 bytes --]
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 <boesemar@googlemail.com>wrote:
>
> On Fri, Aug 28, 2009 at 11:22 PM, Magnus Holm <judofyr@gmail.com> 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 <boesemar@googlemail.com> 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
[-- Attachment #2: Type: text/html, Size: 3248 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Lighttpd's FastCGI Environment
2009-08-29 14:06 ` Yehuda Katz
@ 2009-08-29 17:59 ` Magnus Holm
2009-08-30 8:45 ` Martin Boese
1 sibling, 0 replies; 9+ messages in thread
From: Magnus Holm @ 2009-08-29 17:59 UTC (permalink / raw)
To: rack-devel
[-- Attachment #1: Type: text/plain, Size: 2327 bytes --]
Which rack lighty adapter?
//Magnus Holm
On Sat, Aug 29, 2009 at 16:06, Yehuda Katz <wycats@gmail.com> 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 <boesemar@googlemail.com>wrote:
>
>>
>> On Fri, Aug 28, 2009 at 11:22 PM, Magnus Holm <judofyr@gmail.com> 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 <boesemar@googlemail.com> 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
>
[-- Attachment #2: Type: text/html, Size: 3799 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Lighttpd's FastCGI Environment
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
1 sibling, 1 reply; 9+ messages in thread
From: Martin Boese @ 2009-08-30 8:45 UTC (permalink / raw)
To: rack-devel
[-- Attachment #1: Type: text/plain, Size: 2732 bytes --]
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 <wycats@gmail.com> 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 <boesemar@googlemail.com>wrote:
>
>>
>> On Fri, Aug 28, 2009 at 11:22 PM, Magnus Holm <judofyr@gmail.com> 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 <boesemar@googlemail.com> 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
>
[-- Attachment #2: Type: text/html, Size: 4358 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Lighttpd's FastCGI Environment
2009-08-30 8:45 ` Martin Boese
@ 2009-08-30 18:27 ` Magnus Holm
2009-08-30 18:51 ` Yehuda Katz
0 siblings, 1 reply; 9+ messages in thread
From: Magnus Holm @ 2009-08-30 18:27 UTC (permalink / raw)
To: rack-devel
[-- Attachment #1: Type: text/plain, Size: 3089 bytes --]
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 <boesemar@googlemail.com> 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 <wycats@gmail.com> 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 <boesemar@googlemail.com>wrote:
>>
>>>
>>> On Fri, Aug 28, 2009 at 11:22 PM, Magnus Holm <judofyr@gmail.com> 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 <boesemar@googlemail.com> 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
>>
>
>
[-- Attachment #2: Type: text/html, Size: 5033 bytes --]
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Lighttpd's FastCGI Environment
2009-08-30 18:27 ` Magnus Holm
@ 2009-08-30 18:51 ` Yehuda Katz
0 siblings, 0 replies; 9+ messages in thread
From: Yehuda Katz @ 2009-08-30 18:51 UTC (permalink / raw)
To: rack-devel
[-- Attachment #1: Type: text/plain, Size: 3425 bytes --]
Then we need a lighty adapter that inherits from the FCGI one.
-- Yehuda
On Sun, Aug 30, 2009 at 1:27 PM, Magnus Holm <judofyr@gmail.com> 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 <boesemar@googlemail.com>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 <wycats@gmail.com> 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 <boesemar@googlemail.com>wrote:
>>>
>>>>
>>>> On Fri, Aug 28, 2009 at 11:22 PM, Magnus Holm <judofyr@gmail.com>
>>>> 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 <boesemar@googlemail.com> 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
[-- Attachment #2: Type: text/html, Size: 5506 bytes --]
^ 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).