When a script is called it receives a lot of environment variables, as we have seen. It may be that you want to pass some of your own. There are two directives to do this: SetEnv and PassEnv.
SetEnv variable value Server config, virtual hosts
This directive sets an environment variable that is then passed to CGI scripts. We can invent 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 variable variable ... Server config, virtual hosts
Takes a list of environment variables and removes them.
This directive passes an environment variable to CGI scripts from the environment that was in force when Apache was started.[**] The script might need to know the operating system, so you could use the following:
[**] Note that when Apache is started during the system boot, the environment can be surprisingly sparse.
This variation assumes that your operating system sets OSTYPE, which is by no means a foregone conclusion.
A real problem on the Web is that people ...