"Виртуализация" для Apache

При создании нескольких сайтов на одном сервере приходится создавать конфиги для каждого из них. Для облегчения такой рутины существует модeль Apache - mod_macro. Он позволяет обходится всего одной строчкой в конфиге Apache.

Краткий мануал по его использованию:

Ставим mod_macro, создаём в папке /etc/apache2 файл hosting.conf содержанием:
HTML ломает некоторые знаки. Для точного копирования команд справа от листинга есть кнопка <>)

#Пишем сам макрос
<Macro VHost $name $alias $docroot $admin>
<VirtualHost *:80>
ServerName $name
ServerAlias $alias
DocumentRoot $docroot
ServerAdmin $admin
</VirtualHost>

#Включить .htaccess
<Directory $docroot/>
AllowOverride All
</Directory>
</Macro>

# Добавляем виртуальные хосты, каждая строчка задаёт переменные первой строчки макроса для виртуального хоста
Use VHost klinicheskiy_roddom krg.minzdravao.ru /srv/www/htdocs/krd krd(a)mail.ru # (a) поменять на @
Use VHost gor_klin_pol_3 gkp3.minzdravao.ru /srv/www/htdocs/gkp3 gkp3(a)gmail.com  # (a) поменять на @

UndefMacro VHost

и дописываем в httpd.conf строку: Include /etc/apache2/hosting.conf, рестартим апач. Если ругачка на <Macro , то нужно добавить модуль в Апач командой:

a2enmod mod_macro

Или в файл /etc/sysconfig/apache2 дописываем модуль mod_macro.
В конец listen.conf дописываем NameVirtualHost *:80 # Должно быть только в одном конффайле (по умолчанию listen.conf).

Обсудить на форуме (комментариев 0).