Установка

Материал из WiKi - UserSide

ВНИМАНИЕ: Данная инструкция актуальна для версий ERP "UserSide" 3.11 и выше. Для версии ниже 3.11 - используйте отдельную инструкцию по установке.

Подготовительные работы

  • рекомендуется выполнять установку на любые Unix-системы. Рекомендуем использовать дистрибутивы Linux попроще и понадежнее, вроде Debian, CentOS или Ubuntu Server (FreeBSD тоже подойдет, если вы знаете, с чем имеете дело). Установка на Windows также возможна, но практика показала, что на *nix-системах производительность программы гораздо выше при тех же технических характеристиках сервера. Далее рассматривается пример установки на Linux Debian 9 Stretch с web-сервером nginx
  • установите postgresql, postgis, php, все необходимые расширения и веб-сервер. Мы рекомендуем использовать php7.1 и web-сервер nginx. Пример для Debian 9 (Stretch):
 sudo apt update
 sudo apt install -y apt-transport-https lsb-release ca-certificates
 wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
 sudo echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" >> /etc/apt/sources.list.d/pgdg.list
 wget --quiet -O - http://nginx.org/keys/nginx_signing.key | sudo apt-key add -
 sudo echo "deb http://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx" >> /etc/apt/sources.list.d/nginx.list
 sudo echo "deb-src http://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx" >> /etc/apt/sources.list.d/nginx.list
 sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
 sudo echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list
 sudo apt update
 sudo apt remove -y nginx-common apache2
 sudo apt autoremove -y
 sudo apt install -y postgresql-10 nginx php7.1-fpm php7.1-cli php7.1-common php7.1-curl php7.1-intl php7.1-json php7.1-mbstring php7.1-opcache php7.1-pgsql php7.1-readline php7.1-xml php7.1-zip php7.1-snmp php7.1-gd php7.1-soap
 
  • выполните настройку PHP (укажите свой часовой пояс и желаемый объем POST-данных, если 50 Мб мало) и базовую настройку nginx, выполнив следующие команды:
sudo sed -i "s@.*date.timezone.*@date.timezone = Europe/Zaporozhye@" "/etc/php/7.1/fpm/php.ini"
sudo sed -i "s@.*date.timezone.*@date.timezone = Europe/Zaporozhye@" "/etc/php/7.1/cli/php.ini"
sudo sed -i "s@;cgi.fix_pathinfo=1@cgi.fix_pathinfo=0@" "/etc/php/7.1/fpm/php.ini"
sudo sed -i "s@post_max_size = 8M@post_max_size = 50M@" "/etc/php/7.1/fpm/php.ini"
sudo sed -i "s@upload_max_filesize = 2M@upload_max_filesize = 50M@" "/etc/php/7.1/fpm/php.ini"
sudo sed -i "s@user.*;@user  www-data www-data;@" "/etc/nginx/nginx.conf"
  • создайте каталог, который будет является корнем web-сервера (root). При этом обратите внимание на то, что корнем самого приложения будет каталог /var/www/usersude.
 mkdir -p /var/www/userside/userside3
  • создайте сайт для nginx (или отредактируйте имеющийся сайт по умолчанию) выполнив команду:
   sudo cat << EOF > /etc/nginx/conf.d/userside.conf
   server {
       listen               80;
       server_name          userside.mycompany.com;
       charset              utf-8;
       client_max_body_size 50M;
       access_log  /var/log/nginx/userside-access.log  main;
       error_log   /var/log/nginx/userside-error.log;
       root   /var/www/userside/userside3;
       index  index.php;
       location = /favicon.ico { access_log off; log_not_found off; }
       location = /robots.txt  { access_log off; log_not_found off; }
       location / {
           try_files $uri $uri/ =404;
       }
       location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
           access_log off;
           log_not_found off;
           expires 1m;
           add_header Cache-Control "public";
       }
       location ~* \.(?:css|js)$ {
           access_log off;
           expires 1d;
           add_header Cache-Control "public";
       }
       location ~ \.php$ {
           try_files     $uri =404;
           fastcgi_split_path_info ^(.+\.php)(/.+)$;
           fastcgi_pass  unix:/run/php/php7.1-fpm.sock;
           fastcgi_index index.php;
           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
           include       fastcgi_params;
       }
       location ~ /\.ht { deny  all; }
       error_page 404 /404.php?type=404;
       error_page 403 /404.php?type=403;
       error_page 500 /404.php?type=500;
       location = /404.php {
           root /var/www/userside/userside3/main/error/;
           internal;
       }
   }
   EOF 
  • перезапустите стек
 sudo systemctl restart postgresql.service
 sudo systemctl restart nginx.service
 sudo systemctl restart php7.1-fpm.service

Инсталлятор

См. также: Инсталлятор

1) перейти в каталог системы (/var/www/userside)

2) запустить команду

php -r "copy('http://my.userside.eu/install', 'userside_install.phar');" 

ЛИБО

скачать инсталлятор с личного кабинета http://my.userside.eu и положить его в каталог системы

3) запускаем инсталлятор

sudo -u www-data php userside_install.phar

В процессе работы он проверяет соответствие техническим требованиям и задаёт сопутствующие установке вопросы

По окончанию работы инсталлятора будет выведено сообщение об успешной установке.

Настройка системы

  • открыть страницу системы http://userside.mydomain.com/oper/ и убедиться в работоспособности системы (имя пользователя: Admin, пароль: 1234)
  • на уровне файла .htaccess запретить просмотр листинга каталогов
  • доступ к файлу API "/userside/userside3/api.php" рекомендуется ограничить на уровне веб-сервера для доступа лишь с разрешённых IP-адресов
  • прописать планировщик UserSide в cron.
* * * * *   www-data   php /var/www/userside/userside cron > /dev/null 2>&1

Крайне рекомендуется после установки системы установить периодическое (лучше - ежедневное) создание резервной копии штатными средствами MySQL и PostgeSQL и её хранение НА ДРУГОМ КОМПЬЮТЕРЕ. Например:

mysqldump -uroot -pPASS userside > /var/www/userside.sql
pg_dump userside > /var/www/userside_pg.sql


Рекомендуется ознакомиться с инструкциями на странице: С чего начать?