Установка для версии 3.18: различия между версиями
Uscld2 (обсуждение | вклад) |
Uscld2 (обсуждение | вклад) |
||
Строка 161: | Строка 161: | ||
sudo -u postgres psql -d userside_new_db -c "CREATE EXTENSION postgis" | sudo -u postgres psql -d userside_new_db -c "CREATE EXTENSION postgis" | ||
sudo -u postgres pg_restore --no-owner --role=userside_new_user --dbname=userside_new_db /backup/userside.dump | sudo -u postgres pg_restore --no-owner --role=userside_new_user --dbname=userside_new_db /backup/userside.dump | ||
Во время выполнения последней команды вы получите сообщения об ошибках перезаписи объектов postgis внутри базы данных (порядка 5 сообщений), так как при восстановлении была явно указана новая роль, которая не может быть применена к системным объектам postigs. Внимательно просмотрите сообщения об ошибках, чтобы они не относились к каким либо другим объектам базы данных. | |||
'''Рекомендуется ознакомиться с инструкциями на странице: [[С чего начать?]]''' | '''Рекомендуется ознакомиться с инструкциями на странице: [[С чего начать?]]''' |
Версия от 08:42, 9 июня 2019
ВНИМАНИЕ: Данная инструкция актуальна для версий ERP "UserSide" 3.11 и выше. Для версии ниже 3.11 - используйте отдельную инструкцию по установке.
Подготовительные работы
- рекомендуется выполнять установку на любые Unix-системы. Рекомендуем использовать дистрибутивы Linux попроще и понадежнее, вроде Debian, CentOS или Ubuntu Server (FreeBSD тоже подойдет, если вы знаете, с чем имеете дело). Установка на Windows также возможна, но практика показала, что на *nix-системах производительность программы гораздо выше при тех же технических характеристиках сервера. Далее рассматривается пример установки на Linux Debian 9 Stretch с web-сервером nginx
- убедитесь, что ваша система соответствует необходимым техническим требованиям
- установите postgresql, postgis, php, все необходимые расширения и веб-сервер. Для версии USERSIDE 3.13 мы рекомендуем использовать php7.2, для 3.11 - 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 - echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" | sudo tee -a /etc/apt/sources.list.d/pgdg.list wget --quiet -O - http://nginx.org/keys/nginx_signing.key | sudo apt-key add - echo "deb http://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx" | sudo tee -a /etc/apt/sources.list.d/nginx.list echo "deb-src http://nginx.org/packages/mainline/debian/ $(lsb_release -sc) nginx" | sudo tee -a /etc/apt/sources.list.d/nginx.list sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee -a /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 snmp-mibs-downloader postgresql-11 postgresql-11-postgis-2.5 nginx sudo apt install -y php7.2-fpm php7.2-cli php7.2-common php7.2-curl php7.2-intl php7.2-json php7.2-mbstring php7.2-opcache php7.2-pgsql php7.2-readline php7.2-xml php7.2-zip php7.2-snmp php7.2-gd php7.2-soap sudo download-mibs
- выполните настройку PHP: укажите свой часовой пояс, желаемый объем POST-данных (если 50 Мб мало - укажите ваше предпочитаемое значение) и максимальное время выполнения (если в будущем будет мало, сможете изменить); и базовую настройку nginx, выполнив следующие команды:
sudo sed -i "s@^;*date.timezone.*@date.timezone = Europe/Zaporozhye@" "/etc/php/7.2/fpm/php.ini" sudo sed -i "s@^;*date.timezone.*@date.timezone = Europe/Zaporozhye@" "/etc/php/7.2/cli/php.ini" sudo sed -i "s@;cgi.fix_pathinfo=1@cgi.fix_pathinfo=0@" "/etc/php/7.2/fpm/php.ini" sudo sed -i "s@post_max_size = 8M@post_max_size = 50M@" "/etc/php/7.2/fpm/php.ini" sudo sed -i "s@upload_max_filesize = 2M@upload_max_filesize = 50M@" "/etc/php/7.2/fpm/php.ini" sudo sed -i "s@^user.*;@user www-data www-data;@" "/etc/nginx/nginx.conf" sudo sed -i "s@max_execution_time.*@max_execution_time = 120@" "/etc/php/7.2/fpm/php.ini" sudo sed -i "s@max_input_time.*@max_input_time = 120@" "/etc/php/7.2/fpm/php.ini" sudo sed -i 's@;*request_terminate_timeout.*@request_terminate_timeout = 120@' /etc/php/7.2/fpm/pool.d/www.conf
- создайте каталог, который будет является корнем web-сервера (root). При этом обратите внимание на то, что корнем самого приложения будет каталог /var/www/userside.
sudo mkdir -p /var/www/userside/userside3
- создайте сайт для nginx (или отредактируйте имеющийся сайт по умолчанию). Для этого создайте файл /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; 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 ~* ^.+\.(css|js|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 max; add_header Pragma public; add_header Cache-Control "public"; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/run/php/php7.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_read_timeout 600; 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; } }
- выполните установку и/или настройку Redis
- перезапустите стек
sudo systemctl restart postgresql.service sudo systemctl restart nginx.service sudo systemctl restart php7.2-fpm.service
Инсталлятор
См. также: Инсталлятор
1) перейти в каталог системы (/var/www/userside)
2) запустить команду
php -r "copy('https://my.userside.eu/install', 'userside_install.phar');"
ЛИБО
скачать инсталлятор с личного кабинета https://my.userside.eu и положить его в каталог системы
3) запускаем инсталлятор
sudo -u www-data php userside_install.phar install
В процессе работы он проверяет соответствие техническим требованиям и задаёт сопутствующие установке вопросы
По окончанию работы инсталлятора будет выведено сообщение об успешной установке.
Настройка системы
- открыть страницу системы http://userside.mydomain.com/oper/ и убедиться в работоспособности системы (имя пользователя: Admin, пароль: 1234)
- доступ к файлу API "/userside/userside3/api.php" рекомендуется ограничить на уровне веб-сервера для доступа лишь с разрешённых IP-адресов
- прописать планировщик UserSide в cron.
cat << EOF > /etc/cron.d/userside * * * * * www-data php /var/www/userside/userside cron > /dev/null 2>&1 EOF
- настроить взаимодействие с биллингом в соответствии с инструкциями
- в разделе "Настройка - Основная" изучите основные разделы, параметры и настройте систему под себя.
Резервное копирование, восстановление, клонирование
Крайне рекомендуется после установки системы установить периодическое (лучше - ежедневное) создание резервной копии штатными средствами PostgeSQL и её хранение НА ДРУГОМ узле. Например:
sudo -u postgres pg_dump --no-acl --no-owner -Fc userside > /backup/userside.dump
Восстановить сделанную таким образом резервную копию можно различными способами.
Перед восстановлением базы данных необходимо обязательно очистить кеш Redis (только для версии 3.13 и новее)
php userside cache/flush-all
Если необходимо восстановить базу данных из резервной копии поверх существующей базы данных (все объекты базы данных будут заменены новыми), выполните:
sudo -u postgres pg_restore --clean --if-exists --dbname=userside /backup/userside.dump
В этом случае явно указывается база данных, в которую необходимо восстановить содержимое базы данных.
Если необходимо восстановить базу данных из резервной копии с автоматическим созданием базы данных, выполните (обратите внимание, имя базы данных в данном случае указывается postgres):
sudo -u postgres pg_restore --clean --if-exists --create --dbname=postgres /backup/userside.dump
База данных будет создана автоматически (вся необходимая информация для этого находится в резервной копии). Если база данных уже существует - она будет сначала удалена, а затем создана автоматически.
Если вам необходимо скопировать существующую базу данных для тестирования новых версий или других целей, то используйте для этого команду создания базы данных:
sudo -u postgres createdb -e --encoding="UTF-8" --locale="ru_RU.UTF-8" --owner=userside --template=userside userside_new
В этом случае просто создается новая база данных, в качестве шаблона которой используется существующая база данных. Используйте именно такой способ, если нужно сделать копию базы данных.
Если вы планируете восстановить базу данных из резервной копии таким образом, чтобы у новой базы данных был другой владелец (userside_new_user), то вам нужно будет сделать следующее:
sudo -u postgres createuser userside_new_user -P sudo -u postgres createdb -e -E "UTF-8" -l "ru_RU.UTF-8" -O userside_new_user -T template0 userside_new_db sudo -u postgres psql -d userside_new_db -c "CREATE EXTENSION postgis" sudo -u postgres pg_restore --no-owner --role=userside_new_user --dbname=userside_new_db /backup/userside.dump
Во время выполнения последней команды вы получите сообщения об ошибках перезаписи объектов postgis внутри базы данных (порядка 5 сообщений), так как при восстановлении была явно указана новая роль, которая не может быть применена к системным объектам postigs. Внимательно просмотрите сообщения об ошибках, чтобы они не относились к каким либо другим объектам базы данных.
Рекомендуется ознакомиться с инструкциями на странице: С чего начать?
Частозадаваемые вопросы (FAQ)
Ошибка 404 при проверке URL. Вероятней всего неверно настроен WEB-сервер. root (DocumentRoot) WEB-сервера должен указывать на каталог /var/www/userside/userside3