Как не заниматься copy-paste в конфигурации Apache

Стандартная ситуация 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/.
Что предлагают:
  1. задаём макрос в каком-нибудь /etc/apache2/conf.d/macro-vhost
    1. ## Define a VHost Macro.
    2. <Macro VHost $host $port $dir>
    3. Listen $port
    4. <VirtualHost $host:$port>
    5. DocumentRoot $dir
    6. <Directory $dir>
    7. # do something here...
    8. </Directory>
    9. # limit access to intranet subdir.
    10. <Directory $dir/intranet>
    11. order deny,allow
    12. deny from all
    13. allow from 10.0.0.0/8
    14. </Directory>
    15. </VirtualHost>
    16. </Macro>
  2. генерируем виртуалхосты
    1. ## Use of VHost with different arguments.
    2. Use VHost www.apache.org 80 /projects/apache/web
    3. Use VHost www.perl.com 8080 /projects/perl/web
    4. Use VHost www.ensmp.fr 1234 /projects/mines/web



  3. профит?!


Комментариев нет:

Отправить комментарий