Comments 15
Очень годное решение.
Да, это решение значительно лучше того, что я описывал с помощью PHP.
а с mod_vhost_alias все ещё проще, хосты создаются динамически.
А мне вот не нравится такой вариант. Сложно определиться, в чем конкретно, но по совокупности мелких недостатков. Сразу на поверхности видятся 2 причины:
1. Плохо расширяемо: например хотим чтобы в каких-то вхостах была строка с конфигом логов, в каких-то не была, т.е. общий лог. В таком случае придется каждому макросу параметр передавать. Или там все же есть что-то вроде if?
2. Чем больше парсеров по пути, тем хуже. Начиная от необходимости продумывать для каждого «отбивание» (в смысле различные эксейп-последовательности для спецсимволов — это видно даже в вышеприведенном примере, предлагаю продумать все возможные варианты инъекции), и заканчивая необходимостью поддерживать в случае обновления софта на любом уровне изменений (это скорее сферический случай в вакууме, но тем не менее).
1. Плохо расширяемо: например хотим чтобы в каких-то вхостах была строка с конфигом логов, в каких-то не была, т.е. общий лог. В таком случае придется каждому макросу параметр передавать. Или там все же есть что-то вроде if?
2. Чем больше парсеров по пути, тем хуже. Начиная от необходимости продумывать для каждого «отбивание» (в смысле различные эксейп-последовательности для спецсимволов — это видно даже в вышеприведенном примере, предлагаю продумать все возможные варианты инъекции), и заканчивая необходимостью поддерживать в случае обновления софта на любом уровне изменений (это скорее сферический случай в вакууме, но тем не менее).
Вдогонку: тут был бы интересен вариант с Makefile. То есть на входе «исходник» — конфиги своего формата для php-скрипта, а на выходе — конфиги апача. И make будет следить за тем чтобы при обновлении исходника обновлялся конфиг апача (собственно, для этого он и предназначен, хоть немного и нестандартно его применение в данном контексте).
Каждой задаче — свое решение. Мой метод не претендует на универсальность, это лишь способ упростить создание нового виртуального хоста с заданным набором параметров.
Необходимость править ручками /etc/hosts выводит решение на PHP на первое место.
А как под виндой этот модуль собрать никто не подскажет?
Правда к сожалению дальше этого я не ушёл.
Есть какая нибудь аналогичная програма для винды аля apache2ctl с помощью которой можно добавлять вирт. хосты?
Есть какая нибудь аналогичная програма для винды аля apache2ctl с помощью которой можно добавлять вирт. хосты?
#!/bin/bash
case $# in
2)
sudo echo "127.0.0.1 $1" >> /etc/hosts
sudo echo "Use VHost $1 $2" >> /etc/apache2/conf.d/custom/vhosts
sudo apache2ctl configtest && apache2ctl reload
;;
*)
script_name=`basename $0`
echo "Usage: $script_name <hostname> </path/to/wwwroot>"
echo "Example: $script_name myhost /apps/myhost"
;;
esac
Sign up to leave a comment.
Использование mod_macro для конфигурации виртуальных хостов Apache