conf/httpd.conf:
...
PerlPassEnv WHOMISERVE LANG LC_TIME LC_NUMERIC LC_CTYPE LC_COLLATE
#0
#<Perl>
#foreach (sort keys %ENV) { "$ENV{$_}=$ENV{$_}\n" }
#</Perl>
...
NameVirtualHost ${IP}:${PORT}
...
<VirtualHost ${IP}:${PORT}>
Include conf/testsite.conf
</VirtualHost>
conf/testsite.conf:
...
#1
#PerlPassEnv WHOMISERVE LANG LC_TIME LC_NUMERIC LC_CTYPE LC_COLLATE
<Location />
<Perl>
use Memonet::Test::Apache;
push @PerlSetVar, Memonet::Test::Apache->data_config_to_var('testsite');
</Perl>
</Location>
Memonet::Test::Apache:
...
sub data_config_to_var {
...
foreach (sort keys %ENV) { print "$_=$ENV{$_}\n" }
...
}
...
Apache/1.3.14 (Unix) mod_perl/1.24 rus/PL30.0
Debian (potato)
Вывод:
GATEWAY_INTERFACE=CGI-Perl/1.1
MOD_PERL=mod_perl/1.24
PATH=/home/ran/bin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/ucb:/usr/bin/X11:/usr/games
Если раскомментировать #0 или #1 (т.е. обратиться к %ENV в perl section из
основного конфига или сказать PerlPassEnv во включаемом конфиге; вместо #0
помогает что-нибудь вроде PerlModule Apache::DBI), то вместо этого получаем
GATEWAY_INTERFACE=CGI-Perl/1.1
LANG=ru_RU.KOI8-R
LC_COLLATE=ru_RU.KOI8-R
LC_CTYPE=ru_RU.KOI8-R
LC_NUMERIC=POSIX
LC_TIME=POSIX
MOD_PERL=mod_perl/1.24
PATH=/home/ran/bin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/ucb:/usr/bin/X11:/usr/games
WHOMISERVE=employee
что и требовалось. Вопрос: почему? Дома в той же конфигурации (только libc на
один security update старше) само работает и PerlPassEnv не требует...
P.S. И кстати: раньше та же секция вроде бы нормально отрабатывала за
пределами <Location />, а потом вдруг перестало, но я не очень отследил, в
какой момент. Тут не исключено, что я чего-нибудь в движке напортачил.
--
Artem Chuprina E-mail: ran@xxxxxxxxx
Programmer FIDO: 2:5020/371.32
Memonet Ltd. Phone: +7-095-284-1356
=============================================================================
= Apache-Talk@xxxxxxxxxxxxx mailing list =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.