Установка Severcart в сочетании с Apache
Иногда необходимо установить Severcart на тот же сервер где уже установлен GLPI, Joomla, PhpMyAdmin, и др. Появляется необходимость подключить программу Severcart к уже имеющейся конфигурации Apache.
Далее предложена инструкция одной из возможных решений данной задачи для
Centos Linux. Доступ к приложению осуществляется через
путь http://example.com/severcart/
.
Устанавливаем PostgreSQL
export LC_ALL="ru_RU.UTF-8"
export LC_ALL="ru_RU.UTF-8" >> ~/.bashrc
yum install -y postgresql-server unzip
Инициализируем базу данных и добавляем её в автозагрузку:
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 -y epel-release
yum install -y python36
python3.6 -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
Далее настроим префикс программы 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
Чтобы настроить proxy_module, нужно создать новый конфигурационный файл. Создайте файл django.conf в каталоге /etc/httpd/conf.d и откройте его:
vi /etc/httpd/conf.d/django.conf
Для начала нужно настроить статические файлы. После этого Apache будет
направлять все запросы, начинающиеся с /severcart/static
, в каталог static в
каталоге проекта.
<VirtualHost 0.0.0.0:80>
ServerName severcart.local
CustomLog /var/log/httpd/access_log combined
ErrorLog /var/log/httpd/error_log
ProxyPass /severcart/static !
ProxyPass /severcart/media !
Alias /severcart/static /var/venv/severcart/static
<Directory /var/venv/severcart/static>
Require all granted
</Directory>
Alias /severcart/media /var/venv/severcart/media
<Directory /var/venv/severcart/media>
Require all granted
</Directory>
ProxyPreserveHost On
ProxyPass "/severcart" "http://127.0.0.1:9000/severcart"
ProxyPassReverse "/severcart" "http://127.0.0.1:9000/severcart"
</VirtualHost>
Домен severcart.local
поменяйте на свой.
Запустим службу Apache:
systemctl restart httpd
Далее проверяем в браузере открытие страницы. Если увидите приглашение ввести логин и пароль, значит установка успешно завершена. Проверка на наличие ошибок в конфигурации Apache:
apachectl configtest