Как стать автором
Обновить

Комментарии 34

Спасибо, очень нужная вещь!
Вместо кучи echo можно делать так:
cat > /etc/nginx/sites-enabled/$1 << "EOF"
blah-blah
EOF
Доделал вариант с шаблонами. Завтра выложу на всеобщее обозрение, а пока — спать =)
Не очень понятно, почему при фронтенд/бэкенд для каждого виртхоста нужен отдельный порт?
У меня на VPS Nginx и апач автоматически конфигурируются панелькой (ISP Manager Lite) автоматически, и все виртуальные хосты имеют общий порт — 8080 (Nginx на 80).
можно и на один порт посадить, но есть некоторые продукты которые работают только на localhost или привязаны к определенному домену и на других работать не будут (есть и еще более забавные проприоритарные системы). Следовательно мне нужно создать инкубаторские условия для проекта. Мне показалось что такой подход оптимален
В сценарий можно еще добавить возможность вставки записи в bind9

например:

echo "$1 IN A 127.0.0.1" >> /etc/bind/db.localhost
/etc/init.d/bind9 restart
а зачем каждый раз записывать что-то туда, я один раз настрил зону .dev и все=)
ЗЫ: если есть другие причины, буду рад их послушать.
Попытаюсь ответить на ваш вопрос.
Мы не только разрабатываем сайты, но и сопровождаем их. Эти сайты в свою очередь могут работать на другой CMS bkb вовсе на каком-то самописном движке.

Яркий пример — ABO.CMS. Работает только на домене, к которому привязана лицензия. Следовательно в зоне .dev сработает редирект на сайт разработчика на страницу о нарушении лицензии.
По понятным причинам, мы не будем проводить работы на «боевом» сайте. Мы делаем копию сайта и базы и потом начинаем уже его дорабатывать/перерабатывать и т.д. И здесь нас выручает создание клона зоны на локальном сервере, а уже потом мы можем данный хост проксировать nginx-ом куда угодно.
а если зделать декод и отключить проверку лиценции?=)
Нет, этим мы точно заниматься не будем. Во первых это лишние трудозатраты, а во вторых нарушение закона.
использую в этих целях хостинг панель ISPConfig
установка на дебиан или убунту дело менее чем пары часов.

мануалы по установке на howtoforge

вот например документ прикручивания NGINX
www.howtoforge.com/nginx-catch-all-host-as-front-end-to-apache-for-ispconfig-3-on-debian-lenny
Смотрел в сторону этого продукта, но мне он не подошел по некоторым соображениям. Хотелось иметь возможность добавлять и удалять виртуальные хосты одной строчкой в консоли. Например одна из необходимых мне задачь — не имея помпьютера под рукой создать виртуальный хост. Решение — захожу SSH клиентом на сервер со своего коммуникатора и пишу строчку и не переживаю.

Вообще можно еще много чего наворотить и решений для автоматизации хостинга море, но вот таких вот простых решений, ориентированых на разработчиков, а не ентерпрайз сектор — я не встречал.
Архив с новой версией — пустой.
Прошу прощения. Файл перезалил.
Спасибо за проделанную работу!
а у меня создание хоста ручками занимает меньше минуты, я засекал=)
c данным скриптом — менее 10 сек. =)
экономия — 50 секунд жизни=)
Единственное что я еще не победил — это корректное добавлене записи в /etc/apache2/ports.conf

в идеале хочется, писать строку «avhst test.ru». Скрипт бы залазил в ports.conf, смотрел последний добавленый порт, прибавлял бы к нему единичку и передавал в качестве значения для "$2".
Если у кого есть «железные» мысли — делитесь.

пытался делать tail последней строки, но через раз индеец выдает ошибку, ругаясь на неверный номер порта.
Можешь пояснить подробнее, если честно я не в курил.
bash это же не сложно, иногда только буквы лишние писать приходится.
не понял сути вопроса
Что же касается описанного функционала — тестируется
Можно сократить конструкцию
mkdir -p $www_path$1/www/
mkdir -p $www_path$1/cgi-bin/
mkdir -p $www_path$1/log/

до

mkdir -p $www_path$1/{www,cgi-bin,log}
Спасибо за мысль.
Также луче слушать не все интерфейсы Listen 8080, а только локалхост Listen 127.0.0.1:8080

зашел посмотреть новую версию через IE 8, а меня перекинуло на unsp.sliderweb.ru/ и попросили обновиться до IE8 ) парадокс
хм — только что проверил из под ослика восьмого — все отлично
«Не поддерживаемая версия браузера» для Mozilla 6.0 … 8(
а как же?

location ~ /\.htaccess {
deny all;
}
а зачем мне это?
по поводу вот этой строчки
echo " location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|html|flv|mp3)$ "

тут уже замечали, что такое не айс делать — при динамическом формировании контента может выйти бяка, но замену я както не вкурил (
в данном случае это не критично. На худой конец шаблоны можно поправить и вовсе отключить сей локейшен.
Как то много букв. Как не странно у меня тоже такая задача была и как не странно я очень ленивый :)
У меня на FreeBSD куча скриптов, включая создание хостов. (мой вариант 28 строк с комментариями)

В выходной выложу статейку :) со скриптами, надеюсь пригодится.
и эти много букв работают и упрощают жизнь. Как сумел — так решил
все, хорошо. Зачет:)
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.