туда ⟶
  • Установка
  • Инструкции по установке
  • После установки
  • Техническая информация по установке
  • Технические требования
  • Необходимые модули PHP
  • Требования к производительности
  • Клонирование с Git и установка Composer
  • Консольный установщик, общий принцип
  • Кроны
  • Кроны для multi
  • Кроны для no-multi
  • Блокировки в Conf.php
  • Конфиг nginx + php-fpm
  • Nginx-FPM
  • Установка на Ubuntu
  • Обновления
  • Установка PRO
  • Бэкапы
  • Multi/no-multi
  • Консольная утилита bin/totum
  • Основы для пользователей
  • Интерфейс и компоновка
  • Таблицы и их параметры
  • Префильтр
  • Поля и их параметры
  • Синтаксис
  • Код, действия, форматирование
  • Реляционные взаимосвязи
  • Порядок расчета и единицы пересчета
  • Сравнения
  • Функции
  • Отладка
  • Автозаполнение расчетных и временных
  • Дублирование строк и циклов
  • Печать и CSV
  • API
  • Роли и пользователи
  • Нотификации
  • Действия по расписанию
  • Системные таблицы
  • Дополнительные интерфейсы
  • Структура файлов
  • Структура базы
  • [PRO] Деревья
  • [PRO] Анонимные таблицы
  • [PRO] Внешние формы
  • [PRO] Экспорт и импорт таблиц
  • [PRO] MeiliSearch
  • [PRO] Базы данных
  • [PRO] Настройка CSS
  • [PRO] Custom docs
  • [PRO] LDAP AD
  • [PRO] Версии файлов
  • [PRO] List-unsubscribe
  • [PRO] Динамические поля
  • [PRO] Only Office
  • [PRO] Auth Tokens
  • [PRO] 2FA
  • [PRO] Superlang
  • [PRO] Profiler
  • [PRO] Подключение функций
  • [SRV] Подключение
  • [SRV] Пользовательские возможности
  • [SRV] XLSX/DOCX генераторы
  • [SRV] chatGPT
  • Заставка

    Инструкции по установке

    Устанавливайте на Ubuntu 20 в авторежиме

    Если вы не хотите разбираться в серверах/бекапировании/обновлениях — в нашем облаке

    После установки

    Если вы только начинаете знакомиться с Totum, то мы рекомендуем вам пройти учебный курс и посмотреть мастерклассы по сборке конечных решений:

    Техническая информация по установке

    Технические требования

    — UNIX-система Windows-сервера не поддерживаются

    — PHP 8.0 NGINX + PHP-FPM

    — PostgreSQL не ниже 9.6

    — Exim или другой обработчик для sendmail

    Необходимые модули PHP

    • bcmath

    • cli

    • curl

    • fpm (если вы будете использовать fpm)

    • gd

    • mbstring

    • opcache (по желанию, ускоряет работу)

      Не забудьте включить в php.ini:
      
      opcache.enable 1
      opcache.enable_cli 1
      opcache.memory_consumption 128 // выделите 10% в зависимости от имеющейся оперативной памяти
      jit_buffer_size 64
      
    • pgsql

    • xml

    • zip

    • soap (по желанию, необходим для работы функции getFromSoap)

    Требования к производительности

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

    Для большинства решений достаточно CPU с частотой 2.4 - 2.6 Ггц (2-4 core).

    Чем выше частота, тем быстрее для пользователя будет произведено вычисление. Количество ядер влияет только на комфорт совместной работы нескольких пользователей. Вычисление результата операции для пользователя всегда идет на одном ядре.

    Клонирование с Git и установка Composer

    Посмотрите пошаговый пример конфигурирования среды и установки на Ubuntu

    Если у вас минимальная квалификация в серверах — [устанавливайте на NetAngels][561]

    Выполняйте установку от пользователя созданного для работы Totum. Если git clone будет выполнен от root или другого пользователя, то в дальнейшем вы столкнетесь с ошибкой доступа!

    git clone https://github.com/totumonline/totum-mit.git
    
    cd totum-mit
    
    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    
    php composer-setup.php --quiet
    
    rm composer-setup.php
    
    php composer.phar install --no-dev
    

    С этого места можно подключить домен в папку /totum-mit/http и перейти по адресу домена для работы с визуальным установщиком или продолжить при помощи консольной утилиты.

    При обращении к домену PHP должен запускаться от пользователя созданного для работы Totum. Если PHP запускается от пользователя, отличного от того от которого выполнена установка, то вы столкнетесь с ошибками доступа! В этом случае вам потребуется выполнить chown -R на папку тотума.

    Консольный установщик, общий принцип

    bin/totum install --pgdump=PGDUMP --psql=PSQL -e -- ru multi SCHEMA_NAME ADMIN_EMAIL DOMAIN admin ADMIN_PASS DB_NAME DB_HOST DB_USER DB_PASS
    
    • PGDUMP и PSQL — необязательные параметры, но если они установлены вместе с базой их лучше указать. Если они не прописаны глобально для системы, то надо указать пути. Обычно --pgdump=pg_dump --psql=psql.

    • -e — позволяет перезаписать существующую схему БД.

    • ru — язык устанавливаемой схемы. Доступны en, ru.

    • multi или no-multiтип установки. Множественный или одинарный. Рекомендуем устанавливать multi. В multi варианте одна установка скриптов — множество схем Totum, например разные проекты.

    • SCHEMA_NAME — название схемы в БД. Будет создана или перезаписана при наличии -e. Ставить в public категорически ЗАПРЕЩАЕТСЯ!

    • ADMIN_EMAIL — используются для критических нотификаций.

    • DOMAIN — host без протокола (например totum.online) по которому будет отвечать Totum. При no-multi не является ключевыми и может быть введены с ошибкой. Но это недопустимо для multi установки, тк по домену работает маршрутизация!

    • ADMIN_PASS — замените на желаемый пароль админа.

    • DB_NAME, DB_HOST, DB_USER, DB_PASS — параметры доступа к БД. Не указываются если вместо них используется параметр строки подключения postgres --db_string="DB_STR"

    Все параметры (кроме multi) потом редактируются в созданном в корне Conf.php

    Консольная установка, вариант с ручным вводом параметров базы данных
    bin/totum install --pgdump=pg_dump --psql=psql -e -- ru multi totum admin@youdomain.input youdomain.input admin typepasshere DB_NAME DB_HOST DB_USER DB_PASS
    
    Консольная установка, вариант со строкой подключения Postgresql
    bin/totum install --pgdump=pg_dump --psql=psql -e --db_string="DB_CONNECTION_STRING" -- ru multi totum admin@youdomain.input youdomain.input admin typepasshere
    

    --db_string="DB_CONNECTION_STRING" — строка подключения к БД вида:

        --db_string="postgresql://user:pass@host:5432/db_name"
    

    После завершения установки необходимо подлючить домен в /totum-mit/http (если не делали ранее) и подключить кроны.

    Кроны

    Кроны для multi

    * * * * *       cd $HOME/TOTUM_FOLDER/ && bin/totum schemas-crons
    */10 * * * *    cd $HOME/TOTUM_FOLDER/ && bin/totum clean-tmp-dir
    */10 * * * *    cd $HOME/TOTUM_FOLDER/ && bin/totum clean-schemas-tmp-tables
    

    Кроны для no-multi

    * * * * *       cd $HOME/TOTUM_FOLDER/ && bin/totum schema-crons
    */10 * * * *    cd $HOME/TOTUM_FOLDER/ && bin/totum clean-tmp-dir
    */10 * * * *    cd $HOME/TOTUM_FOLDER/ && bin/totum clean-schema-tmp-tables
    

    Блокировки в Conf.php

    При установке, в корневой папке установки Totum создается Conf.php, в котором по умолчанию закомментированы несколько параметров:

    /*'secure' => true,*/ // -- раскомментируйте это если totum доступен только по ssl.
    
    protected $execSSHOn = 'inner'; // — установите этот параметр в true для разблокировки execSSH.
    
    /*protected $checkSSl = true;*/ // — расскоментируйте это, если вам необходима проверка сертификата стороннего сервера при вызове его через getFromScript и в Сервисах Тотум.
    

    Время исполнения скриптов:

    public static $timeLimit = 120; — в секундах, по умолчанию 2 минуты

    Конфиг nginx + php-fpm

    Nginx-FPM

    Посмотрите пример конфигурации окружения для ubuntu.

    YOU_SERVER_IP, DOMAIN.ZONE, PATH_TO_YOU_TOTUM_USER_POOL_SOCK — меняются на ваши значения.

    server {
        listen YOU_SERVER_IP:80;
        server_name DOMAIN.ZONE;
        charset UTF-8;
        root PATH_TO_TOTUM_FOLDER/http;
        index index.php;
        expires off;
    
        client_max_body_size 10M;
    
        location / {
        try_files $uri $uri/ /index.php?$args;
        }
    
        location ~ ^/fls/6_main_img.png$ {
        try_files /fls/$host/6_main_img.png $uri /fls/hand.png;
        }
    
        location ~ ^/fls/6_favicon.png$ {
        try_files /fls/$host/6_favicon.png $uri /fls/hand_favicon.png;
        }
    
        location ~ ^/fls/(.+)$ {
        try_files /fls/$host/$1 $uri /fls/no-img.jpg;
        }
    
        location ~ ^/fonts/(.+)$ {
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
        expires 365d;
        }
    
        location ~* \.php$ {
    
        fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f admin@youdomain.input";
        fastcgi_pass unix: PATH_TO_YOU_TOTUM_USER_POOL_SOCK;    
        fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
        try_files $uri =404;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        fastcgi_read_timeout 300;
     }
    }