From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <42301F98.4050103@gorodmasterov.com> Date: Thu, 10 Mar 2005 13:21:12 +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> <4227A0C7.3000308@gorodmasterov.com> In-Reply-To: <4227A0C7.3000308@gorodmasterov.com> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit 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, 10 Mar 2005 10:19:46 -0000 Archived-At: List-Archive: List-Post: Vladimir Lettiev wrote: > Michael Shigorin wrote: >> Вот алгоритм примерно обрисовать получается? Задачи-то ясны, а вот >> реализация без копий или вагонов симлинков, которые >> неизбежно будут искушать "поправить ручками" либо требовать >> отдельного окучивания (и порй создавать странные проблемы) -- >> непонятна. > > Чем дольше думаю над алгоритмом, тем больше понимаю, что ничего лучше > симлинковой "фермы" придумать не могу. Т.е. устанавливая веб-приложение > в /usr/share/... мы тем самым делаем его readonly, но поскольку > практически всегда требуется изменение каких-то файлов (причём в каждом > виртуальном хосте своё), то необходимо эти изменяемые файлы _копировать_ > в виртохост, а на ro-{файлы|каталоги} делать ссылки. Блин, симлинковые фермы тоже не всегда спасают и даже могут поломать веб-приложение. В частности, в случае php-приложений, частенько используют константу __FILE__ для определения полного имени файла запускаемого скрипта. В случае если файл является символической ссылкой, то __FILE__ следует ссылке и возвращает полное имя файла, на который ссылается ссылка. В дальнейшем этот путь может используется для доступа (include, open) к другим файлам (по относительным смещениям). В итоге, приложение просто не видит и не использует rw-файлы, которые были скопированы ему в виртуальный хост. > На данный момент такое клонирование я реализовал в виде небольшой > утилитки farmer. А утилитку я доделал -- теперь это пакет, который и реализует все те фичи, о которых говорилось в топике. Правда на первом же запакованом пакете я и нарвался на "мину", описанную выше :( -- С уважением, Владимир Леттиев aka crux