Eludia.pm

Материал из Eludia
Перейти к: навигация, поиск

Прежде чем описывать собственно Eludia.pm, отметим, что мы активно используем во всех наших разработках систему версионного контроля Subversion и её Win-интерфейс TortoiseSVN. Использовать это ПО или нет — дело вкуса, однако в наших описаниях будет фигурировать именно Subversion.

Системные требования

Этот раздел вынесен в отдельную статью.

Устройство

Пакеты (пространства имён)

Этот раздел вынесен в отдельную статью.

Директории приложения

Этот раздел вынесен в отдельную статью.

Установка

UNIX / Linux

В данном разделе мы сознательно избегаем ссылок на конкретную ОС. Предполагается только, что это UNIX / Linux, а вы — администратор, умеющий пользоваться её родными средствами установки пакетов.

Прежде всего, проверьте установленную у вас версию Perl. Если меньше 5.8 — обновите.

Теперь — WEB-сервер. В мире, где функция fork реализована на уровне ядра ОС, для WEB-приложений на базе Perl нет ничего лучше Apache 1.3x. Впрочем, возможно, вы придерживаетесь иной точки зрения — тогда вы наверняка настолько компетентны, что без труда разберётесь во всём самостоятельно. Мы же продолжим описание, ориентируясь на наш излюбленный сервер.

Итак, Apache и Perl у вас есть. Теперь убедитесь, что установлено их связующее звено: mod_perl (DSO или статически скомпилированный — не важно). Кроме того, крайне желательно установить модуль Apache::Request (libapreq). Ещё понадобятся:

  • DBI + DBD-драйвер для вашей БД
  • Net::SMTP (если вы собираетесь рассылать извещения по E-mail)
  • Number::Format
  • Time::HiRes
  • JSON::XS

Все эти модули могут быть установлены как при помощи CPAN.pm, так и (возможно) средствами вашей ОС.

Теперь поключитесь к нашему SVN-репозиторию, и, скачав свежие версии модулей Eludia и Eludia::Install, установите их знакомыми командами:

perl Makefile.pm
make
make install
make realclean

Создание приложения

Новое Eludia-приложение должно создаваться вначале в SVN-репозтории, а уже затем материализоваться в виде локальной копии. Команда SVN copy — великая вещь: она одновременно позволяет экономить место и получать доступ к "памяти до рождения": если вы копируете большое количество файлов с богатой историей, то в действительности создаются лишь символические ссылки на их логи.

Начиная же с чистого листа, в качестве болванки можно воспользоваться http://svn.eludia.ru/eludia/eludia_perl/trunk/sample. Если у вас нет прав на запись в наш SVN-репозиторий, то воспользуйтесть логином guest с пустым паролем и скопируйте файлы в своё хранилище.

Теперь исполните команду

perl -MEludia::Install -e create

При этом запустится диалог, где от вас понадобится ответить на несколько вопросов (основные из которых — директория установки, SVN URL и администраторский доступ к БД). По окончании диалога будет запущен процесс, который создаст:

  • новую схему и соответствующего пользователя БД со всеми необходимыми правами;
  • локальную копию файлов приложения с корректно прописанными svn:ignore;
  • файл конфигурации для Apache;

и, наконец, кусочек кода, который останется только вставить в глобальный httpd.conf. Ну и перезапустить WEB-сервер.

Windows

В мире, где функция fork и copy-on-write память на уровне ядра ОС недоступны, по-настоящему хорошей платформы для WEB-приложений на Perl не существует.

Во всяком случае, нельзя применять Apache 1.3x / mod_perl 1.x в силу однозадачности последнего: один долгий запрос блокирует работу всех пользователей одновременно.

Тем не менее, существует минимум 2 компромиссных варианта использования Eludia.pm под Windows: с применением Apache2 и IIS (детали процесса установки описаны на соответствующих страницах). В обоих случаях создаются множественные копии интерпретатора со всем байт-кодом загруженных в него модулей. Памяти, конечно, жалко, да и быстродействие не то, что под UNIX на идентичном оборудовании, однако оба способа вполне применимы как для тестов и разработки, так и в "боевом" режиме.

Оптимизация

Статическое содержимое

Этот раздел вынесен в отдельную статью.

Что делать в случае отказа

Этот раздел вынесен в отдельную статью.