⟵ сюдатуда ⟶
  • Стартовое условие V4 PRO, в результате V5 PRO
  • Отладка лицензий
  • Проверка настроек postgresql
  • Обновление 4* — 5* PRO-PRO

    Стартовое условие V4 PRO, в результате V5 PRO

    Если у вас в системе больше 10 активных пользователей (admin, service и cron не считаются пользователями), сначала регистрируетесь, оплачиваете и выпускаете лицензию на ru.totum.online/pro

    Если у вас на сервере несколько установок, то эта инструкция предполагает, что они все переводятся на новую версию.

    При переходе с V4 проверить корретность лицензии невозможно, поэтому будте внимательны при указании хоста и схемы! Схема указана в технической плашке сверху справа в вашей системе (слева от версии, по умолчанию totum).

    Также удостоверьтесь, что в лицензии содержится достаточное количество пользователей.

    V5 использует web-sockets, поэтому если вы используете промежуточные proxy — вам нужно их предварительно настроить. Чтобы запросы по WebSocket не терялись при прохождении через промежуточный прокси-сервер перед Nginx, необходимо убедиться, что этот прокси корректно обрабатывает и передает заголовки Upgrade и Connection, которые используются для установления WebSocket-соединений.

    Логинимся на сервер и обновяем репозитории:

    apt update
    

    Устанавливаем PHP 8.3:

    apt -y install php8.3 php8.3-bcmath php8.3-cli php8.3-curl php8.3-fpm php8.3-gd php8.3-mbstring php8.3-opcache php8.3-pgsql php8.3-xml php8.3-zip php8.3-soap php8.3-ldap
    

    Переносим настройки пула fpm на версию 8.3:

    rm /etc/php/8.3/fpm/pool.d/www.conf && mv /etc/php/8.0/fpm/pool.d/totum.conf /etc/php/8.3/fpm/pool.d/totum.conf && sed -i "s:php8.0:php8.3:g" /etc/php/8.3/fpm/pool.d/totum.conf && sed -i "s:php8.0:php8.3:g" /etc/nginx/sites-available/totum.online.conf && sed -i "/jit_buffer_size/d" /etc/php/8.3/fpm/pool.d/totum.conf && sed -i '/php_admin_value\[opcache.enable_cli\] = 1/d' /etc/php/8.3/fpm/pool.d/totum.conf && service php8.3-fpm restart
    

    Добавляем в настройки nginx проксирование на web-socket:

    nano /etc/nginx/sites-available/totum.online.conf
    

    Вставляем секцию перед location ~* \.php$ {:

        # functionality for web sockets
        location /PRONotify {
        proxy_pass http://localhost:8181/PRONotify;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_read_timeout 600s;
        }
        # ...
    

    Сохраяняем файл Ctrl + S и перезапускаем nginx:

    service nginx restart
    

    Удаляем PHP 8.0:

    service php8.0-fpm stop && apt -y purge php8.0 php8.0-bcmath php8.0-cli php8.0-curl php8.0-fpm php8.0-gd php8.0-mbstring php8.0-opcache php8.0-pgsql php8.0-xml php8.0-zip php8.0-soap php8.0-ldap
    

    Удаляем хвосты:

    apt autoremove
    

    Ответить Y

    apt clean
    

    Проверяем версию PHP:

    php -v
    

    Ставим разрешение на перезапуск gomodule от пользователя totum:

    echo 'totum ALL=(ALL) NOPASSWD: /usr/sbin/service totum-gom restart' | sudo tee /etc/sudoers.d/restart-totum-gom && sudo chmod 440 /etc/sudoers.d/restart-totum-gom
    

    Смотрим таймзону сервера:

    cat /etc/php/8.3/fpm/pool.d/totum.conf
    

    Скопируйте таймзону из строки php_admin_value[date.timezone] = Europe/Madid (Europe/Madrid надо скопировать эту часть).

    Обновляем скрипты:

    su totum
    
    cd /home/totum/totum-mit
    

    Создаем файл CLI.totum.php.ini (замениете Europe/London на таймзону, которую вы скопировали на предыдущем шаге):

    nano /home/totum/totum-mit/CLI.totum.php.ini
    
    opcache.enable_cli = 1
    opcache.memory_consumption = 256M
    date.timezone = Europe/London
    
    git pull
    

    Создаем GOM-service:

    exit
    
    ln -s /home/totum/totum-mit/totum-gom.service /etc/systemd/system/totum-gom.service && systemctl daemon-reload && systemctl enable totum-gom && service totum-gom start && service totum-gom status
    

    Возвращаемся в totum:

    su totum
    
    cd /home/totum/totum-mit && bin/totum git-update --force
    

    Если у вас больше 10 пользователей в системе! То обязательно получить валидную лицензию. Внимательно проверяйте host и схемы базы данных при выпуске лицензии!

    Создаем файл лицензии:

    nano /home/totum/totum-mit/PRO.license
    

    Записываем в него лицензию полученную на сервере лицензий: license.totum.online

    Записывайте лицензию через консоль сервера или ее эмулятор! Не используете сторонние файловые редакторы в вашей настольной операционной системе, или предоставляемые хостером в браузере — они могут добавлять лишние нечитаемые символы (например переносы строк), которые сделают файл лицензии нечитаемым.

    Лицензия читается системой в момент старта totum-gom (модуля тотум на GO).

    После сохранения файла лицензии необходимо перезапустить totum-gom:

    sudo service totum-gom restart
    

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

    Проверить пользователей можно командой (смотрите внизу списка параметр TOTAL) (измените схему totum на вашу, если она отлична от стандартной):

    cd /home/totum/totum-mit && bin/totum schema-users --schema totum --list=on
    

    Если у вас несколько схем на одном сервере, то они все должны покрываться лицензией, если в схеме больше 10 пользователей.

    Подробнее про лицензии, а также информация как отключить пользователей их консоли в документации установки PRO-версии.

    Все!

    Рекомендуем также обновить все пакеты на сервере до последних версий от root:

    apt upgrade
    

    Если будут спрашивать что-то про локальные конфигурации — выбирайте оставить локальные так-как они настроены под вашего хостера

    Отладка лицензий

    Если при попытке входа система выдает ошибку проверки лицензии:

    1. Проверьте в файле /etc/php/8.3/fpm/pool.d/totum.conf наличие следующих строк:

      nano /etc/php/8.3/fpm/pool.d/totum.conf
      
      php_admin_value[session.gc_maxlifetime] = 3600
      php_admin_value[session.save_path] = /var/lib/php/sessions_totum
      

      Если их нет, то добавьте от root и сохраните.

      Создайте папку:

      mkdir /var/lib/php/sessions_totum && chmod 1733 /var/lib/php/sessions_totum
      

      Перезапустите FPM:

      service php8.3-fpm restart
      
    2. Получите на сервере лицензий тестовую лицензию и проверьте, правильно ли вы указали хосты через gomodule-test

      Перейдите в пользователя totum:

      su totum
      
      cd /home/totum/totum-mit
      

      Создайте файл PRO.license-test и запишите в него тестовую лицензию, полученную с сервера лицензий:

      nano PRO.license-test
      

      Запустите проверку:

      bin/gomodule-test
      
    3. Запустите totum-gom в режиме отладки лицензий:

      От root остановите totum-gom

      service totum-gom stop
      

      Перейдите в пльзователя totum:

      su totum
      
      cd /home/totum/totum-mit
      

      Запустите totum-gom в режиме отладки:

      /home/totum/totum-mit/bin/gomodule -php-sessions-directory /var/lib/php/sessions_totum -totum-directory /home/totum/totum-mit/ -log=ln
      

      После окончания отладки, остановите и запустите totum-gom как сервис:

      sudo service totum-gom restart
      
      • вместе с sudo эта команда может быть выполнена от пользователя totum

    Проверка настроек postgresql

    Если у вас много одновременно работающих пользователей, кроны, есть активно-работающие remouts, а также вы работаете со стандартной конфигурацией postgresql — может быть исчерпан стандартный пул подключений к базе данных (по умолчанию 100), так-как totum-gom использует собственный пул подключений в дополнение к PHP-FPM.

    Если вы видите ошибки вида:

    SQLSTATE[08006] [7] FATAL: remaining connection slots are reserved for non-replication superuser connections
    

    Вам нужно их увеличить. От root смотрим путь к конфигурационному файлу:

    su - postgres -c "psql -c 'SHOW config_file;'"
    

    Открываем (например):

    nano /etc/postgresql/12/main/postgresql.conf
    

    Ищем параметр max_connections, изменяем 100 > 300, сохраняем.

    Останавливаем totum-gom:

    service totum-gom restart
    

    Перезапускаем БД:

    service postgre sql restart
    

    Запускаем totum-gom:

    service totum-gom start
    

    Также удостоверьтесь, что у вас усредненная нагрузка на сервер не превышает 20-25%. Если она больше и вы не являетесь пофессиональным системным администратором — повысьте тариф сервера, что бы укладываться в 25% лимит усредненной нагрузки.