<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?
Об этом уже спрашивали. Ссылка здесь:
Использование переменных в файлах конфигурации Apache для уменьшения дублирования?