SuExecを使っているとSetEnvディレクティブが使えないため、環境変数を自由に設定することができません。ぐーぐる先生に聞いたところ「HTTP_」で始まる環境変数であれば自由に使えるようでした。VirtualHostの中に書けばドメイン毎に異なる環境変数を設定することができる、と。
環境はApache 1.3.37。
<VirtualHost example.com> SetEnv HTTP_X_TESTENV 123456789 </VirtualHost>
こんな感じ。
SuExec下ではSetEnvで使える環境変数が制限されるようです。使用可能な環境変数のリストは以下。
# less /usr/ports/www/apache13/work/apache_1.3.37/src/support/suexec.c
char *safe_env_lst[] =
{
/* variable name starts with */
"HTTP_",
/* variable name is */
"AUTH_TYPE=",
"CONTENT_LENGTH=",
"CONTENT_TYPE=",
"DATE_GMT=",
"DATE_LOCAL=",
"DOCUMENT_NAME=",
"DOCUMENT_PATH_INFO=",
"DOCUMENT_ROOT=",
"DOCUMENT_URI=",
"FILEPATH_INFO=",
"GATEWAY_INTERFACE=",
"LAST_MODIFIED=",
"PATH_INFO=",
"PATH_TRANSLATED=",
"QUERY_STRING=",
"QUERY_STRING_UNESCAPED=",
"REMOTE_ADDR=",
"REMOTE_HOST=",
"REMOTE_IDENT=",
"REMOTE_PORT=",
"REMOTE_USER=",
"REDIRECT_QUERY_STRING=",
"REDIRECT_STATUS=",
"REDIRECT_URL=",
"REQUEST_METHOD=",
"REQUEST_URI=",
"SCRIPT_FILENAME=",
"SCRIPT_NAME=",
"SCRIPT_URI=",
"SCRIPT_URL=",
"SERVER_ADMIN=",
"SERVER_NAME=",
"SERVER_ADDR=",
"SERVER_PORT=",
"SERVER_PROTOCOL=",
"SERVER_SOFTWARE=",
"UNIQUE_ID=",
"USER_NAME=",
"TZ=",
NULL
};