Установка Severcart в соседстве с GLPI

Ввводная часть. Нужно отредактировать. Иногда необходимо установить Severcart на тотже сервер где уже установлен GLPI, Joomla, PhpMyAdmin, и др. Появляется необходимость подключить программу Severcart к уже имеющейся конфигурации Apache, где уже работает GLPI, Joomla, PHPMyAdmin и др. Далее предложена инструкция одной из возможных решений данной задачи. Разнесения

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

export LC_ALL="ru_RU.UTF-8"

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';

CREATE DATABASE severcart WITH ENCODING='UTF8' OWNER=scuser CONNECTION LIMIT=-1 template=template0;

Выходим из оболочки 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 python36

python3.6 -m venv /var/venv/

mkdir -p /var/venv/severcart/

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

cd /tmp
wget -O 1_X_X.zip https://www.severcart.ru/redirect_un/?pk=12


unzip 1_X_X.zip -d /var/venv/severcart


Установка python пакетов

source /var/venv/bin/activate

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

Далее настроим префикс программы Severcart для Apache в конфигурационном файле /var/venv/severcart/conf/settings.py меняем строку

URL_PREFIX = ''

на

URL_PREFIX = 'severcart'

Установка web сервиса

Далее установим серверный процесс обрабатывающий динамические запросы

yum install supervisor -y

systemctl start supervisord

systemctl enable supervisord

Назначаем нужные права доступа к файлам

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

Настройка Apache

Для работы нам понадобится proxy_module Apache для прередачи запросов процессу генерации динамических страниц. Далее предполагается, что программа Apache уже установлена.

yum install httpd -y

systemctl enable httpd 

systemctl start httpd

В CentOS 7 все эти модули включены по умолчанию. Чтобы убедиться в этом, можете ввести:

httpd -M

Чтобы настроить mod_proxy, нужно создать новый конфигурационный файл. Создайте файл django.conf в каталоге /etc/httpd/conf.d и откройте его:

vi /etc/httpd/conf.d/django.conf

Для начала нужно настроить статические файлы. После этого Apache будет направлять все запросы, начинающиеся с /static, в каталог static в каталоге проекта.

<VirtualHost 0.0.0.0:80>
    ServerName  severcart.local
    ServerAlias *severcart.local

    CustomLog   /var/log/httpd/access_log combined
    ErrorLog    /var/log/httpd/error_log


    ProxyPass /static !
    ProxyPass /media !

    Alias /static /var/venv/severcart/static
    <Directory /var/venv/severcart/static>
        Require all granted
    </Directory>


    Alias /media /var/venv/severcart/media
    <Directory /var/venv/severcart/media>
        Require all granted
    </Directory>


    ProxyPreserveHost On
    ProxyPass / http://127.0.0.1:9000/
    ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>

Домен severcart.local поменяйте на свой.

Запустим службу Apache

systemctl restart httpd

Далее проверяем в браузере открытие страницы. Если увидите приглашение ввести логин и пароль, значит установка успешно завершена. Проверка на наличие ошибок в конфигурации Apache

apachectl configtest