This is part of The Pile, a partial archive of some open source mailing lists and newsgroups.
To: modperl@apache.org From: pilsl@goldfisch.at Subject: disable mod_perl for certain virtual hosts/folders Date: Mon, 21 Jan 2002 22:06:13 +0100 On my Apache mod_perl is generally enabled with the following statement: <Directory "/data/apache"> <Files ~ "\.pl$"> SetHandler perl-script PerlHandler Apache::Registry Options +ExecCGI </Files> </Directory> Now I've couple of pl-files in a certain virtual host that dont run under mod_perl. How can I disable mod_perl for this virtual host or a certain folder ? I tried (in the virtual-host config): <Files ~ "\.pl$"> SetHandler cgi-script Options +ExecCGI </Files> and even <Files ~ "\.pl$"> SetHandler default-handler Options +ExecCGI </Files> but it didnt work - I have the feeling that I also should specifiy PerlHandler, but dont know to which value (tried to set it to 'default-handler' but scripts are still running under mod_perl) any help appretiated, thnx, peter ps: scripts also dont run under PerlRun - they are really badstyled. === To: pilsl@goldfisch.at From: Geoffrey Young <geoff@modperlcookbook.org> Subject: Re: disable mod_perl for certain virtual Date: Tue, 22 Jan 2002 08:31:02 -0500 pilsl@goldfisch.at wrote: > > On my Apache mod_perl is generally enabled with the following statement: > > <Directory "/data/apache"> > <Files ~ "\.pl$"> > SetHandler perl-script > PerlHandler Apache::Registry > Options +ExecCGI > </Files> > </Directory> you might have better luck with something like <Directory "/data/apache"> AddHandler .pl perl-script PerlHandler Apache::Registry Options +ExecCGI </Directory> which should work. === To: Geoffrey Young <geoff@modperlcookbook.org> From: pilsl@goldfisch.at Subject: Re: disable mod_perl for certain virtual Date: Tue, 22 Jan 2002 14:48:26 +0100 On Tue, Jan 22, 2002 at 08:31:02AM -0500, Geoffrey Young wrote: > pilsl@goldfisch.at wrote: > > > > On my Apache mod_perl is generally enabled with the following statement: > > > > <Directory "/data/apache"> > > <Files ~ "\.pl$"> > > SetHandler perl-script > > PerlHandler Apache::Registry > > Options +ExecCGI > > </Files> > > </Directory> > > you might have better luck with something like > > <Directory "/data/apache"> > AddHandler .pl perl-script > PerlHandler Apache::Registry > Options +ExecCGI > </Directory> > thnx, but: This part doesnt make the problem. mod_perl works like a charm. Problem is how to deactivate it for a certain location ? thnx, peter === To: pilsl@goldfisch.at From: Geoffrey Young <geoff@modperlcookbook.org> Subject: Re: disable mod_perl for certain virtual Date: Tue, 22 Jan 2002 08:53:39 -0500 > > > > <Directory "/data/apache"> > > AddHandler .pl perl-script > > PerlHandler Apache::Registry > > Options +ExecCGI > > </Directory> > > > > thnx, but: This part doesnt make the problem. mod_perl works like a > charm. Problem is how to deactivate it for a certain location ? well, only .pl files will be handled by Apache::Registry under this config - /data/apache/foo.html ought to be handled by core. unless you have a global SetHandler perl-script somewhere, mod_perl should not handle the content-generation phase without being further specified. === To: Geoffrey Young <geoff@modperlcookbook.org> From: pilsl@goldfisch.at Subject: Re: disable mod_perl for certain virtual Date: Tue, 22 Jan 2002 15:02:58 +0100 On Tue, Jan 22, 2002 at 08:53:39AM -0500, Geoffrey Young wrote: > > > > > > > <Directory "/data/apache"> > > > AddHandler .pl perl-script > > > PerlHandler Apache::Registry > > > Options +ExecCGI > > > </Directory> > > > > > > > thnx, but: This part doesnt make the problem. mod_perl works like a > > charm. Problem is how to deactivate it for a certain location ? > > well, only .pl files will be handled by Apache::Registry under this > config - /data/apache/foo.html ought to be handled by core. > > unless you have a global SetHandler perl-script somewhere, mod_perl > should not handle the content-generation phase without being further > specified. > but this is what my config does: <Directory "/data/apache"> <Files ~ "\.pl$"> SetHandler perl-script PerlHandler Apache::Registry Options +ExecCGI </Files> </Directory> only pl-files are affected. Unfortunately I have some pl-files that must not run under mod_perl (even not under PerlRun cause they are really dirty) and I wonder if there is no way to set the orginal cgi-handler (that does not use mod_perl) for a certain location/virtual host. I thought this default-handler is cgi-script, but SetHandler cgi-script in a virtual host does not do the trick. The only way I've found by now is not to enable mod_perl globally, but put the above config in each virtual-host section but the one that contains the mad pl-files. While this is what I do now, I really wonder I one cant disable mod_perl .. thnx, peter === To: modperl@apache.org From: Thomas Klausner <domm@zsi.at> Subject: Re: disable mod_perl for certain virtual Date: Tue, 22 Jan 2002 17:00:13 +0100 Hi! On Tue, Jan 22, 2002 at 03:02:58PM +0100, pilsl@goldfisch.at wrote: > only pl-files are affected. Unfortunately I have some pl-files that > must not run under mod_perl (even not under PerlRun cause they are > really dirty) and I wonder if there is no way to set the orginal > cgi-handler (that does not use mod_perl) for a certain > location/virtual host. > I thought this default-handler is cgi-script, but > > SetHandler cgi-script > > in a virtual host does not do the trick. What about <Location /plain-cgi/> SetHandler cgi-script Options ExecCGI allow from all </Location> === To: modperl@apache.org From: Rick Myers <rik@sumthin.nu> Subject: Re: disable mod_perl for certain virtual Date: Tue, 22 Jan 2002 18:28:12 -0500 On Jan 22, 2002 at 15:02:58 +0100, pilsl@goldfisch.at wrote: > > On Tue, Jan 22, 2002 at 08:53:39AM -0500, Geoffrey Young wrote: > > > > > > > > > > <Directory "/data/apache"> > > > > AddHandler .pl perl-script > > > > PerlHandler Apache::Registry > > > > Options +ExecCGI > > > > </Directory> > > > > > > > > > > thnx, but: This part doesnt make the problem. mod_perl works like a > > > charm. Problem is how to deactivate it for a certain location ? > > > > well, only .pl files will be handled by Apache::Registry under this > > config - /data/apache/foo.html ought to be handled by core. > > > > unless you have a global SetHandler perl-script somewhere, mod_perl > > should not handle the content-generation phase without being further > > specified. > > > > > but this is what my config does: > > <Directory "/data/apache"> > <Files ~ "\.pl$"> > SetHandler perl-script > PerlHandler Apache::Registry > Options +ExecCGI > </Files> > </Directory> > > > only pl-files are affected. Unfortunately I have some pl-files that > must not run under mod_perl (even not under PerlRun cause they are > really dirty) and I wonder if there is no way to set the orginal > cgi-handler (that does not use mod_perl) for a certain > location/virtual host. > I thought this default-handler is cgi-script, but > > SetHandler cgi-script > > in a virtual host does not do the trick. > > The only way I've found by now is not to enable mod_perl globally, but > put the above config in each virtual-host section but the one that > contains the mad pl-files. > > While this is what I do now, I really wonder I one can't disable > mod_perl .. Actually, you can. But you have to use mod_perl at a higher level to do it. See this thread for a glimpse of happenings when I asked a similar question... http://mathforum.org/epigone/modperl/kerdspangun/ Eric Cholet volunteered some code privately which did the trick. It involved using a TransHandler to call set_handlers(PerlHandler => undef), but only if there was a PerlSetVar within my Location container. I tried a similar technique for your problem, but it seems you can either undef the later handlers or set them as a code ref -- meaning you can either tell it to use default-handler or another perl handler. I can't imagine a way to set it back to cgi-script. === To: Rick Myers <rik@sumthin.nu> From: lesmikesell@attbi.com Subject: Re: disable mod_perl for certain virtual Date: Wed, 23 Jan 2002 05:55:43 +0000 > > > While this is what I do now, I really wonder I one cant disable > > mod_perl .. > > Actually, you can. But you have to use mod_perl at a higher > level to do it. I normally have a front-end proxy and use something like: RewriteRule ^path/pattern - [T=application/x-httpd-cgi] ahead of the rule that proxies the rest to force execution as a cgi in the front-end httpd. Won't that work even if the httpd includes mod_perl? === To: pilsl@goldfisch.at, Geoffrey Young From: Merlin <merlin@camelot.co.pt> Subject: Re: disable mod_perl for certain virtual Date: Tue, 22 Jan 2002 13:37:07 +0000 Hi peter, If I got, the problem is yours the problem about disabling mod_perl. You can do that with somthing like this: <VirtualHost ...> ... <Location /> SetHandler default-handler </Location> </VirtualHost> ===