[cgiapp] Location not found with CGI::Application::Dispatch
under mod_perl V 2
Ron Savage
ron at savage.net.au
Mon Sep 1 18:32:09 EDT 2008
Hi Michael
On Mon, 2008-09-01 at 10:06 -0400, Michael Peters wrote:
> Ron Savage wrote:
>
> > use CGI::Application::Plugin::Apache;
>
> Just a word of warning about C::A::P::Apache. The idea was that
> $self->query would return an Apache::Request object instead of a CGI.pm
> object. This would make things faster and use less memory. But so many
> other C::A plugins assume that $self->query is a CGI.pm object that if
> you use CAP::Apache with other plugins things break in weird ways. So,
> as the author of CAP::Apache, I'd warn against using it if you want to
> use any other C::A plugins. If you just want to use it by itself, it
> should be fine though.
Thanx for the reminder. I did note that after reading the docs, and am
prepared to see where this takes me.
I'm not committed to Apache::Request. I can easily fall back to
CGI::Simple, as always.
And, in reference to the other post, I was thinking of trying Titanium,
and am appropriately uneasy about the CGI-dependency issue :-(.
> > <Location /local>
> > SetHandler perl-script
> > PerlResponseHandler CGI::Application::Dispatch
> > PerlSetVar CGIAPP_DISPATCH_PREFIX Local
> > </Location>
>
> You can use C::A::Dispatch as the handler if you want, but I would
> recommend that you subclass it and create your own dispatch table in
> your subclass. It's much easier to control things.
Will do. It's just more work....
> > (4)
> > I'm hoping to hit http://127.0.0.1/local/sites and have
> > CGI::Application::Dispatch fire up Local::Sites, but I get:
> > Not Found
> > The requested URL /local/sites was not found on this server.
>
> Not Found is what Dispatch returns when it either can't translate the
> PATH_INFO into a module name or can't find the module.
OK. I was wondering if Apache was looking for /local/sites before
Dispatch had a change to kick in. I shall investigate.
> > (5)
> > There is nothing in logs/error_log, and only this in logs/access_log:
> > 127.0.0.1 - - [01/Sep/2008:15:01:18 +1000] "GET /local/sites HTTP/1.1"
> > 404 209
> >
> > Is the problem that the docs for CGI::Application::Dispatch are Apache
> > V1 oriented, and that something different needs to be done for V2?
>
> It should work with V2. Try setting debug to true in your subclass and
> see what happens. Or can set it within apache's config using
> CGIAPP_DISPATCH_DEBUG (I just realized this isn't documented)
>
> PerlSetVar CGIAPP_DISPATCH_PREFIX 1
s/PREFIX/DEBUG/ if ($I_guess_correctly);
--
Ron Savage
ron at savage.net.au
http://savage.net.au/index.html
More information about the cgiapp
mailing list