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

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:

<VirtualHost x.x.x.x:40080>

PerlSetEnv      BASE   /home/steven/foo/base

PerlPostConfigRequire   /home/steven/foo/handler.pl

<LocationMatch "(\.mhtml)$">
         SetHandler  perl-script
         PerlHandler Ech::Mason
</LocationMatch>

</virtualHost>

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?

Reply via email to