Стандартная ситуация copy-paste
(используем debian unstable, apache2-mpm-itk) — добавить виртуалхост в Apache: логин под рута, переходим в sites-available, копируем существующий/создаём новый файл vhost-а, редактируем его, заменяя, по большей части, только document root, пользователя и пути для логов. В уме программиста появляется слово — переменные. Их всего 4-5, а ради их замены приходится копировать 1КБ одинаковой информации. Именно об этом я думал, когда начал гуглить «using vars in apache config».Что предлагает нам индеец?
Задаём внешнюю переменную в /etc/apache/envvars, юзаем <IfDefined> в конфиге. Жутко неудобно, потому как шаблон виртуалхоста из этого слепить не получится.Mod_macro.so спешит на помощь
Препрекраснейшая вещь, найти можно на http://www.cri.ensmp.fr/~coelho/mod_macro/.Что предлагают:
- задаём макрос в каком-нибудь /etc/apache2/conf.d/macro-vhost
- ## Define a VHost Macro.
- <Macro VHost $host $port $dir>
- Listen $port
- <VirtualHost $host:$port>
- DocumentRoot $dir
- <Directory $dir>
- # do something here...
- </Directory>
- # limit access to intranet subdir.
- <Directory $dir/intranet>
- order deny,allow
- deny from all
- allow from 10.0.0.0/8
- </Directory>
- </VirtualHost>
- </Macro>
- генерируем виртуалхосты
- ## Use of VHost with different arguments.
- Use VHost www.apache.org 80 /projects/apache/web
- Use VHost www.perl.com 8080 /projects/perl/web
- Use VHost www.ensmp.fr 1234 /projects/mines/web
- профит?!