Загружаем
#git clone https://github.com/mitshel/sopds.git
Установка SOPDS
#apt install python3-django python3-pillow python3-apscheduler python3-django-picklefield python3-lxml python3-python-telegram-bot git
Для работы с БД Mysql в разных системах может потребоваться установка дополнительных пакетов:
#sudo apt-get install python3-mysqldb
Далее необходимо сначала в БД MySQL создать базу данных "sopds" и пользователя с необходимыми правами, например следующим образом:
#mysql -uroot -p mysql
mysql > create database if not exists sopds default charset=utf8;
mysql > CREATE USER 'sopds'@'localhost' identified by 'sopds';
mysql > GRANT ALL PRIVILEGES ON *.* TO 'sopds'@'localhost';
mysql > FLUSH PRIVILEGES;
mysql > quit;
Далее в конфигурационном файде нужно закомментировать строки подключения к БД sqlite и соответсвенно раскомментировать строки подключения к БД Mysql:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'sopds',
'HOST': 'localhost',
'USER': 'sopds',
'PASSWORD' : 'sopds',
'OPTIONS' : {
'init_command': "SET default_storage_engine=MyISAM;\
SET sql_mode='';"
}
}
}
# DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
#}
Производим инициализацию базы данных и заполнение начальными данными (жанры)
#python3 manage.py migrate
#python3 manage.py sopds_util clear
Cоздаем суперпользователя
#python3 manage.py createsuperuser
Настраиваем путь к Вашему каталогу с книгами и при необходимости переключаем язык интерфейса на русский
#python3 manage.py sopds_util setconf SOPDS_ROOT_LIB '/home/lib'
#python3 manage.py sopds_util setconf SOPDS_LANGUAGE ru-RU
Запускаем SCANNER сервер.
#python3 manage.py sopds_scanner scan --verbose
Подключаем модуль Apache2
#apt-get install libapache2-mod-wsgi-py3
/etc/apache2/site-available/sopds.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName opds.site.com
ErrorLog /var/log/apache2/sopds_error.log
WSGIScriptAlias / /opt/sopds/sopds/wsgi.py
WSGIDaemonProcess sopds processes=2 threads=15 python-path=/opt/sopds
WSGIProcessGroup sopds
WSGIScriptReloading On
WSGIPassAuthorization On
<Directory "/opt/sopds/sopds/">
Require all granted
</Directory>
<Directory "/opt/sopds/static/">
Require all granted
</Directory>
Alias /static "/opt/sopds/static"
</VirtualHost>
Проверяем:
http://opds.site.com