Установка Koha

Материал из rrv-wiki
Перейти к навигации Перейти к поиску

Koha

Koha — автоматизированная библиотечная информационная система и в действительности является первой свободной АБИС. Разработку АБИС Koha начала в 1999 году Katipo Communications для библиотечного союза Хорофенуа, Новая Зеландия. Первая инсталляция состоялась в январе 2000 года.

Установка на Debian

Официальная инструкция.

Так же хорошо бы почитать Koha on ubuntu.

Подготовка

   apt update && apt upgrade && apt install screen vim mc sudo wget gnupg2 && apt autoremove && apt clean
   shutdown -r now
   apt-get install --reinstall ca-certificate # Бывают проблемы с сертификатами

Добавляем репозиторий Koha

   wget -qO - https://debian.koha-community.org/koha/gpg.asc | gpg --dearmor -o /usr/share/keyrings/koha-keyring.gpg
   echo 'deb [signed-by=/usr/share/keyrings/koha-keyring.gpg] https://debian.koha-community.org/koha 24.05 main' | tee /etc/apt/sources.list.d/koha.list  
   apt update

Ставим

   apt install koha-common
   apt install mariadb-server

Редактирование файла /etc/koha/koha-sites.conf

Тут нужно почитать Как настроить доменное имя для Koha

В общем тут идея в том, что если твой домен для koha должен быть вида mykoha.mydomen.ru то строку:

   DOMAIN=".myDNSname.org"  
 

меняем на:

   DOMAIN=".mydomen.ru"  
 

Остальное можно оставить без изменения, часть домена mykoha (из примера выше), будет задаваться при создании экземпляра Koha ( koha-create --create-db mykoha), об этом будет ниже.

Еще интересный факт, koha создает отдельный домен который может быть и на другом порту (не 80) для административных целей (для персонала):

   INTRAPORT="8080"
   INTRAPREFIX=""
   INTRASUFFIX="-admin"

В целом koha позволяет делать различные варианты, где будет находится админка для персонала (для административных целей), это может быть другой порт, поддомен и их комбинация. В официальной документации об этом есть информация.

Например, при такой настройке создастся домен (если смотреть пример выше) mykoha-admin.mydomen.ru:8080 Для административных целей. (хотя это не обязательно, можно играться с портом, префиксами и суффиксами)

Блок:

   OPACPORT="80"
   OPACPREFIX=""
   OPACSUFFIX=""

Относится к пользовательской части koha, ее менять не требуется.

Настройка Apache

   a2enmod rewrite 
   a2enmod cgi 
   systemctl restart apache2

a2enmod - это сокращение от "Apache2 enable module", это утилита управления модулями Apache, предоставляемая дистрибутивом Linux, на котором установлен Apache. Эта утилита позволяет включить или отключить модули Apache, не перекомпилируя его из исходного кода.

В командах выше подключаются модули rewrite и cgi и перезапускается apache.

Если вы настраиваете Koha для доступа по IP-адресу, а не по имени домена, не забудьте отредактировать /etc/apache2/ports.conf и убедиться, что присутствуют следующие строки:

   Listen 80 
   Listen <номер порта интерфейса персонала>

Вторая запись Listen вам понадобится только в том случае, если вы решили сделать интерфейс для персонала доступным через другой порт.

Настройка безопасности базы данных

   mysql_secure_installation

Создать экземпляр Koha

Внимание! меняем mykoha на реальное название экземпляра библиотеки

   sudo koha-create --create-db mykoha  
 

Здесь mykoha - это название библиотеки указанное в примере выше, в итоге должно получится два сайта:

   mykoha.mydomen.ru
   mykoha-admin.mydomen.ru:8080

Первый для пользователей, второй для персонала (администраторов)

Дополнительно читаем тут и тут

Установка plack

Plack — это интерфейс между веб-приложениями Perl и веб-серверами.

Внимание! меняем mykoha на реальное название экземпляра библиотеки

   a2enmod headers proxy_http
   koha-plack --enable mykoha
   koha-plack --start mykoha
   systemctl restart apache2

Настройка через web

Для дальнейшей настройки нам потребуется зайти на сайт администрирования (персонала):

   mykoha-admin.mydomen.ru:8080  
 

Это все зависит от настроек в файле /etc/koha/koha-sites.conf (см. выше)

Логин и пароль для доступа можно получить следующим образом:

   koha-passwd имя_библиотеки
 

Если домен mykoha-admin.mydomen.ru не существующий, то можно прописать его в /etc/hosts (linux) или c:\Windows\system32\drivers\etc\hosts

Настраиваем поддержку русского языка для нормального поиска в Koha

Список поддерживаемых языков:

   koha-translate --list --available 

Установка требуемого языка:

   koha-translate --install ru-RU


Читаем тут Но тут есть неточности!.

   apt-get install yaz-icu

Теперь через web интерфейс персонала перейдите в раздел:

   Дополнительно > Администрирование > Глобальные системные настройки > Поиск .
  • Измените системную настройку UseICUStyleQuotes на Using .
  • Измените системную настройку QueryFuzzy на «Не пытаться» .
  • Измените системную настройку QueryStemming на «Не пытаться» .

Изменим файл /etc/koha/zebradb/etc/default.idx Вот его кусок:

   # Traditional word index
   # Used if completenss is 'incomplete field' (@attr 6=1) and
   # structure is word/phrase/word-list/free-form-text/document-text
   index w
   completeness 0
   position 1
   alwaysmatches 1
   firstinfield 1
   icuchain words-icu.xml
   charmap word-phrase-utf.chr
   
   # Phrase index
   # Used if completeness is 'complete {sub}field' (@attr 6=2, @attr 6=1)
   # and structure is word/phrase/word-list/free-form-text/document-text
   index p
   completeness 1
   firstinfield 1
   icuchain phrases-icu.xml
   charmap word-phrase-utf.chr

Жирным выделено, что требуется добавить.

Затем копируем файлы:

   cd /etc/koha/zebradb/etc/
   cp words-icu.xml words-icu.xml.orig
   cp phrases-icu.xml phrases-icu.xml.orig

Теперь содержимое /etc/koha/zebradb/etc/words-icu.xml заменим на:

   <icu_chain locale="ru">
       <transform rule="[^а-яА-ЯёЁ] NFD"/> <tokenize rule="l"/>
       <transform rule="[[:WhiteSpace:][:Punctuation:]] Remove"/>
       <transform rule="NFD"/>
       <transform rule="[:Nonspacing Mark:] Remove"/>
       <transform rule="NFC"/>
       <display/>
       <casemap rule="l"/>
   </icu_chain>

а содержимое /etc/koha/zebradb/etc/phrases-icu.xml заменим на:

   <icu_chain locale="ru">
       <transform rule="[^а-яА-ЯёЁ\s\p{P}] NFD"/>
       <tokenize rule="w"/>
       <transform rule="[:Nonspacing Mark:] Remove"/>
       <transform rule="NFC"/>
       <transform rule="[в|на|с|для|и|но|а|что|как|это|так|же|то|не|он|она|они|мы|ты] Remove"/>
       <casemap rule="l"/>
       <display/>
   </icu_chain>

Выполняем

   koha-zebra --restart mykoha
   koha-rebuild-zebra -f mykoha