From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <4227A0C7.3000308@gorodmasterov.com> Date: Fri, 04 Mar 2005 02:41:59 +0300 From: Vladimir Lettiev User-Agent: Mozilla Thunderbird 1.0 (X11/20050202) X-Accept-Language: en-us, en MIME-Version: 1.0 To: ALT Devel discussion list Subject: Re: [devel] Re: idea: webapps packaging and webapps control system References: <422082C8.7040200@gorodmasterov.com> <20050226151442.GM5646@osdn.org.ua> <42209509.4070901@gorodmasterov.com> <20050226160710.GO5646@osdn.org.ua> <4220A217.8010904@gorodmasterov.com> <20050226164227.GS5646@osdn.org.ua> In-Reply-To: <20050226164227.GS5646@osdn.org.ua> Content-Type: multipart/mixed; boundary="------------000408090907000309060809" X-Virus-Scanned: by amavisd-new at gorodmasterov.com X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Mar 2005 23:36:20 -0000 Archived-At: List-Archive: List-Post: This is a multi-part message in MIME format. --------------000408090907000309060809 Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit 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 --------------000408090907000309060809 Content-Type: application/x-gzip; name="farmer.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="farmer.gz" H4sICAieJ0ICA2Zhcm1lcgClV1lv20YQfiZ/xXjDCFRKk1ZQo0BVtWnsJOhDUcBJ+mI5hUwu JUK8yiV9QGZ+e2f2oEhJUQzUDzZ35/r2m2PXL06CRlTBbZIHJa9S224EB1FXSVhPbTt7hJdh kcfJEmbg2pbFaPU+Sblgs1/hmilh8KpclX6UiJp5Zov++A9Zym5sa6xcORG/bcjTBNdNjk6E 67z4/erD3zDDzTFsbOvy3dvPH9yJxxqxWPKfwTkDUTRVyC+TCiIu6iRf1EmR45KhW4s/JAi0 Nf7APeXgkMvrsxsYjaBbTm56/s88tvXaqRe7ETpTyIsaMBQe0AR1J+NB3FG8qDJeucab14Ud xr1IizzJlxAvkMWIKSe2aG5BOUBl2yKy4qrIkCuxSmI8odyqi+HGy/dXf/1JmSFQtmWgwGmk zWVoa6SCyy2fbc9CB6ZFlFQ8rIvqUR7OqnjdVDk0ecRjXLfkOonBPZFkIgbl1URzVMI3vdJo lYYlHrM0ydcKjIem5N74Z3XVcEY7LfAUq06aZOuIeK8L7+yn83MptZWChhCRUPnvOCVQ6kS3 Tf2sI9lWXFR8Ea6AeCXk4L7ZmKN0J2n1SZTG7CuIYP4quP4yD25eBcvpUOLO/af5b+NgPncm e0I0CYKdvXngyL1WZ5xOPgPGdHJDtZbJxfUbXIptsqNikAUoSp6jhnv5x5WnMx0wn3yOYSyp NXQBu1jkkiWyAcm3NCBl7LgTxdkuaZSIjjUXlhUvYXMCwdzfTLzXrRNACyiMNIixrgFKG5zG MMSkPv7RyCyHCnnTE7RERMx8GIUrHq4vYrcn9OaSG4Wyq42u6veDwLEo0XOiWGUjVioFXk9n i0CXbze/gGFg4jjGOpKTxVSkDx/XSQlJ7WueW81tmBaCS+pknajsy25XgalS4H5F/iROmqqy MFKqfFQtqhrW/FGouTDdKXIJxJXKYzlkZGpk2whsAXS4kTotPD2Bpkqt+b/IUsjGvXzKQeAr n4ZeJUkPSKhK5RwwEsXpXlsrYWfV3QXKWyIkoQuiEkksMl6vaJLeV0W+9OFT9Qg4B24X4fpz qand9sdI7bvbKF2YvUInaBqhyQ/x7DpZEXHPaZLIc5ZJNKZmFPWi1pNVu71+7f3ond9MB9NM CT2QLqQoXBX3OXTOvAE3HTN7eYgxD/3GOkT3QbZ7fXIoeTl/qLtqxMEtap65LCzxQj/FX70T bpGOj0ON/j/S6IBNr8NMWeiSMGNN+sT+OlwSdFI4UhZDDAfJ2ilMfeF8I94zKnC/ANteKuQd 6n47A4Mu51lZP3bjGYIvUm8e+D/QfFajYjh0pYWchPKL6So4XoX91PYzO0ysAY0X9pEa7Jfg 9xPzPE5adauap0axxmPRQ4veWXrWU9RuLg7fWb3Rq3fQEe6YBNHQrbPSXMaDp8R3XhKDQ+rY X4GeB2SKlygN391tSh+K1L2goLBQJkrDEGWKL1J8UAQebEnQdweqTKEsSvXVv8RpQ7MvcfUv BHlPtht9USrydza3MCTdhm1CODVky1YxVKf8jqc7zGbIBL70t7s26B9ZedpkBmcKaFkleQ0f P12+u7rqjH02z9m0907UZr/M9P8cfds9IwNVVdyRsiCFhuiWQp/56sV+KhZ38iGrnsk0tJSm impmaZXRLK1iHKZa3Ecsn0g6AJYA9VTfiRmUam9oyIeqg2FiqT4wGLI7GuWyXToMwy6xkI3/ ACvby54UDgAA --------------000408090907000309060809--