Инструменты пользователя

Инструменты сайта


ru:install_severcart_on_ubuntu:start

Установка Severcart на Ubuntu 16.04

В инструкции все команды по-умолчанию выполняются от имени пользователя root.

Обновляем систему

apt-get update
apt-get upgrade

Будет произведено обновление пакетного индекса, закачка и установка новых пакетов.

Устанавливаем Postgresql

Настраиваем локаль ru_RU:

locale-gen ru_RU.UTF-8
dpkg-reconfigure locales

Перелогиниваемся под root

export LC_ALL="ru_RU.UTF-8"
apt-get 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;

Для выхода из оболочки psql набираем

\q

Установка python setup tools

Возвращаемся к учётной записи root

su -
apt-get install python3-pip python3-dev build-essential
apt-get build-dep python-psycopg2

Устанавливаем пакет virtualenv

apt-get install python-virtualenv

Создаём виртуальное окружение

virtualenv --distribute -p /usr/bin/python3 /var/venv/

mkdir -p /var/venv/severcart/

Скачиваем и распаковываем пакет severcart

Ссылку на закачку актуальной версии копируем с официального сайта продукта Скачать. Файл архива имеет расширение *.zip.

cd /tmp
wget http://files.severcart.org/un/sc_X.zip

Распаковываем скачанное в каталог /var/venv/severcart/

unzip sc_X.zip -d /var/venv/severcart

В итоге должна получиться следующая структура каталогов: tree_struct.jpg

Установка зависимостей

Устанавливаем специальные пакеты зависимостей для работы модуля для генерации docx отчётов.

apt-get install libxml2 libxslt-dev libxml2-dev libpq-dev
apt-get build-dep python3-lxml libpq-dev python-dev

apt-get build-dep python-imaging
apt-get install libjpeg8 libjpeg62-dev libfreetype6 libfreetype6-dev

Они будут необходимы для компиляции и установки lxml пакета Python. Далее запускаем файл

python3 /var/venv/severcart/tkinstaller/install.py

В ходе установки будет произведена установка зависимостей, миграция схемы базы данных, создание администратора severcart.

migrate.jpg

Установка и настройка Nginx

apt-get 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 /static/ {
        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: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 рекомендуется поменять на более стойкий. Делается это в командной оболочке psql

su - postgres

psql -U postgres

ALTER USER scuser WITH encrypted password 'new_password';
Далее меняем 123456 в файле conf\settings_prod.py на свой в программном коде:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'severcart',
        'USER': 'scuser',
        'PASSWORD': 'new_password',
        'HOST': '127.0.0.1',
        'PORT': '5432',
    }
}

Для редактирования файла подойдёт любой текстовый редактор с поддержкой unicode. Для вступления изменений в силу нужно перезагрузить сервер приложений.

supervisorctl restart severcart