4.6. The Scope of mod_perl Configuration Directives
Table 4-1 depicts
where the various mod_perl configuration
directives can be used.
Table 4-1. The Scope of mod_perl configuration directives
Directive
Global
<VirtualHost>
<Directory>
PerlTaintCheck
V
PerlWarn
V
PerlFreshRestart
V
PerlPassEnv
V
V
PerlRequire
V
V
V
PerlModule
V
V
V
PerlAddVar
V
V
V
PerlSetEnv
V
V
V
PerlSetVar
V
V
V
PerlSetupEnv
V
V
V
PerlSendHeader
V
V
V
<Perl> Sections
V
V
V
The first column represents directives that can appear in the global
configuration; that is, outside all sections. Note that
PerlTaintCheck, PerlWarn, and
PerlFreshRestart can be placed inside
<VirtualHost>sections. However, because
there's only one Perl interpreter for all virtual
hosts and the main server, setting any of these values in one virtual
host affects all other servers. Therefore, it's
probably a good idea to think of these variables as being allowed
only in the global configuration.
The second column represents directives that can appear inside the
<VirtualHost>sections.
The third column represents directives that can appear in the
<Directory>,
<Location>, and
<Files>sections and all their regex
variants. These mod_perl directives can also appear in
.htaccess files.
For example, PerlWarn cannot be used in
<Directory> and
<VirtualHost>sections. However,
PerlSetEnv can be used anywhere, which allows you
to provide different behavior in different sections:
In this example, a handler invoked from
/bar/manage/ will see the
ADMIN_EMAIL environment variable as
bar@example.com, while other handlers configured
elsewhere will see ADMIN_EMAIL as the default
value, webmaster@example.com.