Eludia.pm
Прежде чем описывать собственно 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 на идентичном оборудовании, однако оба способа вполне применимы как для тестов и разработки, так и в "боевом" режиме.
Оптимизация
Статическое содержимое
Этот раздел вынесен в отдельную статью.
Что делать в случае отказа
Этот раздел вынесен в отдельную статью.