Sunteți pe pagina 1din 2

Smile is a curve that straightens your face

Environment Variables in Apache


Available Languages: en | ja | ko | tr
The Apache HTTP Server provides a mechanism for storing information in named var
iables that are called environment variables. This information can be used to co
ntrol various operations such as logging or access control. The variables are al
so used as a mechanism to communicate with external programs such as CGI scripts
. This document discusses different ways to manipulate and use these variables.
Although these variables are referred to as environment variables, they are not
the same as the environment variables controlled by the underlying operating sys
tem. Instead, these variables are stored and manipulated in an internal Apache s
tructure. They only become actual operating system environment variables when th
ey are provided to CGI scripts and Server Side Include scripts. If you wish to m
anipulate the operating system environment under which the server itself runs, y
ou must use the standard environment manipulation mechanisms provided by your op
erating system shell.
Setting Environment Variables
Using Environment Variables
Special Purpose Environment Variables
Examples
Comments
top
Setting Environment Variables
Related Modules Related Directives
mod_env
mod_rewrite
mod_setenvif
mod_unique_id
BrowserMatch
BrowserMatchNoCase
PassEnv
RewriteRule
SetEnv
SetEnvIf
SetEnvIfNoCase
UnsetEnv
Basic Environment Manipulation
The most basic way to set an environment variable in Apache is using the uncondi
tional SetEnv directive. Variables may also be passed from the environment of th
e shell which started the server using the PassEnv directive.
Conditional Per-Request Settings
For additional flexibility, the directives provided by mod_setenvif allow enviro
nment variables to be set on a per-request basis, conditional on characteristics
of particular requests. For example, a variable could be set only when a specif
ic browser (User-Agent) is making a request, or only when a specific Referer [si
c] header is found. Even more flexibility is available through the mod_rewrite's
RewriteRule which uses the [E=...] option to set environment variables.
Unique Identifiers
Finally, mod_unique_id sets the environment variable UNIQUE_ID for each request
to a value which is guaranteed to be unique across "all" requests under very spe
cific conditions.
Standard CGI Variables
In addition to all environment variables set within the Apache configuration and
passed from the shell, CGI scripts and SSI pages are provided with a set of env

ironment variables containing meta-information about the request as required by


the CGI specification.
Some Caveats
It is not possible to override or change the standard CGI variables using the en
vironment manipulation directives.
When suexec is used to launch CGI scripts, the environment will be cleaned down
to a set of safe variables before CGI scripts are launched. The list of safe var
iables is defined at compile-time in suexec.c.
For portability reasons, the names of environment variables may contain only let
ters, numbers, and the underscore character. In addition, the first character ma
y not be a number. Characters which do not match this restriction will be replac
ed by an underscore when passed to CGI scripts and SSI pages.
The SetEnv directive runs late during request processing meaning that directives
such as SetEnvIf and RewriteCond will not see the variables set with it.

S-ar putea să vă placă și