Если у вас в системе больше 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
Если будут спрашивать что-то про локальные конфигурации — выбирайте оставить локальные так-как они настроены под вашего хостера
Если при попытке входа система выдает ошибку проверки лицензии:
Проверьте в файле /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
Получите на сервере лицензий тестовую лицензию и проверьте, правильно ли вы указали хосты через gomodule-test
Перейдите в пользователя totum
:
su totum
cd /home/totum/totum-mit
Создайте файл PRO.license-test
и запишите в него тестовую лицензию, полученную с сервера лицензий:
nano PRO.license-test
Запустите проверку:
bin/gomodule-test
Запустите 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
totum
Если у вас много одновременно работающих пользователей, кроны, есть активно-работающие 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% лимит усредненной нагрузки.