When a script is called, it receives a lot of environment variables, as we have seen. It may be that you want to invent and pass some of your own. There are two directives to do this: SetEnv and PassEnv.
SetEnv |
SetEnv variable value Server config, virtual hosts
This directive sets an environment variable that is then passed to CGI scripts. We can create our own environment variables and give them values. For instance, we might have several virtual hosts on the same machine that use the same script. To distinguish which virtual host called the script (in a more abstract way than using the HTTP_HOST environment variable), we could make up our own environment variable VHOST:
<VirtualHost host1> SetEnv VHOST customers ... </VirtualHost> <VirtualHost host2> SetEnv VHOST salesmen ... </VirtualHost>
UnsetEnv |
UnsetEnv variable variable ... Server config, virtual hosts
This directive takes a list of environment variables and removes them.
PassEnv |
PassEnv
This directive passes an environment variable to CGI scripts from the environment that was in force when Apache was started.[56] The script might need to know the operating system, so you could use the following:
[56]Note that when Apache is started during the system boot, the environment can be surprisingly sparse.
PassEnv OSTYPE
This variation assumes that your operating system sets OSTYPE, which is by no means a foregone conclusion.
Copyright © 2003 O'Reilly & Associates. All rights reserved.