>>>>> 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

Reply via email to