Установка на Ubuntu 20.04
В инструкции все команды по умолчанию выполняются от имени пользователя root.
Обновление ОС
apt -y update
apt -y upgrade
Устанавливаем Postgresql
Настраиваем локаль ru_RU:
apt -y install language-pack-ru
export LC_ALL="ru_RU.UTF-8"
echo export LC_ALL="ru_RU.UTF-8" >> ~/.bashrc
Перелогиниваемся в shell.
apt -y install postgresql unzip
В процессе установки будет создан новый пользователь postgres
.
Переключаемся на пользователя postgres
:
su postgres
Создадим нового пользователя scuser
(владельца базы данных Severcart
PostgreSQL) из командной оболочки psql
:
psql
CREATE USER scuser WITH PASSWORD '123456';
Создаём базу данных severcart
:
CREATE DATABASE severcart WITH ENCODING='UTF8' OWNER=scuser CONNECTION LIMIT=-1 template=template0;
UPDATE pg_database SET datcollate='ru_RU.UTF-8', datctype='ru_RU.UTF-8' WHERE datname='severcart';
Для выхода из оболочки psql
набираем:
\q
Возвращаемся к пользователю root
:
su -
Устанавливаем пакет virtualenv
apt -y install python3-venv
Создаём виртуальное окружение
python3 -m venv /var/venv/
Скачиваем и распаковываем архив Severcart
Скачиваем *.zip
файл для Linux с
официального сайта продукта.
Далее распаковываем архив в каталог /var/venv/severcart
unzip 1_X_X.zip -d /var/venv/severcart
Установка зависимостей
Активируем виртуальное окружение:
source /var/venv/bin/activate
Далее запускаем скрипт обновления:
python3 /var/venv/severcart/tkinstaller/install.py
В ходе установки будет произведена установка зависимостей, миграция схемы базы данных, создание администратора severcart.
Установка и настройка Nginx
apt -y install nginx supervisor
Заменяем содержимое файла /etc/nginx/sites-available/default
следующим:
server {
listen 80;
server_name 0.0.0.0; #либо ip, либо доменное имя
access_log /var/log/nginx/severcart_access.log;
error_log /var/log/nginx/severcart_error.log;
location = /favicon.ico {
alias /var/venv/severcart/media/favicon.ico;
expires 30d;
}
location /static/ {
root /var/venv/severcart/;
expires 30d;
}
location /media/ {
root /var/venv/severcart/;
expires 30d;
}
location / {
proxy_pass http://127.0.0.1:9000;
proxy_set_header Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Активируем автозагрузку nginx
и supervisord
.
systemctl enable supervisor
systemctl enable nginx
chmod 755 -R /var/venv/severcart/
chown nobody:nogroup -R /var/venv/severcart/
Чтобы приложение автоматически запускалось после перезагрузки, необходимо
настроить supervisor
. Для этого создадим конфигурационный файл:
cd /etc/supervisor/conf.d/
touch severcart.conf
В файл записываем:
[program:severcart]
command=/var/venv/bin/gunicorn conf.wsgi_prod:application -c /var/venv/severcart/conf/gunicorn.conf.py
directory=/var/venv/severcart
user=nobody
autorestart=true
redirect_stderr=true
Активируем конфигурацию:
supervisorctl reread
supervisorctl update
supervisorctl status severcart
supervisorctl restart severcart
Перезагружаем сервер Nginx:
service nginx restart
Далее проверяем в браузере открытие страницы. Если увидите приглашение ввести логин и пароль, значит установка успешно завершена.
Внимание!!! После успешно установки программы пароль пользователя PostgreSQL scuser рекомендуется поменять на более стойкий. Инструкция по смене пароля здесь.
Устранение неисправностей
Где хранятся отладочные сообщения приложения для просмотра ошибок?
Лог файл на ОС Линукс хранятся в файле /var/venv/severcart/logs/debug.log
После свежей установки страница логина доступна, но сам вход под пользователем, созданным при установке ПО, происходит не с первого раза и, после любого действия, выкидывает обратно на страницу логина.
Такая ошибка происходит из-за того, что у приложения нет
прав доступа в каталог /var/venv/severcart/
.
Выполните в bash оболочке:
chmod 755 -R /var/venv/severcart/
chown nobody:nogroup -R /var/venv/severcart/
Где nobody
пользователь от имени которого работает supervisord
процесс.
После применения прав доступа перезагрузите программный стек:
supervisorctl restart severcart
service nginx restart
Ещё одна причина блокировки записи данных в каталог /var/venv/severcart/
пользователя nobody
может быть подсистемы безопасности
Linux SELinux/cgroups. Настройте их.
Если установить приложение не получается, то свяжитесь с тех. поддержкой [email protected].