туда ⟶
  • Установка
  • Технические требования
  • Необходимые модули PHP:
  • Требования к производительности
  • Установка
  • Консольный установщик, общий принцип:
  • Консольная установка, вариант с ручным вводом параметров базы данных:
  • Консольная установка, вариант со строкой подключения Postgresql:
  • Кроны
  • Кроны для no-multi:
  • Кроны для multi
  • Блокировки в Conf.php
  • Конфиг nginx + php-fpm
  • Nginx как прокси
  • Nginx-FPM:
  • Установка на Netangels
  • Демо-доступ без установки на собственный сервер
  • Конфигурация на Ubuntu
  • Обновления
  • Бэкапы
  • Multi/no-multi
  • Консольная утилита bin/totum
  • Основы для пользователей
  • Интерфейс и компоновка
  • Таблицы и их параметры
  • Префильтр
  • Поля и их параметры
  • Синтаксис
  • Код, действия, форматирование
  • Реляционные взаимосвязи
  • Порядок расчета и единицы пересчета
  • Сравнения
  • Функции
  • Отладка
  • Автозаполнение расчетных и временных
  • Дублирование строк и циклов
  • Деревья
  • Печать и CSV
  • API
  • Роли и пользователи
  • Нотификации
  • Действия по расписанию
  • Анонимные таблицы
  • Внешние формы
  • Экспорт и импорт таблиц
  • Системные таблицы
  • Подключение функций
  • Дополнительные интерфейсы
  • Структура файлов
  • Структура базы
  • Заставка

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

    Getting Started

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

    — UNIX-система На данный момент Windows-сервера не поддерживаются из-за другого типа путей файловой системы.

    — PHP 7.3-7.4 как модуль Apache (CGI) или PHP-FPM.

    — PostgreSQL не ниже 9.5

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

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

    • bcmath

    • cli

    • curl

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

      Если вы устанавливаете PHP как модуль Apache — необходимо удостовериться, что в настройках Apache установлено: **allow-owerride: all**
      
    • gd

    • json

    • mbstring

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

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

    • xml

    • zip

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

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

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

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

    Totum потребляет мало оперативной памяти, но чувствителен к тактовой частоте процессора.

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

    Установка

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

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

    Выполняйте установку от пользователя созданного для работы 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 запускается от пользователя, отличного от того от которого выполнена установка, то вы столкнетесь с ошибками доступа! В этом случае вам потребуется дать права 777 на папку тотума.

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

    bin/totum install --pgdump=PGDUMP --psql=PSQL -e -- ru no-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 — язык устанавливаемой схемы. Пока доступен только ru.

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

    • SCHEMA_NAME — название схемы в БД. Будет создана или перезаписана при наличии -e. Ставить в public категорически не рекомендуется! При установке в public при multi-установке или при переходе с no-multi на multi вам потребуется скилл в psql, тк консольная bin/totum schema-duplicate не сможет выполнить alter для 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 no-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 no-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 (если не делали ранее) и подключить кроны.

    Кроны

    Кроны для 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
    

    Кроны для 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
    

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

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

    /*'secure' => true,*/ // -- раскомментируйте это если totum доступен только по ssl.
    
    /* protected $execSSHOn = true;*/ // - раскомментируйте это для использования функции execSSH. Если этой строки нет в вашем конфиге — добавьте в class Conf extends ConfParent перед const db=array
    

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

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

    Конфиг nginx + php-fpm

    Nginx как прокси

    proxy_connect_timeout 300;
    proxy_send_timeout 300;
    proxy_read_timeout 300;
    send_timeout 300;
    
    Для того, что бы не залипали превью картинок в полях типа Файл:
    expires off;
    

    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;
    
        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 ~* \.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;
     }
    }
    

    Установка на Netangels

    Панель NetAngels расчитана на начинающих и максимально упрощена — это позволит вам установить Тотум за несколько простых действий. Не подходит для крупных проектов!

    Партнерская ссылка для регистрации ⟶

    Регистрируетесь, создаете контейнер и сайт.

    Переходите Файлы — Терминал и выполняете в терминале команду, предварительно заменив в ней admin@youdomain.input, youdomain.input и typepasshere на ваши значения (только заменить, не удаляйте из этой команды элементы, пробелы и прочие технические символы!):

    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 && bin/totum install --pgdump=pg_dump --psql=psql -e --db_string=$DB_CONNECTION_STRING -- ru no-multi totum admin@youdomain.input youdomain.input admin typepasshere && cd .. && rm -R www && ln -s ./totum-mit/http www
    

    В разделе Cron подключаете

    На выполнение каждую минуту:

    ./totum-mit/bin/totum schema-crons
    

    На выполнение раз в 10 минут:

    ./totum-mit/bin/totum clean-tmp-dir
    ./totum-mit/bin/totum clean-schema-tmp-tables
    

    Для дальнейшего обновления открываете Файлы — Терминал и выполняете:

    cd totum-mit && bin/totum git-update
    

    Панель netangels иногда подглючивает — если после установки вы увидели ошибку загрузка autoload.php или другую — первым делом Выключите-Включите сайт в настройках панели!

    Демо-доступ без установки на собственный сервер

    Запросить демо-доступ без установки на собственный сервер можно на demo.totum.online.

    Характеристики демо-сервера — CPU 2.4 х 4, 6 Gb, PHP 7.3 PostgreSQL 9.5
    

    Заказать демо-доступ