Добрый день,
Данный топик я публикую по мотивам топика Программирование в PHP для командной строки, в котором, на мой взгляд, описан не самый оптимальный процесс добавления виртуальных хостов с использованием PHP в режиме command line.
Для тех из вас, кто знаком с mod_macro, этот топик покажется неинтересным и его можно пропустить.
Итак, задача следущая — лёгкое добавление новых виртуальных хостов в apache.
Первое, что приходит в голову — описать шаблон виртуального хоста в виде макроса, который можно использовать неоднократно, в чём нам поможет модуль mod_macro.
P. S. Ни в коем случае не хочу провоцировать споры «PHP vs bash vs Python vs ...».
Данный топик я публикую по мотивам топика Программирование в PHP для командной строки, в котором, на мой взгляд, описан не самый оптимальный процесс добавления виртуальных хостов с использованием PHP в режиме command line.
Для тех из вас, кто знаком с mod_macro, этот топик покажется неинтересным и его можно пропустить.
Итак, задача следущая — лёгкое добавление новых виртуальных хостов в apache.
Первое, что приходит в голову — описать шаблон виртуального хоста в виде макроса, который можно использовать неоднократно, в чём нам поможет модуль mod_macro.
- Установим mod_macro (установка для debian/ubuntu, но и для других систем не должно быть сложностей) и включим его
sudo apt-get install libapache2-mod-macro sudo a2enmod macro
- Создаем файл, в котором будут лежать шаблон виртуального хоста
sudo mkdir /etc/apache2/conf.d/custom sudo touch /etc/apache2/conf.d/custom/vhosts
- Добавляем код макроса в файл:
<Macro VHost $name $path> <VirtualHost *:80> ServerName $name DocumentRoot $path </VirtualHost> </Macro>
- Напишем простой скрипт, который будет использовать наш макрос:
touch addvhost #!/bin/bash echo "Use VHost $1 $2" >> /etc/apache2/conf.d/custom/vhosts apache2ctl configtest && apache2ctl reload chmod +x addvhost
- Использование достаточно тривиально:
./addvhost <hostname> </path/to/wwwroot>
P. S. Ни в коем случае не хочу провоцировать споры «PHP vs bash vs Python vs ...».