[devel] Re: idea: webapps packaging and webapps control system
Vladimir Lettiev
=?iso-8859-1?q?crux_=CE=C1_gorodmasterov=2Ecom?=
Пт Мар 4 02:41:59 MSK 2005
Michael Shigorin wrote:
> Вот алгоритм примерно обрисовать получается? Задачи-то ясны,
> а вот реализация без копий или вагонов симлинков, которые
> неизбежно будут искушать "поправить ручками" либо требовать
> отдельного окучивания (и порй создавать странные проблемы) --
> непонятна.
Чем дольше думаю над алгоритмом, тем больше понимаю, что ничего лучше
симлинковой "фермы" придумать не могу. Т.е. устанавливая веб-приложение
в /usr/share/... мы тем самым делаем его readonly, но поскольку
практически всегда требуется изменение каких-то файлов (причём в каждом
виртуальном хосте своё), то необходимо эти изменяемые файлы _копировать_
в виртохост, а на ro-{файлы|каталоги} делать ссылки.
На данный момент такое клонирование я реализовал в виде небольшой
утилитки farmer. Она умеет клонировать файлы, умеет обновлять их (при
повторном запуске). В командной строке просит два параметра:
директория-источник и директория-назначение.
Вначале скрипта есть такая конструкция:
my %config = (
"confFiles"=> ["config/*php","config/conf.xml"]
);
Тут в квадратных скобках, перечисляются названия файлов (и/или
директорий), которые надо _копировать_, т.е. те самые изменяемые файлы.
Имена перечисляемых файлов(директорий) указываются относительно
директории источника. Как видно, можно использовать символ '*' - любая
последовательность символов (в том чиcле нулевая).
Скриптец я заатачил. Есть ли есть желающие протестировать -- welcome.
Можно пробовать расширять список confFiles, затем уменьшать и смотреть
на результат.
Что в итоге. Если каждый веб-пакет, снабжать неким конфигом с указанием:
списка rw-файлов, конфигурацией для apache, где вместо реальных путей,
указывать некую переменную ($DocumentRoot). То этого уже вполне
достаточно для нормального функционирования и обновления веб-приложения.
Будет утилита, которая будет по требованию клонировать веб-приложение и
подсовывать корректный конфигурационный файл для апаче для конкретного
виртохоста.
p.s. Тему СУБД я пока не затрагиваю - это наверно можно решать отдельно.
--
С уважением, Владимир Леттиев aka crux <crux на gorodmasterov.com>
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : farmer.gz
Тип : application/x-gzip
Размер : 1305 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20050304/54dcf90b/attachment-0001.bin>
Подробная информация о списке рассылки Devel