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

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

    Getting Started

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

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

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

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

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

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

    — PostgreSQL не ниже 9.5

    — GIT

    — обработчик для sendmail, например Exim

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

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

    • bcmath

    • cli

    • curl

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

    • gd

    • json

    • mbstring

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

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

    • xml

    • zip

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

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

    Если в качестве прокси используется nginx, то установите:

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

    Установка

    Выполняйте установку от пользователя созданного для работы 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-milti 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-milti или miltiтип установки. Одинарный или множественный. Для начала освоения рекомендуем устанавливать 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-milti 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-milti totum admin@youdomain.input youdomain.input admin typepasshere
    

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

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

    Help по bin/totum install

    bin/totum install -h
    
    Description:
        Install new schema and create Conf.php
    
    Usage:
        install [options] [--] <lang> <multi> <schema> <admin_email> <totum_host> [<user_login> [<user_pass> [<dbname> [<dbhost> [<dbuser> [<dbpass> [<dbport>]]]]]]]
    
    Arguments:
      lang                         Enter language (ru)
      multi                        Enter type of install (multi/no-multi)
      schema                       Enter schema name
      admin_email                  Enter admin email
      totum_host                   Enter totum host
      user_login                   Enter totum admin login [default: "admin"]
      user_pass                    Enter totum admin password [default: "1111"]
      dbname                       Enter database name
      dbhost                       Enter database host
      dbuser                       Enter database user
      dbpass                       Enter database user password
      dbport                       Enter database database port [default: 5432]
    
    Options:
          --pgdump=PGDUMP          Enter path [default: ""]
          --psql=PSQL              Enter path [default: ""]
      -e, --schema_exists          Set for install in existing schema
      -d, --db_string[=DB_STRING]  Enter dbstring: postgresql://user:pass@host/dbname
    

    После завершения установки необходимо подлючить домен в /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

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

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

    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;
     }
    }
    

    Для проверки нотификаций Totum использует открытое соединение с переподключением раз в 60 сек. Удостоверьтесь, что настройки nginx позволяют клиенту держать соединение дольше 60 сек: проверьте наличие fastcgi_read_timeout 300; в вызове FPM.

    Помните про expires off;

    Установка на 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-milti 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
    

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