Назад | Перейти на главную страницу

Использование постоянных переменных в конфигурации apache

<VirtualHost *:80>
SetEnv SITENAME testing
ServerName www.test.com

# Location of files
DocumentRoot "/www/${SITENAME}/site"
Alias /data "/www/data/${SITENAME}"
Alias /base "/www/${SITENAME}/base/site"

# Logging
ErrorLog "/var/log/httpd/${SITENAME}-error.log"
CustomLog "/var/log/httpd/${SITENAME}-access.log" combined
</VirtualHost>
  • Запуск apache2 ... Предупреждение: DocumentRoot [/ www / $ {SITENAME} / site] не существует

Дальнейшее чтение документации дает намек на то, что SetEnv может не связываться достаточно рано, чтобы использоваться в путях, и предлагаемый альтернативный SetEnvIf также основан на свойствах запроса.

Я также видел примеры с использованием mod_vhost_alias, однако он, похоже, не обрабатывает ничего, кроме DocumentRoot, и даже в этом случае требуется использовать компоненты имени сервера, чего я не хочу.

Я хочу, чтобы чистая подстановка переменных была доступна, когда конфигурация читается и может использоваться в любой строке (например, #DEFINE в C). Моя версия Apache - 2.2. Это можно сделать?

ОБНОВЛЕНИЕ: я нашел Define в документации, но она не работает (похоже, что она нова в 2.3). Думаю, теперь вопрос в том, есть ли модуль, который поддерживает эту или эквивалентную функциональность 2.2?