[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ale] setting an env variable that apache will see when calling a cgi script
- Subject: [ale] setting an env variable that apache will see when calling a cgi script
- From: brandon at brandonchecketts.com (Brandon Checketts)
- Date: Mon, 20 Jul 2009 17:03:18 -0400
- In-reply-to: <[email protected]>
- References: <[email protected]>
Geoffrey wrote:
> I'm trying to figure out how to set an env. variable that will be
> available to a perl cgi script. I've tried putting it in the
> /etc/sysconfig/httpd file as well as in the /etc/init.d/httpd script,
> but it does not find it's way to the process that executes the cgi.
>
> Anyone know how to do this? For example:
>
> print $ENV{'FOO'};
>
You can set them inside your Apache config with the mod_env Apache module, which
should be included with most basic Apache installations.
<VirtualHost>
ServerName your.domain.com
... your other configuration here...
SetEnv somevar "some value"
SetEnv
</VirtualHost>
Documentation for the module is at
http://httpd.apache.org/docs/2.2/mod/mod_env.html is pretty straightforward.
The mod_setenvif is a bit more flexible and allows you to use conditionals to
set environment variables. Documentation at
http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html
Example:
SetEnvIf Host !"^www\.hostname\.com$" wronghost=1
That will set the environment variable 'wronghost' to 1 if the HTTP_HOST header
is not 'www.hostname.com'. Your Perl script can then respond accordingly
(perhaps redirecting to the correct domain name in this case)
Thanks,
Brandon Checketts