Структура директорий инсталляции Contenido 7

/config.mk настройки данной инсталяции Contenido
/bin служебные скрипты (зарезервировано для будущего использования)
/src исходные тексты
/src/core исходные тексты ядра
/src/projects исходные тексты проектов
/src/projects/afisha2 исходные тексты проекта afisha2 (пример)
/src/plugins исходные тексты плагинов
/src/plugins/session исходные тексты плагина session (пример)
/tmp временные файлы
/tmp/projects временные файлы проектов
/tmp/projects/afisha2 временные файлы проекта afisha2 (пример)
/usr рабочий каталог
/usr/core рабочая версия ядра
/usr/local локально установленные программы и модули (из портов Contenido)
/usr/projects рабочие версии проектов
/usr/projects/afisha2 рабочая версия проекта afisha2 (пример)
/var разное
/var/log логи инсталляции
/var/ports служебные каталоги портов Contenido
/var/projects файлы проектов
/var/projects/afisha2 файлы проекта afisha2 (пример)
/var/projects/afisha2/log логи проекта afisha2 (пример)
/var/projects/afisha2/mason кэш масона проекта afisha2 (пример)
/var/projects/afisha2/run pid файлы проекта afisha2 (пример)

./var/ports/

Этот каталог используется для установки модулей. После make install в ./var/ports/distfiles/ лежат дистрибутивы всех модулей, которые были установлены локально. В ./var/ports/work/ - развернутые дистрибутивы. В ./var/ports/db/ - информация о всех используемых в песочнице модулях, включая версии. Собственно, локальные дистрибутивы после установки только занимают место, поэтому их следует удалить командами make ports_clean и make ports_distclean.

./var/ и ./var/projects/

Данный каталог доступен внутри среды и может быть использован для хранения любых файлов и структур, используемых в инсталляции и во всех проектах инсталляции, в том числе лог-файлов работы скриптов и веб-сервера бэкенда. Путь к ./var/projects/someproject/  всегда доступен через объект $state проекта.

./tmp/

Как нетрудно догадаться –  структура внутренних каталогов предназначена для различного рода временных файлов. Путь к ./tmp/projects/someproject/  всегда доступен через объект $state проекта.

./usr/local/

Здесь находится собственно сборка всех модулей песочницы. При установке, независимо от наличия глобально установленных модулей, внутри собирается Apache с встроенным mod_perl и mason-хендлером. Остальные приложения и библиотеки устанавливаются с оглядкой на глобальные установки.

Также, при выборе локальной СУБД (в момент настройки cndinst) в песочнице собирается локальный PostgreSQL.

./usr/core/ ./usr/projects/ ./usr/plugins/

Внутри данных каталогов в результате использования команд make cin, make pin, make plin собираются рабочие версии, соответственно, ядра, проектов и плагинов. Команда make conf собирает там же все рабочие конфиги. Данные каталоги переписываются каждый раз по выполнению соответствующей команды, так что нет смысла вносить поправки внутри них. Более того, существует опасность (и прецеденты, конечно) потери внесенных полезных изменений.

./src/

Внутри данного каталога хранятся все исходные файлы ядра, проектов и подключаемых плагинов. С этими файлами работает программист, эти файлы находятся под управлением subversion, соответственно, внутри данных каталогов находится дополнительный мусор, в виде структур .svn, создаваемых системой контроля версий. Команды make cin pin и plin НЕ переносят в рабочую версию ничего лишнего.

В момент запуска проекта (make cin pin plin conf start) установочный скрипт создает в /usl/ каталоги и файлы с правами 555 и 444, собирает из всех конфигов (ядро + проект) рабочие файлы конфигурации для apache, crontab (и инициирует новую crontab-таблицу), формирует из шаблонов (State.pm.proto) объекты State.pm, запускает локальный apache + mod_perl + mason_handler.pl, который в свою очередь тестирует и поднимает в памяти все объекты и модули и организует соединение с SQL-сервером.

 

Все, бэкенд выведен на орбиту, полет нормальный.

Структура директорий инсталляции Contenido 7
Установка под Linux (Ubuntu, CentOS)