Устанавливайте на Ubuntu 20 в авторежиме
Если вы не хотите разбираться в серверах/бекапировании/обновлениях — в нашем облаке
Если вы только начинаете знакомиться с Totum, то мы рекомендуем вам пройти учебный курс и посмотреть мастерклассы по сборке конечных решений:
— UNIX-система Windows-сервера не поддерживаются
— PHP 8.0 NGINX + PHP-FPM
— PostgreSQL не ниже 9.6
— Exim или другой обработчик для sendmail
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).
Чем выше частота, тем быстрее для пользователя будет произведено вычисление. Количество ядер влияет только на комфорт совместной работы нескольких пользователей. Вычисление результата операции для пользователя всегда идет на одном ядре.
Посмотрите пошаговый пример конфигурирования среды и установки на 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 запускается от пользователя, отличного от того от которого выполнена установка, то вы столкнетесь с ошибками доступа! В этом случае вам потребуется выполнить
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
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
(если не делали ранее) и подключить кроны.
* * * * * 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
* * * * * 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
При установке, в корневой папке установки Totum создается Conf.php, в котором по умолчанию закомментированы несколько параметров:
/*'secure' => true,*/ // -- раскомментируйте это если totum доступен только по ssl.
protected $execSSHOn = 'inner'; // — установите этот параметр в true для разблокировки execSSH.
/*protected $checkSSl = true;*/ // — расскоментируйте это, если вам необходима проверка сертификата стороннего сервера при вызове его через getFromScript и в Сервисах Тотум.
Время исполнения скриптов:
public static $timeLimit = 120;
— в секундах, по умолчанию 2 минуты
Посмотрите пример конфигурации окружения для 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;
}
}