Установка BIKA LIMS и ReportLab на Ubuntu
Введение
Ниже — подробный пошаговый гайд по установке BIKA LIMS и ReportLab, включая установку шрифтов BIKA и конфигурацию rl_config.py и zope.conf. Команды приведены с сохранёнными переменными оболочки (например $BIKA_WGET_ADDRESS). Замените их на реальные значения перед выполнением.
Важно: инструкция ориентирована на старые версии Ubuntu и Python (в примере — python2.4). Для современных систем нужны другие шаги (pip, virtualenv, совместимость с Python 3.x) — см. раздел «Альтернативные подходы» и «Совместимость».
Требования и пояснения переменных
- Переменные вида $DOWNLOAD_DIR, $MY_PRODUCTS_DIR, $BIKA_TARBALL и т. п. — обязательно замените на реальные пути/имена файлов.
- Примеры используют sudo. Если вы уже под root, sudo можно опустить.
- Порты: Zope обычно 8080, id-server в примере 8081. Проверьте занятость портов.
1. Загрузка и распаковка BIKA и ReportLab
Выполните загрузку пакетов. Команды приведены без изменений — используйте свои значения переменных.
sudo wget $BIKA_WGET_ADDRESS -P $DOWNLOAD_DIR
sudo tar -xzf $DOWNLOAD_DIR/$BIKA_TARBALL -C $MY_PRODUCTS_DIR
sudo wget $REPORTLAB_WGET_ADDRESS -P $DOWNLOAD_DIR
sudo tar -xzvf $DOWNLOAD_DIR/$REPORTLAB_TARBALL -C $MY_PRODUCTS_DIR
2. Установка версии ReportLab, совместимой с системой
Для интеграции с Ubuntu (в примере — Hardy Heron) установите пакет из репозитория:
sudo apt-get install python-reportlab
Примечание: на современных системах пакет называется иначе или устанавливается через pip в виртуальное окружение (см. раздел «Альтернативные подходы»).
3. Подготовка и установка шрифтов BIKA для ReportLab
Создайте каталог для шрифтов BIKA, скачайте архив и распакуйте:
sudo mkdir $MY_PRODUCTS_DIR/$BIKAFONTS_DIR
sudo wget $BIKAFONTS_WGET_ADDRESS -P $DOWNLOAD_DIR
sudo cp $DOWNLOAD_DIR/$BIKAFONTS_ZIPFILE $MY_PRODUCTS_DIR/$BIKAFONTS_DIR/$BIKAFONTS_ZIPFILE
sudo apt-get install unzip
cd $MY_PRODUCTS_DIR/$BIKAFONTS_DIR
sudo unzip -j $MY_PRODUCTS_DIR/$BIKAFONTS_DIR/$BIKAFONTS_ZIPFILE
Найдите, где установлен reportlab (в примере ищем папку для python2.4):
REPORTLAB_INSTALL_LOCATION=`sudo find / -name reportlab -print | grep python2.4`
Создайте каталог fonts внутри установки reportlab и скопируйте шрифты:
INSTALLED_FONTS_DIR=$REPORTLAB_INSTALL_LOCATION/fonts
sudo mkdir $INSTALLED_FONTS_DIR
sudo cp $MY_PRODUCTS_DIR/$BIKAFONTS_DIR/* $INSTALLED_FONTS_DIR
Показать путь к установленным шрифтам (для последующей вставки в конфигурацию):
$INSTALLED_FONTS_DIR
Например: usr/lib/python2.4/site-packages/reportlab/fonts
4. Правка конфигурации ReportLab (rl_config.py)
Откройте файл конфигурации ReportLab и добавьте путь к шрифтам BIKA.
sudo nano $REPORTLAB_INSTALL_LOCATION/rl_config.py
В nano: используйте стрелки, Ctrl-K/Ctrl-U для вырезания/вставки, Ctrl-X и Y для сохранения.
Найдите строку, описывающую местоположение системных Adobe-шрифтов, например:
'/usr/lib/Acrobat9/Resource/Font', #Linux, Acrobat 5?
Скопируйте её и измените на путь к папке с шрифтами BIKA, который вы получили ранее. Пример:
'usr/lib/python2.4/site-packages/reportlab/fonts', #Linux, BIKA fonts
Сохраните и выйдите.
5. Установка BIKA в Plone (копирование Products)
Скопируйте продукт BIKA в каталог Products экземпляра Plone и скрипт start-id-server:
sudo cp $MY_PRODUCTS_DIR/$BIKA_VERSION/PloneProducts/* $INSTANCE_HOME/Products -r
sudo cp $INSTANCE_HOME/Products/bika/scripts/start-id-server $INSTANCE_HOME
Если у вас несколько экземпляров Plone, возможно, потребуется изменить порт в start-id-server (8081 может быть занят). В одном экземпляре этого делать не нужно.
6. Правка zope.conf для указания id-server
Найдите файл zope.conf:
ZOPECONF_FILE=`sudo find / -name zope.conf -print`
Откройте его в nano:
sudo nano $ZOPECONF_FILE
Найдите секцию environment и измените/добавьте строку так, чтобы она выглядела именно так:
IDServerURL http://localhost:8081
Сохраните изменения.
7. Запуск id-server и Zope
Запустите id-server от имени пользователя, под которым работает Plone/инстанс, затем запустите Zope:
su USERNAME $INSTANCE_HOME/start-id-server
$INSTANCE_HOME/bin/zopectl start
Где USERNAME — имя пользователя, заданное при установке Ubuntu или под которым должен работать инстанс.
8. Доступ к Zope и созданию сайта BIKA
Откройте браузер и перейдите в Zope Management Interface (ZMI):
http://LIMSERVERlocalip:8080
LIMSERVERlocalip — IP-адрес сервера, который можно узнать через ifconfig или ip addr.
Авторизация: введите пользователя admin и пароль. Если вы не знаете пароль, найдите файл с паролями:
sudo find / -name *password*
Откройте файл через sudo nano и посмотрите значение.
Создание Plone-сайта BIKA через ZMI:
- В ZMI выберите Manage, затем Add.
- Выберите Plone site из выпадающего меню.
- В поле id укажите имя сайта, например bika-site-name.
- В опциях ниже выберите bika и нажмите Add.
После завершения установка сайта будет доступна по адресу:
http://LIMSERVERlocalip:8080/bika-site-name
Поздравляем — BIKA должен быть доступен.
Критерии приёмки
- Zope запущен и доступен по порту 8080.
- id-server запущен и слушает указанный порт (например 8081).
- reportlab видит папку с шрифтами (путь прописан в rl_config.py).
- В ZMI можно создать Plone site и выбрать BIKA при добавлении.
- Сайт BIKA открывается в браузере и загружает интерфейс.
Тесты и контрольные проверки (короткая проверка работоспособности)
- curl http://localhost:8080 должен вернуть HTTP-ответ от Zope.
- Проверить наличие каталога fonts в пути установки reportlab и наличие файлов шрифтов.
- При ошибках в логах Zope/Plone ищите сообщения про отсутствующие модули или шрифты.
Технические заметки, когда инструкция НЕ сработает
- Если ваша система использует Python 3.x и современные пакеты, поиск reportlab для python2.4 не найдёт нужную папку — используйте pip/virtualenv и установите reportlab в виртуальное окружение Plone.
- Если Plone установлен через buildout или в виртуальном окружении, копирование в INSTANCE_HOME/Products — не корректный путь; используйте конфигурацию buildout и пересоберите.
- Современные Ubuntu используют systemd-юниты; команды запуска differ: используйте systemctl для управления сервисами.
Альтернативные подходы
- Установка reportlab через pip в виртуальном окружении: python -m venv /srv/plone/venv && source /srv/plone/venv/bin/activate && pip install reportlab
- Для шрифтов: можно указать прямой путь к шрифтам в коде генерации PDF вместо изменения rl_config.py.
- Для множественных инстансов: вынесите id-server как systemd-сервис с индивидуальным портом для каждого инстанса.
Рекомендации по безопасности и GDPR (коротко)
- Ограничьте доступ к ZMI по IP или используйте обратный прокси с аутентификацией.
- Храните пароли отдельно и защищённо, не сохраняйте их в открытых файлах.
- Для рабочей среды обязательно используйте TLS/HTTPS.
Роль‑ориентированные контрольные списки
- Системный администратор:
- Проверить порты и права на файлы.
- Настроить автозапуск id-server и Zope (systemd/init).
- Разработчик Plone/BIKA:
- Убедиться, что версии BIKA совместимы с вашей версией Plone.
- Протестировать генерацию PDF и корректность шрифтов.
- Оператор (DevOps):
- Мониторинг процессов (Zope, id-server).
- Резервное копирование конфигураций и БД.
Быстрая инструкция по откату/rollback
- Удалите скопированные Products из INSTANCE_HOME/Products, верните прежний rl_config.py (сохраните резервную копию перед правкой).
- Остановите zopectl и id-server.
- Разверните резервную копию и перезапустите.
Журнал типичных проблем и их решений
- Проблема: Zope не стартует — проверьте логи $INSTANCE_HOME/var/log/ (или stdout при запуске). Частая причина: неправильные права или отсутствующие зависимости.
- Проблема: ReportLab не видит шрифты — убедитесь, что путь в rl_config.py точный и права на файлы позволяют чтение для пользователя сервиса.
- Проблема: Порт 8081 занят — смените порт в start-id-server и zope.conf на незанятый.
Совместимость и миграция (советы)
- Для современных Ubuntu и Python 3: мигрируйте BIKA/Plone на поддерживаемые версии, используйте virtualenv / pip / buildout.
- Перед миграцией проверьте совместимость версий BIKA с версией Plone.
Краткое завершение
Эта инструкция даёт последовательность действий для установки BIKA LIMS и интеграции шрифтов ReportLab на сервере Ubuntu (примерно как в Hardy Heron). Для современных систем рекомендуется адаптировать шаги установки ReportLab и управление Python-окружением.
Важно: всегда делайте резервные копии конфигурационных файлов перед изменениями.
Сводка действий:
- Загрузить и распаковать пакеты.
- Установить reportlab из репозитория (или pip).
- Скопировать и распаковать шрифты в папку reportlab/fonts.
- Править rl_config.py и zope.conf.
- Запустить id-server и Zope, создать Plone сайт с BIKA.
Удачной установки!