Установка на CentOS 8 Stream
Устанавливаем PostgreSQL
export LC_ALL="ru_RU.UTF-8"
echo export LC_ALL="ru_RU.UTF-8" >> ~/.bashrc
yum install -y postgresql-server
Инициализируем базу данных и добавляем её в автозагрузку
service postgresql initdb
systemctl enable postgresql.service
systemctl start postgresql.service
Создаём базу данных и её владельца
su postgres
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 -
Разрешаем доступ пользователю scuser подключаться к postgres.
Для этого в файле
/var/lib/pgsql/data/pg_hba.conf
меняем строку
host all all 127.0.0.1/32 ident
на
host all all 127.0.0.1/32 md5
Закрепляем изменения в конфигурации
systemctl restart postgresql.service
Устанавливаем Python
yum install epel-release
yum install -y python38
python3.8 -m venv /var/venv/
mkdir -p /var/venv/severcart/
Скачиваем и распаковываем пакет Severcart
Скачиваем самый свежий файл *.zip
архива с
официального сайта продукта.
Далее распаковываем архив в каталог /var/venv/severcart
unzip 1_X_X.zip -d /var/venv/severcart
Установка python пакетов
source /var/venv/bin/activate
python3 /var/venv/severcart/tkinstaller/install.py
Установка web-сервисов
yum install nginx supervisor -y
systemctl enable nginx
systemctl disable httpd
systemctl enable supervisord
systemctl stop httpd
systemctl start nginx
Переопределим секцию server в файле /etc/nginx/nginx.conf
содержимым
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
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/app/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;
}
}
}
Назначаем нужные права доступа к файлам
chmod 755 -R /var/venv/severcart/
chown nobody:nobody -R /var/venv/severcart/
cd /etc/supervisord.d
touch severcart.ini
[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
service supervisord start
supervisorctl reread
supervisorctl update
supervisorctl status severcart
supervisorctl restart severcart
systemctl restart nginx
Открываем 80 и 443 TCP порт в firewall
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload
Далее проверяем в браузере открытие страницы. Если увидите приглашение ввести логин и пароль, значит установка успешно завершена.
Внимание!!! После успешно установки программы пароль пользователя PostgreSQL scuser рекомендуется поменять на более стойкий. Инструкция по смене пароля здесь.
Устранение неисправностей
Где хранятся отладочные сообщения приложения для просмотра ошибок?
Лог файл на ОС Линукс хранятся в файле /var/venv/severcart/logs/debug.log
После свежей установки страница логина доступна, но сам вход под пользователем, созданным при установке ПО, происходит не с первого раза и, после любого действия, выкидывает обратно на страницу логина.
Такая ошибка происходит из-за того, что у приложения нет
прав доступа в каталог /var/venv/severcart/
.
Выполните в bash оболочке:
chmod 755 -R /var/venv/severcart/
chown nobody:nobody -R /var/venv/severcart/
Где nobody
пользователь от имени которого работает supervisord
процесс.
После применения прав доступа перезагрузите программный стек:
supervisorctl restart severcart
service nginx restart
Ещё одна причина блокировки записи данных в каталог /var/venv/severcart/
пользователя nobody
может быть подсистемы безопасности
Linux SELinux/cgroups. Настройте их.
Если установить приложение не получается, то свяжитесь с тех. поддержкой [email protected].