Table 4-1 depicts where the various mod_perl configuration directives can be used.
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:
PerlSetEnv ADMIN_EMAIL webmaster@example.com <Location /bar/manage/> PerlSetEnv ADMIN_EMAIL bar@example.com </Location>
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.
Copyright © 2003 O'Reilly & Associates. All rights reserved.