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

Минимальная конфигурация сервера BGERP + MySQL:

  • Операционная система: Linux;

  • Процессорное ядро эквивалентное Intel x86 с тактовой частотой 500 МГц, рекомендуется - 1 ГГц;

  • 512 МБ ОЗУ, рекомендуется - 1 ГБ.

Оптимальная конфигурация зависит напрямую от размера базы данных и количества пользователей.

MySQL

Оригинальный MySQL сервер и клиент версии 5.7 либо 8.0, требования к конфигурации (скорректируйте в файле my.cnf либо my.ini для Windows):

# хранилище InnoDB с поддержкой транзакций
default-storage-engine=INNODB
# пустой sql-mode
sql-mode=
max_allowed_packet=100M
innodb_file_per_table=1
sql-mode должен быть установлен именно равным пустой строке, как в примере.

Java

Необходима версия OpenJDK 11, может быть загружена:

Версия от Oracle запрещена для коммерческого использования.
После установки JDK должны быть доступны интерпретатор и компилятор, команды java и javac соответственно.

Установка на ОС Linux

Все операции выполнять с пользователем root.

Загрузите архив bgerp_<version>_<build>.zip с официального FTP, пример:

wget ftp://bgerp.ru/pub/bgerp/3.0/bgerp_3.0_1283.zip -O /tmp/bgerp.zip

Извлеките файл db.sql в каталог /tmp, пример:

unzip /tmp/bgerp.zip 'db.sql*' -d /tmp
Измените пароль доступа к БД в db.sql, скорректируйте при необходимости закомментированные переменные с политиками паролей.

Выполните создание БД, пример:

mysql --default-character-set=utf8 -uroot < /tmp/db.sql

При доступе к БД с другим логином - паролем, либо если база расположена на другой машине - скорректируйте команду.

Извлеките каталог BGERP из него его в требуемый каталог установки, стандартно /opt. Сделайте файлы исполняемыми, пример:

unzip /tmp/bgerp.zip 'BGERP/*' -d /opt
chmod 744 /opt/BGERP/*.sh

Перейдите в каталог BGERP, поправьте bgerp.properties пароль подключения к БД, при необходимости сервер БД и имя. Также там можно изменить HTTP порт и порт управления.

Установите в setenv.sh путь к Java, например:

JAVA_HOME=/usr
if [ -z "$JAVA_HOME" ]; then
  echo "The JAVA_HOME environment variable is not defined"
  echo "This environment variable is needed to run this program"
  exit 1
fi

Интепретатор java будет искаться по пути $JAVA_HOME/bin/java

Для запуска/останова сервера используйте erp_start.sh/erp_stop.sh. erp_status.sh - просмотр статуса запущенного сервера. После запуска проверьте log/bgerp.log и в log/bgerp.out на наличие ошибок (Exception).

Systemd

Скрипт сервиса Systemd расположен в scripts/bgerp.service, переместите его в каталог /etc/systemd/system/. Затем выполните команды:

systemctl daemon-reload
systemctl enable bgerp

Для автозапуска приложения при загрузке системы.

Установка обновлений на ОС Linux

Перед установкой обновления всегда делайте резервную копию программы при помощи скрипта backup.sh

  • При указании параметра db скрипт создаст резервную копию БД, данные для подключения к серверу MySQL берутся из файла bgerp.properties

  • Резервные копии сохраняются в папке backup в файлах с форматом имени год-месяц-дата-время(.db).zip, наличие подстроки db означает, что в архиве есть дамп БД

Изучите лог обновлений, там могут содержаться важные сведения либо инструкции.

Для обновления вызовите команду:

./installer.sh update

Для обновления системы на иную версию (не 3.0) вызовите команду:

./installer.sh update <version>

например:

./installer.sh update 3.0

Запуск скрипта без параметров выводит подсказку по дополнительным командам:

  • updatef - принудительное обновлении на последнюю версию без сравнения её с установленной;

  • update <version> - установка другой версии BGERP, версия соответствует окончанию адреса FTP;

  • killhash - очистка хэшей применённых SQL обновлений с последующим выполнением всех команд, рекомендуется попробовать при наличии ошибок SQL запросов в обновлении;

  • install <zip> - установка обновления из ZIP архива.

Рекомендованный однострочик для обновления (можете исключить db параметр для ускорения и выполнять бакап базы только эпизодически):

./backup.sh db && ./installer.sh update && ./erp_restart.sh

Хранимые процедуры обновления

Для изменений структуры БД в скриптах внутри пакетов обновлении используются хранимые процедуры. Например:

CALL add_column_if_not_exists('task', 'config', 'TEXT NOT NULL');

При восстановлении БД из резервной копии они пропадают. Процедура обновления происходит с ошибками. В этом случае необходимо выполнить следующие команды:

./installer.sh killhash
./installer.sh updatef

Первая удаляет из БД информацию о уже применённых обновлениях структуры, вторая - производит повторное выполнение всех скриптов.

Плагины

Плагины дополняют функционал ядра, позволяя максимально гибко сконфигурировать систему под нужды конкретной организации-пользователя. В данный момент все доступные плагины включены в общую сборку. Для отключения функций плагина необходимо удалить XML файл описания из каталога BGERP/plugin.

Лицензия

Лицензия BGERP ограничивает количество одновременно работающих пользователей. Лицензия представляет из себя зашифрованную строку вида:

OVwkMFJ8ASS9NW76p+nswMluXBvwBo5IFMgHcyNLf1YV8hgR1QAP+HZTldhkX5XHYgrf+5jVNKkC9EYUPpskGc09ytnHlTZySF9ajG6ZxqeafAd4RBKCq9Futzxwy00000FhFh0aNI0tzltZmHPcV4vGQ6eG5vne/Muw2zMlc2QY+d1rVXVmfXXX3jyDBG1pJH/Lnf9DvjjQxXl/2VEzS5qKajx7xUuUpZXz16dgRmmlmxm/3tH93yhp3lL1hnbrn+LA5TTqNkStGYPOY7+SfUlb2S4/U0sa/NRtoFkszVXiRAp29+WFQ3diO2uDbigxTgfsSE9c1AzDAApcHNLW6Q==

и размещается в файле BGERP/lic.data.

Дистрибутив поставляется с тестовой лицензией. При получении коммерческой лицензии строку необходимо разместить в файл без переносов строки и лишних символов до и после.

Информацию о текущей лицензии можно получить в Пуск ⇒ Администрирование ⇒ Статус сервера.

i0132

NGINX

При классической схеме сервер BGERP располагается во внутренней сети организации, NGINX позволяет организовать доступ извне к открытому интерфейсу сервера.

Документация по NGINX доступна здесь: http://sysoev.ru/nginx/docs/

Пример

BGERP запущен на внутреннем адресе crm.inner.bitel.ru. Снаружи на хосте crm.bitel.ru доступен только открытый интерфейс http://crm.bitel.ru/open

server {
    listen          80;
    server_name     crm.bitel.ru;

    access_log      /var/log/nginx/crm.bitel.ru.access.log;
    client_max_body_size    50m;

    # для открытия обычного интерфейса - добавить login.do|user
    location ~ ^/(open|img|images|css|lib|js)(.*)$ {
        resolver                X.X.X.X;.
        if ($args = '') {
            proxy_pass  http://crm.inner.bitel.ru/$1$2;
        }
        if ($args != '') {
            proxy_pass  http://crm.inner.bitel.ru/$1$2?$args;
        }
        proxy_redirect          http://crm.inner.bitel.ru/ http://crm.bitel.ru/;
        proxy_set_header        Connection close;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_read_timeout      300;
        gzip_proxied            expired no-cache no-store private no_last_modified no_etag auth;
    }
}