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?