perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steven van der Vegt <s.vanderv...@student.utwente.nl>
Subject Re: PerlSetEnv vars not available in PerlRequire script
Date Fri, 23 Jul 2010 11:49:44 GMT
> How about trying PerlSetVar instead of PerlSetEnv?  And then in your
> handler dump the var you set?

This works in the handler function. There, I discovered, the ENV var is
correctly set too!. Outside this function it is not.

I try to rebuild the following handler-script.

package Foo::Bar;
use all:kinds:of:libs

my %sites = (
    site1 => {
       path = $ENV{PATH} # <-- USE OF ENV VAR HERE
    },
    siteN => {
    }
);

my %ah;

foreach my $site ($keys %sites) {
    $ah{$site} = HTML::Mason::ApacheHandler->new(
        do things with above paths...
    );
}

sub handler {
  my $r = shift;
  ...
  my $site = $r->dir_config('mason_site') || '';
  $ah{$site}->prepare_request($r$);
  ...
}

As you can see I want to use the ENV vars in the global scope. Is this
possible?

On Thu, 22 Jul 2010 20:55:26 -0400, Mike Diehn <mike@diehn.net> wrote:
> Steven,
> I don't know why either.  Looks like you're doing it right, but that
> only means I'm missing it too.  :-)
> How about trying PerlSetVar instead of PerlSetEnv?  And then in your
> handler dump the var you set? 
>     PerlSetVar      BaseDir   /home/steven/foo/base
>  Good luck,Mike
> On Thu, Jul 22, 2010 at 11:37 AM, Ryan Gies  wrote:
>  Notice that PerlSetEnv is allowed in scope DIR:
> 
>
http://perl.apache.org/docs/2.0/user/config/config.html#mod_perl_Directives_Argument_Types_and_Allowed_Location
> [2]
> 
>  Try moving the PerlSetEnv line to inside the LocationMatch directive.
>  Although the above documentation indicates PerlSetVar is also of scope
> DIR, I have never had a problem using PerlSetVar in the VirtualHost
> section. 
> 
>  On 07/22/2010 10:19 AM, Steven van der Vegt wrote:
>   Greetings mod_perl list!
> 
>  I'm upgrading old debian servers to Ubuntu 10.04 and we have to upgrade
>  from apache 1.x and mod_perl to apache2 and mod_perl2.x This requires
>  rewriting configfiles and I'm running into the following problem:
> 
>  I've got (sort of) the following apache configuration:
> 
>  PerlSetEnv      BASE   /home/steven/foo/base
> 
>  PerlPostConfigRequire   /home/steven/foo/handler.pl [3]
> 
>          SetHandler  perl-script
>          PerlHandler Ech::Mason
> 
>  In the handler I've got this:
> 
>  use Data::Dumper;
>  print Dumper(%ENV);
> 
>  With a apache2ctl start the output is:
> 
>  $VAR1 = {
>            'PATH' =>
> 
>
'/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games',
>            'MOD_PERL_API_VERSION' =>  '2',
>            'MOD_PERL' =>  'mod_perl/2.0.4'
>          };
> 
>  As you can see, my BASE variable is not set in the %ENV. Does anybody
>  knows why?
>   


Mime
View raw message