Thanks for pointing me in that direction.  While <Perl > did not work as 
you suggested (produced error 'no <Perl> handler specified'), it did cause 
me to grep for this error message, and it is in file 
src/modules/perl/modperl_cmd.c.  I was able to get some information from 
that code: mod_perl wants directive of the form
<Perl handler=Some::Handler>
where Some::Handler actually looks like a valid handler, i.e. has a 
subroutine called handler().  The module is compiled and handler() is 
called during config parse time.  Unfortunately, I could not figure out 
how to set Apache directives from that subroutine.  Simply setting global 
$ServerAdmin does not produce the desired effect.  Is there a global 
Apache config namespace or hash?

Also, my httpd.conf has things like this:

<Perl>
$PerlConfig = "
<VirtualHost _default_:$ssl_port>
# some directives here.
</VirtualHost>
";
</Perl>

I am at a loss as to how I'd go about replicating these dynamically 
generated directives in the new mod_perl model.

Eagerly waiting for suggestions,

  - Dmitri.

On 8 Jan 2003, Philippe M. Chiasson wrote:

> On Wed, 2003-01-08 at 00:56, Dmitri Tikhonov wrote:
> > 
> > Hi,
> 
> Simply put, there is a small difference in behaviour (bug) in apache's
> config parsing code. For now, just put
> <Perl > instead of <Perl>
> 
> Apache assumes <> containers to always have a value argument, like in
> <Foo /var>.
> 
> Will eventually be fixed though. 
> 
> > I am in the process of converting to Apache2/mod_perl2.  My old httpd.conf 
> > file contains these lines (stuff in the middle omitted):
> > 
> > -------------------------------------------------
> >     LoadModule perl_module /usr/libexec/mod_perl.so
> >     <Perl>
> >         $ServerAdmin = 'admin@'.`hostname`;
> >     </Perl>
> > -------------------------------------------------
> > 
> > After LoadModule directive, I added this line:
> > 
> > -------------------------------------------------
> >     PerlRequire /etc/httpd/conf/startup.pl
> > -------------------------------------------------
> > 
> > (taken straight from ./docs/user/config/config.pod of mod_perl
> > distribution) and uncommented 'use Apache::compat' line.
> > 
> > When I start apache, I see this error:
> > 
> > -------------------------------------------------
> > [root@audrey conf]# /usr/sbin/httpd -f /etc/httpd/conf/httpd.conf 
> > Syntax error on line 90 of /etc/httpd/conf/httpd.conf:
> > <Perl> directive missing closing '>'
> > [root@audrey conf]# 
> > -------------------------------------------------
> > 
> > I only found this recent thread  -- 
> > http://www.mail-archive.com/dev@perl.apache.org/msg03485.html -- I think 
> > it talks about <Perl> directive support not being finished (?)  Is that 
> > correct?  Documentation on <Perl> section is empty 
> > 
>(http://perl.apache.org/docs/2.0/user/config/config.html#C_E_lt_PerlE_gt___Sections).
> > 
> > I have no idea what's going on.  What am I missing?  Is there another set
> > of documentation that explains this behavior?
> > 
> > My setup: apache 2.0.43, mod_perl 1.99_07.
> > 
> > Thanks in advance.
> > 
> > - Dmitri.
> > 
> > 
> --------------------------------------------------------------------------------
> Philippe M. Chiasson /gozer\@(cpan|ectoplasm)\.org/ 88C3A5A5
> (122FF51B/C634E37B)
> http://gozer.ectoplasm.org/    F9BF E0C2 480E 7680 1AE5 3631 CB32 A107
> 88C3 A5A5
> Q: It is impossible to make anything foolproof because fools are so
> ingenious.
> perl
> -e'$$=\${gozer};{$_=unpack(P7,pack(L,$$));/^JAm_pH\n$/&&print||$$++&&redo}'
> 


Reply via email to