Pull to refresh

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

Reading time1 min
Views6.1K
Добрый день,

Данный топик я публикую по мотивам топика Программирование в PHP для командной строки, в котором, на мой взгляд, описан не самый оптимальный процесс добавления виртуальных хостов с использованием PHP в режиме command line.
Для тех из вас, кто знаком с mod_macro, этот топик покажется неинтересным и его можно пропустить.

Итак, задача следущая — лёгкое добавление новых виртуальных хостов в apache.
Первое, что приходит в голову — описать шаблон виртуального хоста в виде макроса, который можно использовать неоднократно, в чём нам поможет модуль mod_macro.

  1. Установим mod_macro (установка для debian/ubuntu, но и для других систем не должно быть сложностей) и включим его
    sudo apt-get install libapache2-mod-macro
    sudo a2enmod macro
    

  2. Создаем файл, в котором будут лежать шаблон виртуального хоста
    sudo mkdir /etc/apache2/conf.d/custom
    sudo touch /etc/apache2/conf.d/custom/vhosts
    

  3. Добавляем код макроса в файл:
    <Macro VHost $name $path>
        <VirtualHost *:80>
            ServerName $name
            DocumentRoot $path
        </VirtualHost>
    </Macro>
    

  4. Напишем простой скрипт, который будет использовать наш макрос:
    touch addvhost
    
    #!/bin/bash
    echo "Use VHost $1 $2" >> /etc/apache2/conf.d/custom/vhosts
    apache2ctl configtest && apache2ctl reload
    
    chmod +x addvhost
    

  5. Использование достаточно тривиально:
    ./addvhost <hostname> </path/to/wwwroot>



P. S. Ни в коем случае не хочу провоцировать споры «PHP vs bash vs Python vs ...».
Tags:
Hubs:
+41
Comments15

Articles