Well I've just converted all places in httpd.conf where I need to do
interpolation to use here documents and $PerlConfig so consider me a convert.

Quoting "Andreas J. Koenig" <[EMAIL PROTECTED]>:

> >>>>> On Wed,  2 Aug 2006 14:16:00 -0500, [EMAIL PROTECTED] said:
> 
>   > Can you show me how this can be configured then without using
> $PerlConfig
>   >   JkWorkerProperty worker.list=myWorker
>   >   JkWorkerProperty worker.myWorker.port=$workerPort
>   >   JkWorkerProperty worker.myWorker.host=127.0.0.1
>   >   JkWorkerProperty worker.myWorker.type=ajp13
>   >   JkWorkerProperty worker.myWorker.secret=secretword
> 
> I think such things can _only_ be done with $PerlConfig. That's why I
> use it everywhere. I only have to write things as documented in the
> apache docs and need not understand the subtleties of the other
> variables supported by Apache*::PerlSections
> 
>   > If I try
> 
>   > push @JkWorkerProperty, "worker.list=myWorker";
> 
>   > it doesn't setup right.
> 
> Not surprising for me.
> 
>   > This is rather unique because it's valid apache syntax but not that
> common
> 
> I cannot understand your sentence because I see no valid apache syntax here.
> 
>   > I'm now using $PerlConfig to work around this but I'd like to know if
> there 
>   > was another way.
> 
>   > This is how I'm 
> 
>   > <Perl>
> 
>   >   my $logDir = $ENV{'X_LOGDIR'};
>   >   my $workerPort = $ENV{'X_WORKER_PORT'};
>   
>   >   $PerlConfig .=<<END;
>   >   JkWorkerProperty worker.list=myWorker
>   >   JkWorkerProperty worker.myWorker.port=$workerPort
>   >   JkWorkerProperty worker.myWorker.host=127.0.0.1
>   >   JkWorkerProperty worker.myWorker.type=ajp13
>   >   JkWorkerProperty worker.myWorker.secret=secretword
>   >   JkLogFile $logDir/mod_jk.log
>   >   JkLogLevel debug
>   >   JkShmFile $logDir/jk-runtime-status
>   >   END
> 
>   > Please note in order to do the $ENV above I have to have this.
> 
>   > <Perl>
>   >   # repopulate %ENV
>   
>   >   for (`env`) {
>   >     next unless /^X_/;
>   >     /(.*)=(.*)/;
>   >     $ENV{$1} = $2;
>   >     push @PassEnv, $1;
>   >     #print "$_\n";
>   >   }
> 
>   > this essentially puts back what mod_perl took out of %ENV upon startup
> and it
>   > seems to remain in %ENV across all Perl Sections. I have not seen any
> example
>   > where PassEnv can be used instead of the above approach.
> 
>   > ---
> 
>   >
>
http://perl.apache.org/docs/1.0/guide/config.html#Apache_Configuration_in_Perl
>   >
>
http://perl.apache.org/docs/1.0/guide/porting.html#Passing_ENV_variables_to_CGI
> 
>   > "The Perl %ENV is cleared during startup, but the C environment is left
> intact.
>   > With a combo of forking `env` and <Perl> sections you can do even do
> wildcards
>   > matching. For example, this passes all environment variables that begin
> with
>   > the letter H:"
> 
>   > ---
> 
>   > What is the correct way to define a variable that can hold state that
> will
>   > survive across Perl Sections but yet won't end up in the httpd
> configuration?
>   > Do I have to declare a my and use $ENV everytime I need to refer to
> these
>   > variables in a Perl Section?
> 
> If the Perl section are in the same file, I'd use lexical variables
> because they are ignored by the mod_perl mechanism. If they are in
> different files, pick names that are unlikely to be interpreted by
> perl or mod_perl. Maybe use underscores or so. Definitely no need to
> use %ENV, $robert_at_elastica::foo::bar works as well and doesn't
> trigger perl's environment handling.
> 
>   > Unfortunately with the mod_perl setup I'm using I cannot use
> 
>   > Apache::PerlSections->dump so it's hard to verify things.
> 
>   > Quoting Robert Nicholson <[EMAIL PROTECTED]>:
> 
>  >> So can you or somebody else post a complete httpd.conf that makes use  
>  >> of $PerlConfig then?
>  >> 
>  >> On Aug 1, 2006, at 2:24 PM, Andreas J. Koenig wrote:
>  >> 
>  >> >>>>>> On Tue,  1 Aug 2006 13:56:31 -0500, [EMAIL PROTECTED] said:
>  >> >
>  >> >> That resulted in errors at least in my case.
>  >> >
>  >> > You did read that I said you need SVN recent for apache2?
>  >> >
>  >> > -- 
>  >> > andreas
>  >> 
> 
> 
> 
> 
>   > ----------------------------------------------------------------
>   > This message was sent using IMP, the Internet Messaging Program.
> 
> 
> 
> -- 
> andreas
> 




----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

Reply via email to