Обговорення:Встановлення Koha з репозитарію на ОС Debian: відмінності між версіями
Dubyk (обговорення | внесок) |
Dubyk (обговорення | внесок) Немає опису редагування |
||
| Рядок 1: | Рядок 1: | ||
= Встановлення АБІС Koha з репозитарію на ОС Debian = |
|||
Розглядається встановлення АБІС Koha версій '''24.11–26.05''' '''з репозитарію''' [http://debian.koha-community.org/ debian.koha-community.org] на ОС '''Debian 13 (trixie)''' — поточному стабільному релізі Debian. |
|||
На даний час це найбільш протестований і розповсюджений варіант. |
|||
Окрім цього ще є варіант [[Встановлення Koha з джерела на ОС Debian|встановлення АБІС Koha з джерельних кодів]], що є дещо більш гнучким щодо налаштування, але і складнішим. |
|||
'''Стан документа''' (редакція липень 2026 р.): перехід на Debian 13 (trixie) як основну ОС; актуалізовано таблицю версій Koha; пошуковим рушієм за замовчуванням у цій інструкції обрано '''Elasticsearch''' (з плагінами ICU та українського аналізатора) замість Zebra; варіант із патчем кирилиці для Zebra залишено нижче як legacy-альтернатива для тих, хто ще не перейшов. Номери версій Koha та Debian зсуваються що 6–24 місяці — перед встановленням звіряйте таблицю нижче з посиланнями на Koha Wiki. |
|||
= Встановлення та початкове налаштування Koha 26.05 на Debian GNU/Linux 13 (Trixie) = |
|||
Див. також |
|||
__TOC__ |
|||
* [https://wiki.koha-community.org/wiki/Koha_on_Debian Koha_on_Debian] на Koha Wiki |
|||
* [https://wiki.koha-community.org/wiki/Debian Koha & Debian] на Koha Wiki |
|||
* [https://wiki.koha-community.org/wiki/Category:Installation Category:Installation] на Koha Wiki |
|||
* [https://wiki.koha-community.org/wiki/Koha_on_ubuntu_-_packages Koha on ubuntu - packages] на Koha Wiki |
|||
= Встановлення ОС Debian GNU/Linux 13 (trixie) = |
|||
== Вступ == |
|||
Див. також: |
|||
* https://www.debian.org/releases/trixie/ — сторінка релізу Debian 13 trixie |
|||
* https://d-i.debian.org/manual/uk.amd64/index.html Debian GNU/Linux гайд інсталяції |
|||
Перевірка поточної версії Debian: |
|||
lsb_release -d |
|||
Щодо сумісності Коха з іншими версіями ОС див. |
|||
* [https://wiki.koha-community.org/wiki/System_requirements_and_recommendations Системні вимоги та рекомендації] (англ.) |
|||
'''Примітка щодо Debian 12 (bookworm).''' Станом на липень 2026 р. bookworm має статус oldstable: Koha на ньому й далі працює і підтримується пакунками debian.koha-community.org, але нові інсталяції варто розгортати вже на trixie. Якщо йдеться не про нову інсталяцію, а про оновлення наявного сервера з bookworm на trixie — дотримуйтесь офіційного порядку: спершу довести bookworm до останніх оновлень, і лише тоді переходити на trixie (а не встановлювати систему „з нуля“). |
|||
У статті описано встановлення автоматизованої бібліотечної інформаційної системи '''Koha 26.05''' з офіційного репозиторію на '''Debian GNU/Linux 13 (Trixie)'''. |
|||
== Підключення гілок non-free та contrib для пакунків Дебіан == |
|||
Після виконання всіх кроків буде встановлено та налаштовано: |
|||
Перевіряємо у /etc/apt/sources.list чи підключені гілки non-free та contrib |
|||
sudo mc -e /etc/apt/sources.list |
|||
* Koha 26.05; |
|||
deb http://deb.debian.org/debian/ trixie contrib main non-free non-free-firmware |
|||
* MariaDB; |
|||
deb-src http://deb.debian.org/debian/ trixie contrib main non-free non-free-firmware |
|||
* Apache; |
|||
* Elasticsearch; |
|||
* Plack; |
|||
* електронний каталог; |
|||
* інтерфейс бібліотекаря; |
|||
* HTTPS; |
|||
* SMTP; |
|||
* резервне копіювання. |
|||
Інструкція розрахована на чисту інсталяцію Debian 13. |
|||
Усі команди виконуються від користувача '''root'''. |
|||
== Мінімальні вимоги == |
|||
Для невеликих бібліотек рекомендується: |
|||
{| class="wikitable" |
|||
! Компонент |
|||
! Мінімально |
|||
! Рекомендовано |
|||
|- |
|||
| Процесор |
|||
| 2 ядра |
|||
| 4 ядра і більше |
|||
|- |
|||
| Оперативна пам'ять |
|||
| 4 ГБ |
|||
| 8 ГБ і більше |
|||
|- |
|||
| Системний диск |
|||
| 40 ГБ SSD |
|||
| 100 ГБ SSD і більше |
|||
|- |
|||
| База даних |
|||
| MariaDB |
|||
| MariaDB |
|||
|- |
|||
| Пошуковий рушій |
|||
| Elasticsearch |
|||
| Elasticsearch |
|||
|} |
|||
Для середніх і великих бібліотек обсяг оперативної пам'яті та дискового простору слід збільшити відповідно до кількості бібліографічних записів, примірників та користувачів. |
|||
== Підготовка системи == |
|||
Оновити список пакетів та встановити всі доступні оновлення. |
|||
apt update |
|||
apt full-upgrade -y |
|||
reboot |
|||
=== Перевірка === |
|||
Перевірити версію Debian. |
|||
cat /etc/debian_version |
|||
Повинна відображатися версія 13.x. |
|||
== Часовий пояс == |
|||
Перевірити поточний часовий пояс. |
|||
timedatectl |
|||
Для України рекомендується: |
|||
timedatectl set-timezone Europe/Kyiv |
|||
=== Перевірка === |
|||
timedatectl |
|||
У полі '''Time zone''' повинно бути |
|||
Europe/Kyiv |
|||
== Локалі == |
|||
Перевірити поточні локалі. |
|||
locale |
|||
Якщо локалі ще не створені, виконати |
|||
dpkg-reconfigure locales |
|||
Рекомендується увімкнути |
|||
en_US.UTF-8 UTF-8 |
|||
uk_UA.UTF-8 UTF-8 |
|||
Локаль за замовчуванням |
|||
en_US.UTF-8 |
|||
=== Перевірка === |
|||
locale |
|||
== Ім'я сервера == |
|||
Перевірити поточне ім'я сервера. |
|||
hostnamectl |
|||
При необхідності змінити його. |
|||
hostnamectl set-hostname koha |
|||
Якщо використовується доменне ім'я, рекомендується одразу встановити повне ім'я сервера, наприклад |
|||
koha.example.org |
|||
=== Перевірка === |
|||
hostname -f |
|||
== Файл hosts == |
|||
Відкрити файл |
|||
mc -e /etc/hosts |
|||
Приклад |
|||
127.0.0.1 localhost |
|||
127.0.1.1 koha.example.org koha |
|||
deb http://deb.debian.org/debian/ trixie-updates contrib main non-free non-free-firmware |
|||
::1 localhost ip6-localhost ip6-loopback |
|||
deb-src http://deb.debian.org/debian/ trixie-updates contrib main non-free non-free-firmware |
|||
=== Перевірка === |
|||
deb http://deb.debian.org/debian/ trixie-proposed-updates contrib main non-free non-free-firmware |
|||
deb-src http://deb.debian.org/debian/ trixie-proposed-updates contrib main non-free non-free-firmware |
|||
hostname -f |
|||
ping -c4 localhost |
|||
deb http://deb.debian.org/debian/ trixie-backports contrib main non-free non-free-firmware |
|||
deb-src http://deb.debian.org/debian/ trixie-backports contrib main non-free non-free-firmware |
|||
== Синхронізація часу == |
|||
Перевірити стан служби синхронізації часу. |
|||
systemctl status systemd-timesyncd |
|||
Якщо служба не запущена |
|||
systemctl enable systemd-timesyncd |
|||
systemctl restart systemd-timesyncd |
|||
=== Перевірка === |
|||
timedatectl |
|||
У полі |
|||
System clock synchronized |
|||
повинно бути |
|||
yes |
|||
== Встановлення додаткових пакетів == |
|||
Встановити пакети, які знадобляться під час налаштування сервера. |
|||
apt install -y \ |
|||
apt-transport-https \ |
|||
ca-certificates \ |
|||
curl \ |
|||
wget \ |
|||
gnupg \ |
|||
lsb-release \ |
|||
software-properties-common \ |
|||
mc \ |
|||
htop \ |
|||
iotop \ |
|||
iftop \ |
|||
tree \ |
|||
zip \ |
|||
unzip \ |
|||
rsync \ |
|||
cron \ |
|||
certbot |
|||
=== Перевірка === |
|||
mc |
|||
htop |
|||
Програми повинні запускатися без помилок. |
|||
== Налаштування репозиторію Koha == |
|||
Встановити пакети, необхідні для роботи з HTTPS-репозиторіями. |
|||
apt update |
|||
deb http://deb.debian.org/debian-security/ trixie-security contrib main non-free non-free-firmware |
|||
apt install -y \ |
|||
deb-src http://deb.debian.org/debian-security/ trixie-security contrib main non-free non-free-firmware |
|||
ca-certificates \ |
|||
curl \ |
|||
sudo apt-get update |
|||
gnupg |
|||
sudo apt-get upgrade |
|||
= Попередні налаштування = |
|||
Імпортувати ключ репозиторію Koha. |
|||
== Локаль з UTF-8 == |
|||
Перевірка локалі: |
|||
sudo locale |
|||
у виводі повинно бути магічне „'''UTF-8'''“ (en.UTF-8 тощо), наприклад для України |
|||
LANG=uk_UA.UTF-8 |
|||
LANGUAGE= |
|||
LC_CTYPE="uk_UA.UTF-8" |
|||
LC_NUMERIC="uk_UA.UTF-8" |
|||
LC_TIME="uk_UA.UTF-8" |
|||
LC_COLLATE="uk_UA.UTF-8" |
|||
LC_MONETARY="uk_UA.UTF-8" |
|||
LC_MESSAGES="uk_UA.UTF-8" |
|||
LC_PAPER="uk_UA.UTF-8" |
|||
LC_NAME="uk_UA.UTF-8" |
|||
LC_ADDRESS="uk_UA.UTF-8" |
|||
LC_TELEPHONE="uk_UA.UTF-8" |
|||
LC_MEASUREMENT="uk_UA.UTF-8" |
|||
LC_IDENTIFICATION="uk_UA.UTF-8" |
|||
Якщо '''UTF-8''' не згадується, то встановлюємо локаль |
|||
apt install locales locales-all |
|||
sudo /usr/sbin/update-locale LANG=uk_UA.UTF-8 LANGUAGE="uk_UA:uk" |
|||
== Підключення репозитарію Koha == |
|||
wget -qO- https://debian.koha-community.org/koha/gpg.asc \ |
|||
В репозитарії [http://debian.koha-community.org/ debian.koha-community.org] доступні стабільні версії, які виходять 2 рази на рік (травень і листопад) і підтримуються 18–42 місяці залежно від того, LTS це реліз чи ні (https://wiki.koha-community.org/wiki/Koha_Versioning). |
|||
| gpg --dearmor \ |
|||
Налаштування ключів: |
|||
-o /usr/share/keyrings/koha-keyring.gpg |
|||
sudo apt update |
|||
sudo apt install apt-transport-https ca-certificates curl gnupg2 |
|||
sudo mkdir -p --mode=0755 /etc/apt/keyrings |
|||
sudo curl -fsSL https://debian.koha-community.org/koha/gpg.asc -o /etc/apt/keyrings/koha.asc |
|||
Якщо ви дотримуєтесь певного номера версії Koha, ви залишаєтесь на цій версії Koha, доки не буде змінено вихідні коди пакунків. |
|||
Це рекомендується для виробничих середовищ, щоб "випадково" не оновитися до нового великого випуску. |
|||
Коли ви запускаєте оновлення, ви оновлюєтесь лише до останнього випуску технічного обслуговування для обраної версії. |
|||
Поточні номери версій Koha та їхні статус (станом на липень 2026 р.; точні номери зсуваються щопівроку — звіряйте на [https://wiki.koha-community.org/wiki/Koha_on_Debian Koha_on_Debian]): |
|||
Створити файл репозиторію. |
|||
* '''26.05 (stable)''' — поточний стабільний реліз |
|||
* '''25.11 (oldstable)''' — на один реліз позаду поточного стабільного |
|||
* '''25.05 (oldoldstable)''' — на два релізи позаду поточного стабільного |
|||
* '''24.11 (LTS)''' — довготривала підтримка (Long Term Support), орієнтовно до травня 2028 р. |
|||
* 22.11 — попередня LTS-версія; підтримка добігає кінця, для нових інсталяцій вже не використовується |
|||
Щоб оновити список джерел пакетів для використання релізу 26.05: |
|||
mc -e /etc/apt/sources.list.d/koha.list |
|||
sudo tee /etc/apt/sources.list.d/koha.sources <<EOF |
|||
Types: deb |
|||
URIs: https://debian.koha-community.org/koha/ |
|||
Suites: 26.05 |
|||
Components: main |
|||
Signed-By: /etc/apt/keyrings/koha.asc |
|||
EOF |
|||
Щоб оновити список джерел пакетів для використання LTS-релізу 24.11: |
|||
sudo tee /etc/apt/sources.list.d/koha.sources <<EOF |
|||
Types: deb |
|||
URIs: https://debian.koha-community.org/koha/ |
|||
Suites: 24.11 |
|||
Components: main |
|||
Signed-By: /etc/apt/keyrings/koha.asc |
|||
EOF |
|||
Замість номера версії можна вказати символьну назву (stable, oldstable, oldoldstable) — Suites стане, напр., stable. Для продакшн-середовища це '''не рекомендовано''': при переході репозитарію на новий stable ви автоматично й без попереднього тестування отримаєте великий реліз з новими можливостями. |
|||
Примітка: якщо ви раніше використовували старий формат списку джерел APT, видаліть файл /etc/apt/sources.list.d/koha.list — одночасна наявність старого й нового форматів джерела для того самого репозитарію спричиняє конфлікти APT. |
|||
Вміст файлу |
|||
Оновлюємо список доступних для встановлення пакунків |
|||
sudo apt update |
|||
= Встановлення Koha = |
|||
deb [signed-by=/usr/share/keyrings/koha-keyring.gpg] \ |
|||
== Встановлення пакунків Koha == |
|||
https://debian.koha-community.org/koha stable main |
|||
sudo apt-get install koha-common koha-deps koha-perldeps koha-l10n koha-elasticsearch |
|||
Якщо під час встановлення виникають помилки конфігурації пакунка libapache2-mpm-itk, читаємо стандартну інструкцію про налаштування |
|||
less /usr/share/doc/koha-common/README.Debian |
|||
(у нових версіях можуть бути зміни; давніші застереження щодо mpm-itk з часів Ubuntu та старих випусків Debian на trixie здебільшого вже не актуальні, але README варто переглянути за потреби). |
|||
== Встановлення БД MariaDB та допоміжних пакунків == |
|||
Оновити список пакетів. |
|||
На Debian 13 (trixie) типова СУБД для Koha — MariaDB (у репозитарії trixie немає пакунка mysql-server: Oracle не постачає його для Debian, тож MariaDB — фактично єдина реалістична опція). |
|||
sudo apt-get install mariadb-server |
|||
sudo mysql_secure_installation |
|||
За винятком першого питання, на всі питання можна відповісти Так (“'''Y'''”). Необхідно встановити root пароль (надалі „ПарольАдмінаMySQL“)! |
|||
sudo apt-get install memcached libmemcached-tools |
|||
sudo apt install aptitude |
|||
sudo apt install php-twig |
|||
sudo apt install phpmyadmin php libapache2-mod-php |
|||
* для „phpmyadmin“ вибрати (пробілом позначити зірочкою) лише „apache2“ |
|||
* configure database for phpmyadmin with dbconfig-common? — так та встановити пароль застосунку |
|||
Типово phpmyadmin доступний за адресою http://localhost/phpmyadmin |
|||
Якщо потрібен доступ до phpmyadmin на іншому порті, то у файлі /etc/phpmyadmin/phpmyadmin.service змінити |
|||
apt update |
|||
... |
|||
<port>8888</port> |
|||
... |
|||
та додати цей порт у файл /etc/apache2/ports.conf |
|||
Listen 8888 |
|||
Перезапуск Apache |
|||
sudo systemctl restart apache2 |
|||
По умовчанню вхід через phpmyadmin для root закрито. |
|||
За потреби можна створити іншого користувача |
|||
mysql -u root -p |
|||
CREATE USER 'sysadmin'@'localhost' IDENTIFIED BY 'парольдляsysadmin'; |
|||
та надати йому привілеї на усі БД: |
|||
GRANT ALL PRIVILEGES ON *.* TO 'sysadmin'@'localhost' WITH GRANT OPTION; |
|||
exit |
|||
sudo systemctl restart mariadb |
|||
== Пакунки з CPAN (лише за потреби) == |
|||
=== Перевірка === |
|||
'''Пріоритет — пакунки Debian та Koha''' (koha-deps, koha-perldeps): спільнота Koha прямо не рекомендує ставити perl-модулі напряму з CPAN на системах на базі Debian — тоді оновлення безпеки цих модулів лягає на вас особисто, а не на пакунковий менеджер дистрибутива. CPAN варто використовувати лише як крайній засіб, коли конкретного модуля немає ні в Debian, ні в репозитарії debian.koha-community.org. |
|||
Перелік відсутніх модулів дивимось на сторінці „Домівка > Про АБІС Koha > Модулі Perl“ вже після встановлення koha-common — залежності змінюються від версії до версії, тож наведений нижче перелік (актуальний станом на кінець 2023 р.) варто сприймати як приклад типових „проблемних“ пакунків, а не остаточний список: |
|||
apt policy koha-common |
|||
* '''HTTPD::Bench::ApacheBench''' — перевірка в Debian: [https://packages.debian.org/search?keywords=libhttpd-bench-apachebench-perl&searchon=names&suite=all§ion=all] |
|||
* '''Text::CSV::Unicode''' — перевірка в Debian: [https://packages.debian.org/search?keywords=libtext_csv_unicode-perl&searchon=names&suite=all§ion=all] |
|||
* '''Selenium::Remote::Driver''' — перевірка в Debian: [https://packages.debian.org/search?keywords=libselenium_remote_driver-perl&searchon=names&suite=all§ion=all] |
|||
* '''Locale::XGettext::TT2''' |
|||
* '''Test::PerlTidy''' |
|||
Якщо модуля дійсно немає в жодному репозитарії, встановлюємо командами (при першому використанні CPAN підтверджуємо автоматичне налаштування та підключення до Інтернету): |
|||
У списку джерел пакетів повинен бути репозиторій |
|||
sudo apt-get install make libgdbm-dev apache2-dev libdatetimex-easy-perl |
|||
sudo perl -MCPAN -e 'install HTTPD::Bench::ApacheBench' |
|||
sudo perl -MCPAN -e 'install Test::Differences' |
|||
sudo perl -MCPAN -e 'install Text::CSV::Unicode' |
|||
sudo perl -MCPAN -e 'install Selenium::Remote::Driver' |
|||
sudo perl -MCPAN -e 'install Locale::XGettext::TT2' |
|||
sudo perl -MCPAN -e 'install Test::PerlTidy' |
|||
== Налаштування Apache та сценарій „koha-post-install-setup“ == |
|||
https://debian.koha-community.org/koha |
|||
1) Виконуємо сценарій |
|||
sudo koha-post-install-setup |
|||
(він задіює модулі Rewrite та Suexec для Apache) |
|||
2) Додатково задіюємо модулі Deflate, Cgi, headers, proxy_http |
|||
sudo a2enmod deflate |
|||
sudo a2enmod rewrite |
|||
sudo a2enmod cgi |
|||
sudo a2enmod headers proxy_http |
|||
3) Редагуємо /etc/apache2/conf-available/charset.conf |
|||
AddCharset UTF-8 .utf8 |
|||
AddDefaultCharset UTF-8 |
|||
та задіюємо його |
|||
sudo a2enconf charset |
|||
4) Перезапуск Apache |
|||
sudo systemctl restart apache2 |
|||
== Створення екземпляра АБІС Koha == |
|||
== Встановлення Koha == |
|||
=== Варіанти налаштування АБІС Koha з доменами та портами === |
|||
==== Варіант з портами 8080 та 8888 (тестовий) ==== |
|||
Цей варіант зручно використовувати на початковому етапі, коли домен (порт 80) зайнято під інший сайт/сервіс. |
|||
===== koha-ukr-unimarc-site.conf ===== |
|||
Створюємо файл |
|||
sudo mc -e /etc/koha/koha-ukr-unimarc-site.conf |
|||
наступного змісту |
|||
DOMAIN="localhost" # Change this to be your domain. Any instance will be a subdomain of this string. |
|||
OPACPORT="8080" # TCP listening port for the users' interface (if you skip this, the apache default of 80 will be used) |
|||
OPACPREFIX="" # For users' interface URL: Prefix to be added to the instance name. |
|||
OPACSUFFIX="" # For users' interface URL: Suffix to be added to the instance name. |
|||
INTRAPORT="8888" # TCP listening port for the administration interface |
|||
INTRAPREFIX="" # For administration interface URL: Prefix to be added to the instance name. |
|||
INTRASUFFIX="" # For administration interface URL: Suffix to be added to the instance name. |
|||
ZEBRA_MARC_FORMAT="unimarc" # Specifies format of MARC records to be indexed by Zebra. Possible values are 'marc21', 'normarc' and 'unimarc'. |
|||
ZEBRA_LANGUAGE="uk" # Primary language for Zebra indexing. Possible values are 'en', 'fr' and 'nb'. |
|||
DEFAULTSQL="" # a value is generally not needed. |
|||
BIBLIOS_INDEXING_MODE="dom" # Set the indexing mode for bibliographic records. Valid values are dom (default) and grs1. |
|||
AUTHORITIES_INDEXING_MODE="dom" # Set the indexing mode for authority records. Valid values are dom (default) and grs1. |
|||
USE_MEMCACHED="yes" # Set the instance to make use of memcache. |
|||
MEMCACHED_SERVERS="127.0.0.1:11211" # Set a comma-separated list of host:port memcached servers. |
|||
MEMCACHED_PREFIX="koha_" # Set the desired prefix for the instance memcached namespace. |
|||
ENABLE_SRU="yes" # Enable the Z39.50/SRU server (default: disabled). |
|||
SRU_SERVER_PORT="7090" # Specifiy a TCP port number for the Z39.50/SRU server to listen on. (default: 7090). |
|||
ELASTICSEARCH_SERVER="127.0.0.1:9200" # Elasticsearch-сервер (host:port), який використовуватиме цей екземпляр. |
|||
===== ports.conf ===== |
|||
Додаємо |
|||
Listen 8080 |
|||
Listen 8888 |
|||
у файл /etc/apache2/ports.conf |
|||
Також перезапускаємо Apache |
|||
sudo systemctl restart apache2 |
|||
==== Варіант з портами 80 та 8080 ==== |
|||
Цей варіант зручно використовувати, коли під АБІС Koha відведено окремий домен/сервер. |
|||
===== koha-ukr-unimarc-site.conf ===== |
|||
Встановити Koha. |
|||
/змінюється/ |
|||
Створюємо файл |
|||
sudo mc -e /etc/koha/koha-ukr-unimarc-site.conf |
|||
наступного змісту |
|||
DOMAIN="localhost" # Change this to be your domain. Any instance will be a subdomain of this string. |
|||
OPACPORT="80" # TCP listening port for the users' interface (if you skip this, the apache default of 80 will be used) |
|||
OPACPREFIX="" # For users' interface URL: Prefix to be added to the instance name. |
|||
OPACSUFFIX="" # For users' interface URL: Suffix to be added to the instance name. |
|||
INTRAPORT="8080" # TCP listening port for the administration interface |
|||
INTRAPREFIX="" # For administration interface URL: Prefix to be added to the instance name. |
|||
INTRASUFFIX="" # For administration interface URL: Suffix to be added to the instance name. |
|||
ZEBRA_MARC_FORMAT="unimarc" # Specifies format of MARC records to be indexed by Zebra. Possible values are 'marc21', 'normarc' and 'unimarc'. |
|||
ZEBRA_LANGUAGE="uk" # Primary language for Zebra indexing. Possible values are 'en', 'fr' and 'nb'. |
|||
DEFAULTSQL="" # a value is generally not needed. |
|||
BIBLIOS_INDEXING_MODE="dom" # Set the indexing mode for bibliographic records. Valid values are dom (default) and grs1. |
|||
AUTHORITIES_INDEXING_MODE="dom" # Set the indexing mode for authority records. Valid values are dom (default) and grs1. |
|||
USE_MEMCACHED="yes" # Set the instance to make use of memcache. |
|||
MEMCACHED_SERVERS="127.0.0.1:11211" # Set a comma-separated list of host:port memcached servers. |
|||
MEMCACHED_PREFIX="koha_" # Set the desired prefix for the instance memcached namespace. |
|||
ENABLE_SRU="yes" # Enable the Z39.50/SRU server (default: disabled). |
|||
SRU_SERVER_PORT="7090" # Specifiy a TCP port number for the Z39.50/SRU server to listen on. (default: 7090). |
|||
ELASTICSEARCH_SERVER="127.0.0.1:9200" # Elasticsearch-сервер (host:port), який використовуватиме цей екземпляр. |
|||
===== ports.conf ===== |
|||
Додаємо |
|||
Listen 8080 |
|||
Listen 8008 |
|||
у файл /etc/apache2/ports.conf |
|||
Порт 8008 додано для того щоб переспрямувати типовий віртуальний хост сервера Apache з порта 80 на порт 8008. |
|||
Для цього редагуємо типовий файл /etc/apache2/sites-enabled/000-default.conf і змінюємо наступний рядок |
|||
<VirtualHost *:8008> |
|||
Також перезапускаємо Apache |
|||
sudo systemctl restart apache2 |
|||
==== Варіант з доменами ==== |
|||
Цей варіант для випадку, коли є можливість попередньо налаштувати для АБІС Koha 2 домени на кшталт |
|||
opac.librarydomain.ua |
|||
staff.librarydomain.ua |
|||
Щодо налаштування див. тут https://wiki.koha-community.org/wiki/How_to_set_up_a_domain_name_for_Koha |
|||
=== Команда „koha-create“ === |
|||
<syntaxhighlight lang="bash"> |
|||
Синтаксис команди для створення екземплярів АБІС Koha — [https://wiki.koha-community.org/wiki/Commands_provided_by_the_Debian_packages#koha-create на вікі] та більш актуальний у [http://git.koha-community.org/gitweb/?p=koha.git;a=blob_plain;f=debian/scripts/koha-create;hb=HEAD коді на Git], а також через вбудовану довідку „koha-create --help“ (список нижче — орієнтовний, звіряйте з --help для вашої версії, оскільки перелік прапорців періодично змінюється): |
|||
apt install -y koha-common |
|||
koha-create [--create-db|--request-db|--populate-db|--use-db] \ |
|||
</syntaxhighlight> |
|||
[--marcflavor marc21(default)|normarc|unimarc] \ |
|||
[--zebralang cs|el|en(default)|es|fr|nb|ru|uk] \ |
|||
[--elasticsearch-server localhost:9200(default)] \ |
|||
[--auth-idx dom(default)|grs1] \ |
|||
[--biblio-idx dom (default)|grs1] \ |
|||
[--use-memcached] \ |
|||
[--memcached-servers 127.0.0.1:11211,host2:port2,...] \ |
|||
[--memcached-prefix KOHA|koha_|...] \ |
|||
[--enable-sru] \ |
|||
[--sru-port 7090(default)|9998] \ |
|||
[--defaultsql /path/to/some.sql] \ |
|||
[--configfile /path/to/config] \ |
|||
[--passwdfile /path/to/passwd] \ |
|||
[--dbhost host] \ |
|||
[--database dbname] \ |
|||
[--adminuser admin_user_id_in_db] \ |
|||
[--template-cache-dir /var/cache/koha/<instance>/templates(default)] \ |
|||
[--timezone time/zone (America/Argentina)] \ |
|||
[--upload-path /var/lib/koha/<instancename>/uploads(default)|...] \ |
|||
[--tmp-path dir /var/lib/koha/<instance>/tmp(default)] \ |
|||
[--letsencrypt] \ |
|||
[--smtp-host host] \ |
|||
[--smtp-port NN] \ |
|||
[--smtp-timeout NN] \ |
|||
[--smtp-ssl-mode mode [disabled(default)|ssl|starttls] \ |
|||
[--smtp-user-name user] \ |
|||
[--smtp-password pass] \ |
|||
[--smtp-debug] \ |
|||
[--mb-host localhost)default)] \ |
|||
[--mb-port NN default: 61613] \ |
|||
[--mb-user guest(default)] \ |
|||
[--mb-pass guest(default)] \ |
|||
[--mb-vhost koha_<instance>(default)] \ |
|||
[--keep-cookie NAME] \ |
|||
[--help,-h] \ |
|||
instancename |
|||
''Зауваження: довжина екземпляра Коха („instancename“) наразі обмежена 11 символами (див. [https://github.com/digibib/kohadevbox/issues/56], [https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=10205]). Екземпляр з назвою більшої довжини буде непрацездатним.'' |
|||
Зверніть увагу на прапорець '''--elasticsearch-server''' — він одразу прописує адресу ES-сервера в koha-conf.xml створюваного екземпляра (типово localhost:9200), що корисно тепер, коли Elasticsearch — основний рушій пошуку в цій інструкції. |
|||
Під час встановлення буде створено користувача '''koha''', каталоги програми та встановлено всі необхідні Perl-модулі. :contentReference[oaicite:1]{index=1} |
|||
Створення екземпляра АБІС Koha (українська, Unimarc) |
|||
=== Перевірка === |
|||
sudo koha-create --create-db --configfile /etc/koha/koha-ukr-unimarc-site.conf ukr_unimarc |
|||
Вивід: |
|||
Koha instance is empty, no staff user created. |
|||
Starting Koha worker daemon for ukr_unimarc (default):. |
|||
Starting Koha indexing daemon for ukr_unimarc:. |
|||
== Веб-встановлювач == |
|||
<syntaxhighlight lang="bash"> |
|||
=== Актуальні українські sql-файли === |
|||
koha-list |
|||
Частина локалізованих SQL-таблиць '''українською''' була долучена латкою https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=18537 у 2017 р. для версії Koha 17.05.05 та вище. |
|||
</syntaxhighlight> |
|||
Оновлення для українських SQL-таблиць доступні у Dropbox Сергія Дубика за адресою: |
|||
'https://www.dropbox.com/sh/nybt54x8yhh7frq/AACfsG32sJnBgNh1CdivXDjYa?dl=0' |
|||
Тека '''SQL_Koha_25_05_0X_adds/uk-UA_additional/uk-UA''' містить оновлення, які необхідно скопіювати у теку '''uk-UA''' у '''/usr/share/koha/intranet/cgi-bin/installer/data/mysql''' |
|||
Виконайте наступну команду |
|||
sudo find /usr/share/koha/intranet/cgi-bin/installer/data/mysql/uk-UA -type d -exec chmod ugo+x {} \; |
|||
щоб надати привілеї теці /usr/share/koha/intranet/cgi-bin/installer/data/mysql/uk-UA. Інакше інсталятор її не побачить. |
|||
=== Утворення локалізованих шаблонів === |
|||
До створення першої бібліотеки команда нічого не виведе. |
|||
Спочатку дивимося перелік доступних мов |
|||
sudo koha-translate --list --available |
|||
Встановлюємо переклади для української |
|||
sudo koha-translate --install uk-UA |
|||
Ця команда також згенерує деякі перекладені дані для Коха (у форматі '''yaml'''-файлів) у теці |
|||
/usr/share/koha/intranet/cgi-bin/installer/data/mysql/uk-UA |
|||
разом з раніше скопійованими '''SQL'''-файлами. Примітка: sudo koha-translate --update uk-UA також генерує yaml-файли (потрібно при встановленні екземплярів Коха). |
|||
Також можете встановити деякі інші мови інтерфейсу |
|||
sudo koha-translate --install pl-PL |
|||
sudo koha-translate --install de-DE |
|||
sudo koha-translate --install fr-FR |
|||
sudo koha-translate --install it-IT |
|||
sudo koha-translate --install cs-CZ |
|||
sudo koha-translate --install bg-Cyrl |
|||
… |
|||
=== Кроки веб-встановлювача === |
|||
Це нормально. |
|||
Типовий логін для екземляра напр. „ukr_unimarc“ буде: |
|||
koha_ukr_unimarc |
|||
Пароль та логін можна переглянути за допомогою: |
|||
sudo koha-passwd ukr_unimarc |
|||
або логін і пароль зберігаються у файлі '''/etc/koha/sites/ukr_unimarc/koha-conf.xml''', у розділі '''config''' знаходимо користувача ('''user''') та пароль ('''pass'''). Також побачити логін та пароль можна через команди |
|||
sudo xmlstarlet sel -t -v 'yazgfs/config/user' /etc/koha/sites/ukr_unimarc/koha-conf.xml |
|||
sudo xmlstarlet sel -t -v 'yazgfs/config/pass' /etc/koha/sites/ukr_unimarc/koha-conf.xml |
|||
У веб-оглядачі переходимо за адресою http://localhost:8080/?language=uk-UA (чи http://localhost:8888/?language=uk-UA). Бачимо запит на авторизацію від веб-встановлювача. |
|||
== MariaDB == |
|||
Крок 1: мова '''uk-UA''', перевірка залежностей |
|||
Крок 2: налаштування бази даних, перевірка з’єднання, існування БД та привілеїв |
|||
Крок 3: створення таблиць, вибір МАРК-стандарту '''Unimarc''' (УкрМарк), вибір типових даних (послідовно '''вибираємо усі¹²''' '''дані''', імпорт 1-10 хв.). |
|||
¹Які типові дані можна вимкнути: |
|||
* Приклади користувачів |
|||
* Приклади бібліотек/підрозділів |
|||
²Також варто вимкнути типову структуру unimarc_sample_fastadd_framework (вона конфліктує з unimarc_sample_fastadd_framework_FA_UKR) у блоці „Факультативне“. |
|||
==== Процес імпорту даних ==== |
|||
Для імпорту даних Koha використовуватиме дані з теки /usr/share/koha/intranet/cgi-bin/installer/data/mysql/uk-UA. |
|||
У цій теці будуть як дані, згенеровані самою Коха (у форматі yml-файлів) так і дані sql-скриптів (з набору Сергія Дубика). |
|||
На 3 кроці слідкуємо за помилками при імпорті типових даних. Якщо є помилки — знаходимо відповідні sql-файли, виправляємо їх та імпортуємо вручну (напр., через phpmyadmin) або очищуємо таблиці і перезапускаємо веб-встановлювач. Також повідомляйте про sql-помилки Сергія Дубика, serhijdubykЖАБКАgmail.com. |
|||
Для очищення таблиць (ОБЕРЕЖНО - БУДУТЬ ВИТЕРТІ УСІ ДАНІ з БД koha_ukr_unimarc) та перезапуску веб-встановлювача можна використати наступний bash-скрипт delete_all_data_in_db_koha_ukr_unimarc.sh: |
|||
#!/bin/bash |
|||
# MySQL сервер та інформація про підключення |
|||
INSTANCE="ukr_unimarc" |
|||
MYSQL_USER="koha_"$INSTANCE |
|||
MYSQL_PASSWORD="ваш_пароль" |
|||
MYSQL_HOST="localhost" # або інший хост, на якому запущено MySQL |
|||
MYSQL_DB="koha_"$INSTANCE |
|||
# Вибір всіх таблиць в базі даних |
|||
TABLES=$(mysql -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -h "$MYSQL_HOST" "$MYSQL_DB" -se "SHOW TABLES") |
|||
# Вимкнення перевірки зовнішніх ключів |
|||
mysql -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -h "$MYSQL_HOST" "$MYSQL_DB" -e "SET FOREIGN_KEY_CHECKS = 0;" |
|||
# Цикл для виконання DELETE для кожної таблиці |
|||
for table in $TABLES |
|||
do |
|||
mysql -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -h "$MYSQL_HOST" "$MYSQL_DB" -e "DELETE FROM $table;" |
|||
done |
|||
# Включення перевірки зовнішніх ключів |
|||
mysql -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -h "$MYSQL_HOST" "$MYSQL_DB" -e "SET FOREIGN_KEY_CHECKS = 1;" |
|||
echo "Всі дані з бази даних $MYSQL_DB були очищені." |
|||
sudo systemctl restart koha-common |
|||
sudo systemctl restart apache2 |
|||
sudo systemctl restart mariadb |
|||
sudo systemctl restart memcached |
|||
koha-plack --restart $INSTANCE |
|||
Інколи, для кращого очищення, цей скрипт потрібно запускати повторно. |
|||
==== Помилка „Gateway Timeout“ ==== |
|||
<syntaxhighlight lang="bash"> |
|||
Рідко, скоріш на повільних серверах, на 3-му кроці може з’являтися помилка „Gateway Timeout“. Спробуйте в налаштуваннях Apache (/etc/apache2/apache2.conf) виставити більший час (Timeout 1200), виконати |
|||
systemctl enable mariadb |
|||
systemctl restart |
sudo systemctl restart apache2 |
||
та перезапустити веб-встановлювач (й попередньо очистити таблиці). |
|||
</syntaxhighlight> |
|||
==== Адаптаційний етап ==== |
|||
Виконати початкове налаштування. |
|||
=====Створення бібліотеки/підрозділу===== |
|||
Створюємо свій підрозділ, напр. |
|||
Код бібліотеки/підрозділу: AB |
|||
Найменування: Абонемент |
|||
=====Створення категорії користувачів===== |
|||
Якщо у sql-даних були вибрані типові категорії користувачів, то цей крок Коха пропустить. |
|||
===== Створення адміністратора Коха===== |
|||
Вводимо дані адміністратора Коха - прізвище, ім’я, номер читацького квитка, бібліотека / підрозділ, категорію користувача, логін, пароль. |
|||
===== Створення нового типу одиниць ===== |
|||
Якщо у sql-даних були вибрані приклади типів одиниць, то цей крок Коха пропустить. |
|||
===== Створення нового правила обігу ===== |
|||
Наприклад, вибираємо |
|||
Підрозділ бібліотеки: Абонемент |
|||
Категорія користувача: Студент |
|||
Тип одиниці: BOOK |
|||
Поточна дозволена кількість видач: 50 |
|||
Термін випозичання: 14 |
|||
Одиниці: дні |
|||
Продовження (дозволена кількість): 1 |
|||
=====Встановлення завершено!===== |
|||
Вітаємо, Ви закінчили і готові до використання Коха |
|||
== Пошуковий рушій: Elasticsearch (рекомендовано) == |
|||
<syntaxhighlight lang="bash"> |
|||
Koha підтримує два пошукові рушії, що перемикаються системною преференцією '''SearchEngine''': Zebra (класичний, історично типовий) та Elasticsearch. У цій редакції інструкції за основний рушій обрано '''Elasticsearch''' — насамперед тому, що підтримка кирилиці/української реалізується штатними, підтримуваними Elastic-плагінами (ICU + офіційний плагін українського аналізатора), а не ручним патчем внутрішніх файлів Zebra, який доводиться повторно накладати після кожного оновлення пакунка koha-common. |
|||
mysql_secure_installation |
|||
</syntaxhighlight> |
|||
Пакунок koha-elasticsearch ми вже встановили разом з іншими пакунками Koha на початку інструкції. |
|||
Рекомендується: |
|||
=== Встановлення сервера Elasticsearch === |
|||
* встановити пароль користувача '''root'''; |
|||
Koha станом на середину 2026 р. орієнтується на гілку Elasticsearch 8.x. Java (OpenJDK) для Elasticsearch зазвичай підтягується автоматично як залежність пакунка elasticsearch; за потреби додатково: |
|||
* видалити анонімних користувачів; |
|||
sudo apt install openjdk-21-jdk-headless |
|||
* заборонити віддалений вхід користувача '''root'''; |
|||
Підключаємо офіційний репозитарій Elastic та ключ: |
|||
* видалити тестову базу даних; |
|||
sudo apt install apt-transport-https |
|||
* перезавантажити таблиці привілеїв. |
|||
sudo curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch -o /etc/apt/keyrings/elasticsearch.asc |
|||
sudo tee /etc/apt/sources.list.d/elasticsearch.sources <<EOF |
|||
Types: deb |
|||
URIs: https://artifacts.elastic.co/packages/8.x/apt |
|||
Suites: stable |
|||
Components: main |
|||
Signed-By: /etc/apt/keyrings/elasticsearch.asc |
|||
EOF |
|||
sudo apt update |
|||
sudo apt install elasticsearch |
|||
Під час встановлення пакунок покаже автоматично згенерований пароль вбудованого користувача elastic — за потреби (автентифікація/TLS) збережіть його; для одновузлової локальної інсталяції під Koha безпеку кластера зазвичай спрощують, див. офіційну документацію Elastic щодо мінімальної конфігурації для single-node. |
|||
Запуск і автозапуск служби: |
|||
sudo systemctl enable --now elasticsearch |
|||
Перевірка: |
|||
curl -k https://localhost:9200 -u elastic |
|||
=== Плагіни ICU та українського аналізатора === |
|||
=== Перевірка === |
|||
Плагін '''analysis-icu''' Koha вимагає обов'язково — без нього індексація/пошук у Koha з увімкненим Elasticsearch не запрацюють коректно. Плагін '''analysis-ukrainian''' — офіційний плагін Elastic, що інтегрує лематизатор Lucene UkrainianMorfologikAnalyzer (проєкт Morfologik) і додає якісне визначення словоформ для української замість „сирої“ посимвольної токенізації. |
|||
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu |
|||
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-ukrainian |
|||
sudo systemctl restart elasticsearch |
|||
Плагін analysis-ukrainian надає ES-аналізатор з назвою '''ukrainian'''. Прив'язка цього аналізатора до конкретних полів у мапінгу, який Koha створює для індексів biblios/authorities, — це вже налаштування на рівні мапінгу Elasticsearch (Адміністрація → Search engine configuration, або пряме редагування YAML-мапінгу в коді Koha); універсального „одна команда і все запрацювало“ рецепта тут немає, тому перш ніж переносити зміни на прод — перевірте поведінку на тестовому екземплярі й звіряйтеся з актуальною сторінкою https://wiki.koha-community.org/wiki/Elasticsearch. Навіть без ручного тюнінгу мапінгу підключений icu_tokenizer уже суттєво покращує коректність токенізації кирилиці порівняно з типовим standard-аналізатором. |
|||
=== Особливість Debian 13 (trixie): HTTP::Tiny і TLS === |
|||
<syntaxhighlight lang="bash"> |
|||
На Debian 13 (trixie) через оновлену версію бібліотеки HTTP::Tiny (0.083+), яку постачає ОС, з'єднання Koha з Elasticsearch може обриватися помилками перевірки TLS-сертифіката, навіть якщо ви звертаєтесь до localhost. Рішення — додати до секції <elasticsearch> у /etc/koha/sites/ukr_unimarc/koha-conf.xml: |
|||
systemctl is-active mariadb |
|||
<elasticsearch> |
|||
</syntaxhighlight> |
|||
<server>127.0.0.1:9200</server> |
|||
<index_name>koha_ukr_unimarc</index_name> |
|||
<handle_args> |
|||
<verify_SSL>0</verify_SSL> |
|||
</handle_args> |
|||
</elasticsearch> |
|||
Після зміни — перезапустіть Koha-служби для екземпляра (нижче, розділ „Включення Plack“ і сусідні). |
|||
=== Індексація та перемикання Koha на Elasticsearch === |
|||
Повинно бути |
|||
1) У пошуку системних преференцій відкриваємо '''SearchEngine''' (Адміністрація → Глобальні системні преференції → Пошук) і перемикаємо значення з Zebra на '''Elasticsearch'''. |
|||
2) Будуємо індекси для потрібного екземпляра: |
|||
sudo koha-elasticsearch --rebuild -b -a -v ukr_unimarc |
|||
(прапорці -b і -a — окремо бібліографічні та авторитетні записи; без них перебудує обидва) |
|||
3) Запускаємо/перевіряємо індексувальну службу ES для екземпляра: |
|||
sudo koha-es-indexer --start ukr_unimarc |
|||
sudo koha-es-indexer --status ukr_unimarc |
|||
4) Перевірка результату: пошук символу '''*''' у каталозі має повернути весь фонд (у Zebra зірочка окремо як пошуковий термін не спрацьовує, в Elasticsearch — спрацьовує) — це швидкий індикатор, що Koha дійсно звертається до ES, а не залишилася на Zebra. |
|||
Служба Zebra (zebrasrv, індексувальний демон) на екземплярі, як і раніше, продовжує працювати у фоні навіть при увімкненому Elasticsearch — частина внутрішніх операцій Koha історично досі покладається на Zebra, тож вимикати її повністю не варто без окремого дослідження вашої версії Koha. |
|||
<syntaxhighlight lang="text"> |
|||
active |
|||
</syntaxhighlight> |
|||
=== Альтернатива (legacy): Zebra з підтримкою кирилиці === |
|||
== Створення бібліотеки == |
|||
Якщо з якихось причин потрібно залишитися на Zebra як основному рушії пошуку (наприклад, обмежені ресурси сервера — Elasticsearch помітно вимогливіший до RAM), нижче — перевірений роками спосіб підтримки кирилиці для Zebra. Без цього патчу пошук українською/кирилицею в Zebra або не працює, або дає некоректні результати. |
|||
Необхідно додати кириличні символи до файлу |
|||
У прикладах використовується назва |
|||
/etc/koha/zebradb/etc/word-phrase-utf.chr |
|||
а саме виправити на наступне: |
|||
<syntaxhighlight lang="text"> |
|||
lowercase {0-9}{a-z}αβγδεζηθικλμνξοπρστυφχψωæäåąßćęłńóśøöüźżабвгдежзийклмнопрстуфхцчшщьыъэюяёєїґўі’ |
|||
library |
|||
uppercase {0-9}{A-Z}ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩÆÄÅĄẞĆĘŁŃÓŚØÖÜŹŻАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯЁЄЇҐЎІ’ |
|||
</syntaxhighlight> |
|||
space {\001-\040}!"#$%&'\()*+,-./:;<=>?@\[\\]^_`\{|}~{\x88-\x89}{\x98-\x9C} |
|||
За потреби замініть її на власну. |
|||
Без цієї зміни пошук або не буде працювати або даватиме некоректні результати. |
|||
Також для коректного сортування кирилиці аналогічні зміни також потрібно внести і до файлу |
|||
Створити бібліотеку. |
|||
/etc/koha/zebradb/lang_defs/en/'''sort-string-utf.chr''' (наявність uk/sort-string-utf.chr наразі не дає бажаного результату). |
|||
При оновленнях пакунка „koha-common“ також потрібно вносити ці зміни — це і є головний практичний недолік порівняно з Elasticsearch-варіантом вище: патч не переживає оновлення пакунка і його доводиться накладати заново щоразу. |
|||
<syntaxhighlight lang="bash"> |
|||
koha-create --create-db library |
|||
</syntaxhighlight> |
|||
Під час створення буде: |
|||
* створено базу даних; |
|||
* створено користувача MariaDB; |
|||
* створено конфігурацію Apache; |
|||
* створено конфігурацію Plack; |
|||
* створено службові каталоги; |
|||
* згенеровано пароль адміністратора бази даних. |
|||
=== Перевірка === |
|||
<syntaxhighlight lang="bash"> |
|||
koha-list |
|||
</syntaxhighlight> |
|||
Повинно відобразитися |
|||
<syntaxhighlight lang="text"> |
|||
library |
|||
</syntaxhighlight> |
|||
== Пароль доступу до бази даних == |
|||
Під час встановлення Koha автоматично генерує пароль користувача бази даних. |
|||
Переглянути його можна у файлі |
|||
<syntaxhighlight lang="bash"> |
|||
mc -e /etc/koha/sites/library/koha-conf.xml |
|||
</syntaxhighlight> |
|||
Знайти рядок |
|||
<syntaxhighlight lang="xml"> |
|||
<pass>...</pass> |
|||
</syntaxhighlight> |
|||
Цей пароль знадобиться під час роботи веб-інсталятора. |
|||
'''Примітка.''' |
|||
Не змінюйте цей пароль вручну без необхідності. |
|||
== Налаштування вебсерверу == |
|||
Після створення бібліотеки Koha автоматично створює конфігураційні файли Apache. |
|||
Перевірити їх наявність. |
|||
ls -l /etc/apache2/sites-available/ |
|||
Повинні бути присутні файли |
|||
library.conf |
|||
library_ssl.conf |
|||
Увімкнути необхідні модулі Apache. |
|||
a2enmod rewrite |
|||
a2enmod headers |
|||
a2enmod proxy |
|||
a2enmod proxy_http |
|||
a2enmod ssl |
|||
a2enmod cgid |
|||
Перезапустити Apache. |
|||
systemctl restart apache2 |
|||
=== Перевірка === |
|||
Перевірити конфігурацію. |
|||
apachectl configtest |
|||
Повинно відобразитися |
|||
Syntax OK |
|||
Перевірити стан служби. |
|||
systemctl is-active apache2 |
|||
Повинно бути |
|||
active |
|||
== Налаштування HTTPS == |
|||
Встановити Certbot. |
|||
apt install -y certbot python3-certbot-apache |
|||
Отримати сертифікат Let's Encrypt. |
|||
certbot --apache |
|||
Під час налаштування: |
|||
* вказати адресу електронної пошти; |
|||
* погодитися з умовами використання; |
|||
* вибрати домен бібліотеки; |
|||
* дозволити автоматичне перенаправлення HTTP → HTTPS. |
|||
=== Перевірка === |
|||
Відкрити у браузері |
|||
https://library.example.org |
|||
та |
|||
https://library.example.org:8080 |
|||
Повинно відображатися захищене з'єднання. |
|||
Перевірити автоматичне оновлення сертифікатів. |
|||
systemctl status certbot.timer |
|||
Повинно бути |
|||
active (waiting) |
|||
== Plack == |
|||
Запустити Plack для бібліотеки. |
|||
koha-plack --enable library |
|||
Перезапустити Plack. |
|||
koha-plack --restart library |
|||
=== Перевірка === |
|||
koha-plack --status library |
|||
Повинно відобразитися |
|||
Plack is enabled |
|||
== Memcached == |
|||
Якщо сервер Memcached ще не встановлено |
|||
apt install -y memcached |
|||
Увімкнути автоматичний запуск. |
|||
systemctl enable memcached |
|||
systemctl restart memcached |
|||
Переконатися, що використання Memcached увімкнено у файлі |
|||
mc -e /etc/koha/koha-sites.conf |
|||
Параметр |
|||
USE_MEMCACHED="yes" |
|||
=== Перевірка === |
|||
systemctl is-active memcached |
|||
Повинно бути |
|||
active |
|||
== Elasticsearch == |
|||
Перевірити роботу служби. |
|||
systemctl is-active elasticsearch |
|||
Повинно бути |
|||
active |
|||
Перевірити відповідь сервера. |
|||
curl http://127.0.0.1:9200 |
|||
Повинен відобразитися JSON із відомостями про Elasticsearch. |
|||
Побудувати пошукові індекси. |
|||
koha-elasticsearch --rebuild -v -f library |
|||
'''Примітка.''' |
|||
Під час першого індексування великої бази даних процес може тривати тривалий час. |
|||
=== Перевірка === |
|||
У журналі не повинно бути повідомлень про помилки. |
|||
== Доступ до вебінсталятора == |
|||
Після створення бібліотеки відкрити службовий інтерфейс. |
|||
https://library.example.org:8080 |
|||
Відобразиться майстер встановлення Koha. |
|||
Для підключення до бази даних використовуються параметри з файлу |
|||
/etc/koha/sites/library/koha-conf.xml |
|||
Заповнити: |
|||
* Database name; |
|||
* Database user; |
|||
* Database password. |
|||
Після успішного підключення перейти до наступного кроку. |
|||
== Початкове налаштування Koha == |
|||
Під час роботи майстра рекомендується: |
|||
* встановити демонстраційні дані лише для тестового сервера; |
|||
* для робочого сервера не встановлювати приклади читачів, примірників та бібліографічних записів; |
|||
* вибрати формат MARC — UNIMARC; |
|||
* вибрати стандартні системні налаштування. |
|||
Після завершення інсталятора увійти до службового інтерфейсу під користувачем |
|||
koha_admin |
|||
та паролем, який було задано під час встановлення. |
|||
=== Перевірка === |
|||
Відкрити головну сторінку службового інтерфейсу. |
|||
Переконатися, що: |
|||
* відображається головне меню; |
|||
* відсутні повідомлення про помилки; |
|||
* працює пошук; |
|||
* відкривається модуль «Керування». |
|||
== Завершення встановлення == |
|||
Після завершення вебінсталятора рекомендується виконати кілька додаткових перевірок. |
|||
=== Перевірити служби === |
|||
systemctl status apache2 |
|||
systemctl status mariadb |
|||
systemctl status memcached |
|||
systemctl status elasticsearch |
|||
Усі служби повинні перебувати у стані '''active (running)'''. |
|||
=== Перевірити бібліотеку === |
|||
koha-list |
|||
Повинна відображатися створена бібліотека. |
|||
=== Перевірити Plack === |
|||
koha-plack --status koha |
|||
Якщо використовується інша назва бібліотеки, замініть '''koha''' на власну. |
|||
Plack повинен бути увімкнений. |
|||
=== Перевірити вебінтерфейси === |
|||
Відкрити у браузері: |
|||
https://koha.example.org |
|||
та |
|||
https://koha.example.org:8080 |
|||
Повинні відкриватися відповідно: |
|||
* електронний каталог (OPAC); |
|||
* службовий інтерфейс Koha. |
|||
== Перші кроки після встановлення == |
|||
Після успішного встановлення рекомендується: |
|||
* створити резервну копію бази даних; |
|||
* налаштувати електронну пошту; |
|||
* перевірити створення резервних копій; |
|||
* створити додаткових адміністраторів; |
|||
* налаштувати бібліотеки, категорії читачів та правила користування; |
|||
* встановити логотип бібліотеки; |
|||
* налаштувати резервне копіювання сервера. |
|||
== Корисні команди == |
|||
Перелік бібліотек |
|||
koha-list |
|||
Перезапустити Plack |
|||
koha-plack --restart koha |
|||
Зупинити Plack |
|||
koha-plack --stop koha |
|||
Запустити Plack |
|||
koha-plack --start koha |
|||
Перебудувати індекси Elasticsearch |
|||
koha-elasticsearch --rebuild -f -v koha |
|||
Перевірити конфігурацію Apache |
|||
apachectl configtest |
|||
Переглянути журнали Apache |
|||
journalctl -u apache2 |
|||
Переглянути журнали MariaDB |
|||
journalctl -u mariadb |
|||
Переглянути журнали Elasticsearch |
|||
journalctl -u elasticsearch |
|||
== Типові проблеми == |
|||
=== Apache не запускається === |
|||
Перевірити конфігурацію. |
|||
apachectl configtest |
|||
Після виправлення помилок перезапустити службу. |
|||
systemctl restart apache2 |
|||
=== MariaDB не запускається === |
|||
Переглянути журнал. |
|||
journalctl -u mariadb -n 100 |
|||
=== Elasticsearch недоступний === |
|||
Перевірити службу. |
|||
systemctl status elasticsearch |
|||
Перевірити відповідь сервера. |
|||
curl http://127.0.0.1:9200 |
|||
==== Запуск служби Zebra ==== |
|||
=== Не відкривається службовий інтерфейс === |
|||
sudo koha-zebra --start ukr_unimarc |
|||
==== Запуск індексації Zebra ==== |
|||
Перевірити Apache. |
|||
sudo koha-rebuild-zebra -f -v ukr_unimarc |
|||
== Включення Plack == |
|||
systemctl status apache2 |
|||
koha-plack --enable ukr_unimarc; koha-plack --start ukr_unimarc |
|||
Щодо продуктивності див. також тут: |
|||
* https://wiki.koha-community.org/wiki/Performance |
|||
== Створення sitemap == |
|||
Перевірити Plack. |
|||
koha-sitemap --enable ukr_unimarc |
|||
koha-sitemap --generate ukr_unimarc |
|||
== E-mail == |
|||
koha-plack --status koha |
|||
За замовчуванням надсилання пошти вимкнене. Це дозволяє спершу довести налаштування до ладу, перш ніж ризикувати надіслати небажані сповіщення користувачам. Щоб увімкнути пошту: |
|||
sudo koha-email-enable ukr_unimarc |
|||
== Вимкнення оновлення Koha == |
|||
Перевірити журнали. |
|||
Для більш контрольованого оновлення пакунків Коха можна тимчасово закоментувати рядок Suites (або весь блок) у /etc/apt/sources.list.d/koha.sources, напр.: |
|||
Types: deb |
|||
URIs: https://debian.koha-community.org/koha/ |
|||
# Suites: 26.05 |
|||
Components: main |
|||
Signed-By: /etc/apt/keyrings/koha.asc |
|||
Це дозволить легко оновлювати інші пакунки Debian, не зачіпаючи koha-common. |
|||
= Виправлення проблем = |
|||
journalctl -u apache2 -n 100 |
|||
Деколи стає відомо про проблему у поточній версії Koha. Зазвичай виправлення з’являється в наступній версії. |
|||
Це у випадку, якщо про проблему повідомлено на [https://bugs.koha-community.org/bugzilla3/ баґтрекер Koha] і знайдено й прийнято її вирішення (латка) до виходу наступної версії. |
|||
Тут згадуватимуться проблеми й їх вирішення для поточних версій Koha (приклад актуальної на 2026 р. проблеми — TLS-помилка Elasticsearch на Debian 13, описана вище в розділі про Elasticsearch). |
|||
Див. також: [[Виправлення та вдосконалення для АБІС Koha]], зроблені українською спільнотою АБІС Koha. |
|||
== Оновлення системи == |
|||
= Оновлення Koha = |
|||
Для оновлення Debian |
|||
Нова версія Koha виходить кожні шість місяців з набором нових функцій. Також кожен місяць виходять коригувальні оновлення. |
|||
Оновлення проходить легко для варіанту [[Встановлення Koha з репозитарію на ОС Debian|встановлення Koha з пакунків Debian]]. |
|||
Більш стабільними є версії Коха, що пройшли декілька коригувальних оновлень. |
|||
Можна оновлювати Коху до версії з певної стабільної гілки. Напр., якщо потрібно оновити Коху до найновішої коригувальної версії у гілці 25.05, то у файлі /etc/apt/sources.list.d/koha.sources |
|||
має бути наступне |
|||
Types: deb |
|||
URIs: https://debian.koha-community.org/koha/ |
|||
Suites: 25.05 |
|||
Components: main |
|||
Signed-By: /etc/apt/keyrings/koha.asc |
|||
sudo apt-get update |
|||
sudo apt-get upgrade |
|||
sudo apt-get install koha-common |
|||
Деколи необхідно оновити ключ debian-сховища Koha: |
|||
sudo curl -fsSL https://debian.koha-community.org/koha/gpg.asc -o /etc/apt/keyrings/koha.asc |
|||
Для більшого контролю над наступними оновленнями Коха можна закоментувати рядок Suites у /etc/apt/sources.list.d/koha.sources (і розкоментовувати чи змінювати при ручному оновленні АБІС Koha) — див. розділ „Вимкнення оновлення Koha“ вище. |
|||
Якщо оновлюєте екземпляр, який уже перейшов на Elasticsearch (розділ вище), після встановлення нової версії koha-common доцільно одразу перевірити: |
|||
apt update |
|||
* чи не зникло (і не потребує повторного додавання) налаштування <verify_SSL>0</verify_SSL> у koha-conf.xml — деякі мажорні оновлення перегенеровують конфігураційні файли; |
|||
apt full-upgrade |
|||
* чи не з'явилися нові поля в мапінгу ES, що потребують повної переіндексації (koha-elasticsearch --rebuild -f). |
|||
== Встановлення/оновлення допоміжних perl-модулів == |
|||
Для оновлення Koha використовується стандартний механізм оновлення пакетів Debian. |
|||
Після оновлення, перевіряємо в бібліотечному інтерфейсі сторінку „Домівка > Про АБІС Koha > Модулі Perl“. |
|||
Ви можете побачити відсутні модулі Perl, виділені різними кольорами. |
|||
=== Пакунки з репозитарію Debian === |
|||
Деякі згадувані тут пакунки могли бути відсутні у репозиторії Debian на момент підготовки пакунки з Koha. Пробуємо знайти відсутні пакунки через пошук |
|||
https://www.debian.org/distrib/packages#search_packages |
|||
Знайдені пакунки довстановлюємо |
|||
sudo apt-get install знайдений_пакунок |
|||
Напр. |
|||
sudo apt-get install libhttp-tiny-perl |
|||
=== Пакунки з CPAN === |
|||
Perl-пакунки, наразі не пакетизовані й відсутні у репозитарії Debian, встановлюємо напряму з репозитарію perl-пакунків CPAN (див. застереження в розділі „Пакунки з CPAN (лише за потреби)“ вище — це крайній засіб, не типовий шлях). |
|||
sudo cpan |
|||
install Test::DBIx::Class |
|||
install Readonly::XS |
|||
install HTTPD::Bench::ApacheBench |
|||
== Оновлення локалізації == |
|||
Перед оновленням рекомендується створити резервну копію бази даних та каталогу |
|||
sudo koha-translate --update uk-UA |
|||
та, за потреби, інших мов (pl-PL, de-DE, fr-FR) |
|||
Однак, при оновленні пакунків Koha локалізація оновлюється автоматично для усіх вибраних мов. |
|||
= Вилучення Koha = |
|||
/etc/koha |
|||
Вилучення пакунка „koha-common“ не приводить до автоматичного вилучення екземплярів АБІС Koha. '''Попередньо''' необхідно зупинити та вилучити усі екземпляри АБІС Koha командами |
|||
sudo systemctl restart mariadb |
|||
sudo systemctl restart apache2 |
|||
sudo koha-zebra --stop ukr_unimarc |
|||
sudo koha-indexer --stop ukr_unimarc |
|||
sudo koha-es-indexer --stop ukr_unimarc |
|||
sudo koha-plack --stop ukr_unimarc |
|||
sudo koha-disable ukr_unimarc |
|||
sudo koha-remove ukr_unimarc |
|||
sudo /sbin/userdel ukr_unimarc-koha |
|||
sudo /sbin/groupdel ukr_unimarc-koha |
|||
sudo systemctl restart memcached |
|||
Якщо екземпляр використовував Elasticsearch і ви остаточно позбуваєтесь індексів, додатково видаліть індекс(и) цього екземпляра з Elasticsearch (типово мають назву на кшталт koha_ukr_unimarc_biblios, koha_ukr_unimarc_authorities): |
|||
curl -k -X DELETE "https://localhost:9200/koha_ukr_unimarc_*" -u elastic |
|||
Якщо Elasticsearch більше ніде на цьому сервері не потрібен (не використовується іншими екземплярами): |
|||
sudo systemctl stop elasticsearch |
|||
sudo apt-get purge elasticsearch |
|||
sudo rm -rf /var/lib/elasticsearch /etc/elasticsearch |
|||
Інколи виникає помилка userdel: user ukr_unimarc-koha is currently used by process 4793 /usr/sbin/deluser: `/usr/sbin/userdel ukr_unimarc-koha' returned error code 8. Див. https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=4880. |
|||
== Наступні статті == |
|||
Перегляд переліку наявних екземплярів |
|||
sudo koha-list |
|||
Остаточне вилучення пакунків Koha |
|||
sudo apt-get purge koha-common koha-deps koha-perldeps koha-elasticsearch |
|||
Перевірте також теки: |
|||
/var/spool/koha |
|||
/var/log/koha |
|||
/var/lib/koha |
|||
/var/cache/koha |
|||
/usr/share/koha |
|||
/etc/koha |
|||
Можна очистити вміст цих тек щодо екземпляру ukr_unimarc |
|||
rm -rf /var/spool/koha/ukr_unimarc |
|||
rm -rf /var/log/koha/ukr_unimarc |
|||
rm -rf /var/lib/koha/ukr_unimarc |
|||
rm -rf /var/cache/koha/ukr_unimarc |
|||
У випадку якщо це був останній екземпляр та Вам не потрібна тека /usr/share/koha, то вилучайте й повністю теку /usr/share/koha |
|||
rm -rf /usr/share/koha |
|||
Примітка: Теку /usr/share/koha мала вилучити команда „apt-get purge koha-common“, однак там могли залишитися файли перекладів чи інші ваші зміни чи долучені файли. |
|||
У теці /etc/koha команда „apt-get purge koha-common“ також вилучила більшість файлів. Залишилася тека /etc/koha/sites/ukr_unimarc, її вилучаємо |
|||
rm -rf /etc/koha/sites/ukr_unimarc |
|||
Також там могли зберегтися конфіг налаштування екземпляра (/etc/koha/koha-ukr-unimarc-site.conf) та інші ваші зміни. Якщо нічого з цього не потрібно, то вилучаємо теку /etc/koha/ |
|||
rm -rf /etc/koha |
|||
Вилучення налаштувань для веб-сервера Apache2 |
|||
rm /etc/apache2/sites-enabled/ukr_unimarc.conf |
|||
rm /etc/apache2/sites-available/ukr_unimarc.conf |
|||
Якщо після видалення планується перевстановлення Коха, то ще потрібно |
|||
sudo systemctl restart memcached |
|||
= Налаштування = |
|||
Після встановлення рекомендується ознайомитися з такими статтями Wiki: |
|||
Щодо додаткових налаштувань та адаптацій див. тут: [[Налаштування Koha, встановленої з джерела]]. |
|||
= Див. також = |
|||
* Оновлення Koha. |
|||
* [[Встановлення Koha з джерела на ОС Debian]] |
|||
* Резервне копіювання Koha. |
|||
* [[Оновлення Koha, встановленої з джерела]] |
|||
* Перенесення Koha на інший сервер. |
|||
* [[Коротка інструкція для адміністратора АБІС Koha]] |
|||
* Налаштування електронної пошти. |
|||
* [[Короткий посібник користувача АБІС Koha]] |
|||
* Оптимізація продуктивності. |
|||
[[Category:АБІС Koha]] |
|||
* HTTPS та сертифікати Let's Encrypt. |
|||
* Elasticsearch. |
|||
* Plack. |
|||
* Cron-завдання. |
|||
Версія за 19:55, 8 липня 2026
Встановлення АБІС Koha з репозитарію на ОС Debian
Розглядається встановлення АБІС Koha версій 24.11–26.05 з репозитарію debian.koha-community.org на ОС Debian 13 (trixie) — поточному стабільному релізі Debian. На даний час це найбільш протестований і розповсюджений варіант. Окрім цього ще є варіант встановлення АБІС Koha з джерельних кодів, що є дещо більш гнучким щодо налаштування, але і складнішим.
Стан документа (редакція липень 2026 р.): перехід на Debian 13 (trixie) як основну ОС; актуалізовано таблицю версій Koha; пошуковим рушієм за замовчуванням у цій інструкції обрано Elasticsearch (з плагінами ICU та українського аналізатора) замість Zebra; варіант із патчем кирилиці для Zebra залишено нижче як legacy-альтернатива для тих, хто ще не перейшов. Номери версій Koha та Debian зсуваються що 6–24 місяці — перед встановленням звіряйте таблицю нижче з посиланнями на Koha Wiki.
Див. також
- Koha_on_Debian на Koha Wiki
- Koha & Debian на Koha Wiki
- Category:Installation на Koha Wiki
- Koha on ubuntu - packages на Koha Wiki
Встановлення ОС Debian GNU/Linux 13 (trixie)
Див. також:
- https://www.debian.org/releases/trixie/ — сторінка релізу Debian 13 trixie
- https://d-i.debian.org/manual/uk.amd64/index.html Debian GNU/Linux гайд інсталяції
Перевірка поточної версії Debian:
lsb_release -d
Щодо сумісності Коха з іншими версіями ОС див.
- Системні вимоги та рекомендації (англ.)
Примітка щодо Debian 12 (bookworm). Станом на липень 2026 р. bookworm має статус oldstable: Koha на ньому й далі працює і підтримується пакунками debian.koha-community.org, але нові інсталяції варто розгортати вже на trixie. Якщо йдеться не про нову інсталяцію, а про оновлення наявного сервера з bookworm на trixie — дотримуйтесь офіційного порядку: спершу довести bookworm до останніх оновлень, і лише тоді переходити на trixie (а не встановлювати систему „з нуля“).
Підключення гілок non-free та contrib для пакунків Дебіан
Перевіряємо у /etc/apt/sources.list чи підключені гілки non-free та contrib
sudo mc -e /etc/apt/sources.list deb http://deb.debian.org/debian/ trixie contrib main non-free non-free-firmware deb-src http://deb.debian.org/debian/ trixie contrib main non-free non-free-firmware deb http://deb.debian.org/debian/ trixie-updates contrib main non-free non-free-firmware deb-src http://deb.debian.org/debian/ trixie-updates contrib main non-free non-free-firmware deb http://deb.debian.org/debian/ trixie-proposed-updates contrib main non-free non-free-firmware deb-src http://deb.debian.org/debian/ trixie-proposed-updates contrib main non-free non-free-firmware deb http://deb.debian.org/debian/ trixie-backports contrib main non-free non-free-firmware deb-src http://deb.debian.org/debian/ trixie-backports contrib main non-free non-free-firmware deb http://deb.debian.org/debian-security/ trixie-security contrib main non-free non-free-firmware deb-src http://deb.debian.org/debian-security/ trixie-security contrib main non-free non-free-firmware sudo apt-get update sudo apt-get upgrade
Попередні налаштування
Локаль з UTF-8
Перевірка локалі:
sudo locale
у виводі повинно бути магічне „UTF-8“ (en.UTF-8 тощо), наприклад для України
LANG=uk_UA.UTF-8 LANGUAGE= LC_CTYPE="uk_UA.UTF-8" LC_NUMERIC="uk_UA.UTF-8" LC_TIME="uk_UA.UTF-8" LC_COLLATE="uk_UA.UTF-8" LC_MONETARY="uk_UA.UTF-8" LC_MESSAGES="uk_UA.UTF-8" LC_PAPER="uk_UA.UTF-8" LC_NAME="uk_UA.UTF-8" LC_ADDRESS="uk_UA.UTF-8" LC_TELEPHONE="uk_UA.UTF-8" LC_MEASUREMENT="uk_UA.UTF-8" LC_IDENTIFICATION="uk_UA.UTF-8"
Якщо UTF-8 не згадується, то встановлюємо локаль
apt install locales locales-all sudo /usr/sbin/update-locale LANG=uk_UA.UTF-8 LANGUAGE="uk_UA:uk"
Підключення репозитарію Koha
В репозитарії debian.koha-community.org доступні стабільні версії, які виходять 2 рази на рік (травень і листопад) і підтримуються 18–42 місяці залежно від того, LTS це реліз чи ні (https://wiki.koha-community.org/wiki/Koha_Versioning). Налаштування ключів:
sudo apt update sudo apt install apt-transport-https ca-certificates curl gnupg2 sudo mkdir -p --mode=0755 /etc/apt/keyrings sudo curl -fsSL https://debian.koha-community.org/koha/gpg.asc -o /etc/apt/keyrings/koha.asc
Якщо ви дотримуєтесь певного номера версії Koha, ви залишаєтесь на цій версії Koha, доки не буде змінено вихідні коди пакунків. Це рекомендується для виробничих середовищ, щоб "випадково" не оновитися до нового великого випуску. Коли ви запускаєте оновлення, ви оновлюєтесь лише до останнього випуску технічного обслуговування для обраної версії.
Поточні номери версій Koha та їхні статус (станом на липень 2026 р.; точні номери зсуваються щопівроку — звіряйте на Koha_on_Debian):
- 26.05 (stable) — поточний стабільний реліз
- 25.11 (oldstable) — на один реліз позаду поточного стабільного
- 25.05 (oldoldstable) — на два релізи позаду поточного стабільного
- 24.11 (LTS) — довготривала підтримка (Long Term Support), орієнтовно до травня 2028 р.
- 22.11 — попередня LTS-версія; підтримка добігає кінця, для нових інсталяцій вже не використовується
Щоб оновити список джерел пакетів для використання релізу 26.05:
sudo tee /etc/apt/sources.list.d/koha.sources <<EOF Types: deb URIs: https://debian.koha-community.org/koha/ Suites: 26.05 Components: main Signed-By: /etc/apt/keyrings/koha.asc EOF
Щоб оновити список джерел пакетів для використання LTS-релізу 24.11:
sudo tee /etc/apt/sources.list.d/koha.sources <<EOF Types: deb URIs: https://debian.koha-community.org/koha/ Suites: 24.11 Components: main Signed-By: /etc/apt/keyrings/koha.asc EOF
Замість номера версії можна вказати символьну назву (stable, oldstable, oldoldstable) — Suites стане, напр., stable. Для продакшн-середовища це не рекомендовано: при переході репозитарію на новий stable ви автоматично й без попереднього тестування отримаєте великий реліз з новими можливостями.
Примітка: якщо ви раніше використовували старий формат списку джерел APT, видаліть файл /etc/apt/sources.list.d/koha.list — одночасна наявність старого й нового форматів джерела для того самого репозитарію спричиняє конфлікти APT. Оновлюємо список доступних для встановлення пакунків
sudo apt update
Встановлення Koha
Встановлення пакунків Koha
sudo apt-get install koha-common koha-deps koha-perldeps koha-l10n koha-elasticsearch
Якщо під час встановлення виникають помилки конфігурації пакунка libapache2-mpm-itk, читаємо стандартну інструкцію про налаштування
less /usr/share/doc/koha-common/README.Debian
(у нових версіях можуть бути зміни; давніші застереження щодо mpm-itk з часів Ubuntu та старих випусків Debian на trixie здебільшого вже не актуальні, але README варто переглянути за потреби).
Встановлення БД MariaDB та допоміжних пакунків
На Debian 13 (trixie) типова СУБД для Koha — MariaDB (у репозитарії trixie немає пакунка mysql-server: Oracle не постачає його для Debian, тож MariaDB — фактично єдина реалістична опція).
sudo apt-get install mariadb-server sudo mysql_secure_installation
За винятком першого питання, на всі питання можна відповісти Так (“Y”). Необхідно встановити root пароль (надалі „ПарольАдмінаMySQL“)!
sudo apt-get install memcached libmemcached-tools sudo apt install aptitude sudo apt install php-twig sudo apt install phpmyadmin php libapache2-mod-php
- для „phpmyadmin“ вибрати (пробілом позначити зірочкою) лише „apache2“
- configure database for phpmyadmin with dbconfig-common? — так та встановити пароль застосунку
Типово phpmyadmin доступний за адресою http://localhost/phpmyadmin
Якщо потрібен доступ до phpmyadmin на іншому порті, то у файлі /etc/phpmyadmin/phpmyadmin.service змінити
... <port>8888</port> ...
та додати цей порт у файл /etc/apache2/ports.conf
Listen 8888
Перезапуск Apache
sudo systemctl restart apache2
По умовчанню вхід через phpmyadmin для root закрито. За потреби можна створити іншого користувача
mysql -u root -p CREATE USER 'sysadmin'@'localhost' IDENTIFIED BY 'парольдляsysadmin';
та надати йому привілеї на усі БД:
GRANT ALL PRIVILEGES ON *.* TO 'sysadmin'@'localhost' WITH GRANT OPTION; exit sudo systemctl restart mariadb
Пакунки з CPAN (лише за потреби)
Пріоритет — пакунки Debian та Koha (koha-deps, koha-perldeps): спільнота Koha прямо не рекомендує ставити perl-модулі напряму з CPAN на системах на базі Debian — тоді оновлення безпеки цих модулів лягає на вас особисто, а не на пакунковий менеджер дистрибутива. CPAN варто використовувати лише як крайній засіб, коли конкретного модуля немає ні в Debian, ні в репозитарії debian.koha-community.org.
Перелік відсутніх модулів дивимось на сторінці „Домівка > Про АБІС Koha > Модулі Perl“ вже після встановлення koha-common — залежності змінюються від версії до версії, тож наведений нижче перелік (актуальний станом на кінець 2023 р.) варто сприймати як приклад типових „проблемних“ пакунків, а не остаточний список:
- HTTPD::Bench::ApacheBench — перевірка в Debian: [1]
- Text::CSV::Unicode — перевірка в Debian: [2]
- Selenium::Remote::Driver — перевірка в Debian: [3]
- Locale::XGettext::TT2
- Test::PerlTidy
Якщо модуля дійсно немає в жодному репозитарії, встановлюємо командами (при першому використанні CPAN підтверджуємо автоматичне налаштування та підключення до Інтернету):
sudo apt-get install make libgdbm-dev apache2-dev libdatetimex-easy-perl sudo perl -MCPAN -e 'install HTTPD::Bench::ApacheBench' sudo perl -MCPAN -e 'install Test::Differences' sudo perl -MCPAN -e 'install Text::CSV::Unicode' sudo perl -MCPAN -e 'install Selenium::Remote::Driver' sudo perl -MCPAN -e 'install Locale::XGettext::TT2' sudo perl -MCPAN -e 'install Test::PerlTidy'
Налаштування Apache та сценарій „koha-post-install-setup“
1) Виконуємо сценарій
sudo koha-post-install-setup
(він задіює модулі Rewrite та Suexec для Apache) 2) Додатково задіюємо модулі Deflate, Cgi, headers, proxy_http
sudo a2enmod deflate sudo a2enmod rewrite sudo a2enmod cgi sudo a2enmod headers proxy_http
3) Редагуємо /etc/apache2/conf-available/charset.conf
AddCharset UTF-8 .utf8 AddDefaultCharset UTF-8
та задіюємо його
sudo a2enconf charset
4) Перезапуск Apache
sudo systemctl restart apache2
Створення екземпляра АБІС Koha
Варіанти налаштування АБІС Koha з доменами та портами
Варіант з портами 8080 та 8888 (тестовий)
Цей варіант зручно використовувати на початковому етапі, коли домен (порт 80) зайнято під інший сайт/сервіс.
koha-ukr-unimarc-site.conf
Створюємо файл
sudo mc -e /etc/koha/koha-ukr-unimarc-site.conf
наступного змісту
DOMAIN="localhost" # Change this to be your domain. Any instance will be a subdomain of this string. OPACPORT="8080" # TCP listening port for the users' interface (if you skip this, the apache default of 80 will be used) OPACPREFIX="" # For users' interface URL: Prefix to be added to the instance name. OPACSUFFIX="" # For users' interface URL: Suffix to be added to the instance name. INTRAPORT="8888" # TCP listening port for the administration interface INTRAPREFIX="" # For administration interface URL: Prefix to be added to the instance name. INTRASUFFIX="" # For administration interface URL: Suffix to be added to the instance name. ZEBRA_MARC_FORMAT="unimarc" # Specifies format of MARC records to be indexed by Zebra. Possible values are 'marc21', 'normarc' and 'unimarc'. ZEBRA_LANGUAGE="uk" # Primary language for Zebra indexing. Possible values are 'en', 'fr' and 'nb'. DEFAULTSQL="" # a value is generally not needed. BIBLIOS_INDEXING_MODE="dom" # Set the indexing mode for bibliographic records. Valid values are dom (default) and grs1. AUTHORITIES_INDEXING_MODE="dom" # Set the indexing mode for authority records. Valid values are dom (default) and grs1. USE_MEMCACHED="yes" # Set the instance to make use of memcache. MEMCACHED_SERVERS="127.0.0.1:11211" # Set a comma-separated list of host:port memcached servers. MEMCACHED_PREFIX="koha_" # Set the desired prefix for the instance memcached namespace. ENABLE_SRU="yes" # Enable the Z39.50/SRU server (default: disabled). SRU_SERVER_PORT="7090" # Specifiy a TCP port number for the Z39.50/SRU server to listen on. (default: 7090). ELASTICSEARCH_SERVER="127.0.0.1:9200" # Elasticsearch-сервер (host:port), який використовуватиме цей екземпляр.
ports.conf
Додаємо
Listen 8080 Listen 8888
у файл /etc/apache2/ports.conf Також перезапускаємо Apache
sudo systemctl restart apache2
Варіант з портами 80 та 8080
Цей варіант зручно використовувати, коли під АБІС Koha відведено окремий домен/сервер.
koha-ukr-unimarc-site.conf
/змінюється/ Створюємо файл
sudo mc -e /etc/koha/koha-ukr-unimarc-site.conf
наступного змісту
DOMAIN="localhost" # Change this to be your domain. Any instance will be a subdomain of this string. OPACPORT="80" # TCP listening port for the users' interface (if you skip this, the apache default of 80 will be used) OPACPREFIX="" # For users' interface URL: Prefix to be added to the instance name. OPACSUFFIX="" # For users' interface URL: Suffix to be added to the instance name. INTRAPORT="8080" # TCP listening port for the administration interface INTRAPREFIX="" # For administration interface URL: Prefix to be added to the instance name. INTRASUFFIX="" # For administration interface URL: Suffix to be added to the instance name. ZEBRA_MARC_FORMAT="unimarc" # Specifies format of MARC records to be indexed by Zebra. Possible values are 'marc21', 'normarc' and 'unimarc'. ZEBRA_LANGUAGE="uk" # Primary language for Zebra indexing. Possible values are 'en', 'fr' and 'nb'. DEFAULTSQL="" # a value is generally not needed. BIBLIOS_INDEXING_MODE="dom" # Set the indexing mode for bibliographic records. Valid values are dom (default) and grs1. AUTHORITIES_INDEXING_MODE="dom" # Set the indexing mode for authority records. Valid values are dom (default) and grs1. USE_MEMCACHED="yes" # Set the instance to make use of memcache. MEMCACHED_SERVERS="127.0.0.1:11211" # Set a comma-separated list of host:port memcached servers. MEMCACHED_PREFIX="koha_" # Set the desired prefix for the instance memcached namespace. ENABLE_SRU="yes" # Enable the Z39.50/SRU server (default: disabled). SRU_SERVER_PORT="7090" # Specifiy a TCP port number for the Z39.50/SRU server to listen on. (default: 7090). ELASTICSEARCH_SERVER="127.0.0.1:9200" # Elasticsearch-сервер (host:port), який використовуватиме цей екземпляр.
ports.conf
Додаємо
Listen 8080 Listen 8008
у файл /etc/apache2/ports.conf Порт 8008 додано для того щоб переспрямувати типовий віртуальний хост сервера Apache з порта 80 на порт 8008. Для цього редагуємо типовий файл /etc/apache2/sites-enabled/000-default.conf і змінюємо наступний рядок
<VirtualHost *:8008>
Також перезапускаємо Apache
sudo systemctl restart apache2
Варіант з доменами
Цей варіант для випадку, коли є можливість попередньо налаштувати для АБІС Koha 2 домени на кшталт
opac.librarydomain.ua staff.librarydomain.ua
Щодо налаштування див. тут https://wiki.koha-community.org/wiki/How_to_set_up_a_domain_name_for_Koha
Команда „koha-create“
Синтаксис команди для створення екземплярів АБІС Koha — на вікі та більш актуальний у коді на Git, а також через вбудовану довідку „koha-create --help“ (список нижче — орієнтовний, звіряйте з --help для вашої версії, оскільки перелік прапорців періодично змінюється):
koha-create [--create-db|--request-db|--populate-db|--use-db] \ [--marcflavor marc21(default)|normarc|unimarc] \ [--zebralang cs|el|en(default)|es|fr|nb|ru|uk] \ [--elasticsearch-server localhost:9200(default)] \ [--auth-idx dom(default)|grs1] \ [--biblio-idx dom (default)|grs1] \ [--use-memcached] \ [--memcached-servers 127.0.0.1:11211,host2:port2,...] \ [--memcached-prefix KOHA|koha_|...] \ [--enable-sru] \ [--sru-port 7090(default)|9998] \ [--defaultsql /path/to/some.sql] \ [--configfile /path/to/config] \ [--passwdfile /path/to/passwd] \ [--dbhost host] \ [--database dbname] \ [--adminuser admin_user_id_in_db] \ [--template-cache-dir /var/cache/koha/<instance>/templates(default)] \ [--timezone time/zone (America/Argentina)] \ [--upload-path /var/lib/koha/<instancename>/uploads(default)|...] \ [--tmp-path dir /var/lib/koha/<instance>/tmp(default)] \ [--letsencrypt] \ [--smtp-host host] \ [--smtp-port NN] \ [--smtp-timeout NN] \ [--smtp-ssl-mode mode [disabled(default)|ssl|starttls] \ [--smtp-user-name user] \ [--smtp-password pass] \ [--smtp-debug] \ [--mb-host localhost)default)] \ [--mb-port NN default: 61613] \ [--mb-user guest(default)] \ [--mb-pass guest(default)] \ [--mb-vhost koha_<instance>(default)] \ [--keep-cookie NAME] \ [--help,-h] \ instancename
Зауваження: довжина екземпляра Коха („instancename“) наразі обмежена 11 символами (див. [4], [5]). Екземпляр з назвою більшої довжини буде непрацездатним.
Зверніть увагу на прапорець --elasticsearch-server — він одразу прописує адресу ES-сервера в koha-conf.xml створюваного екземпляра (типово localhost:9200), що корисно тепер, коли Elasticsearch — основний рушій пошуку в цій інструкції.
Створення екземпляра АБІС Koha (українська, Unimarc)
sudo koha-create --create-db --configfile /etc/koha/koha-ukr-unimarc-site.conf ukr_unimarc
Вивід:
Koha instance is empty, no staff user created. Starting Koha worker daemon for ukr_unimarc (default):. Starting Koha indexing daemon for ukr_unimarc:.
Веб-встановлювач
Актуальні українські sql-файли
Частина локалізованих SQL-таблиць українською була долучена латкою https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=18537 у 2017 р. для версії Koha 17.05.05 та вище. Оновлення для українських SQL-таблиць доступні у Dropbox Сергія Дубика за адресою: 'https://www.dropbox.com/sh/nybt54x8yhh7frq/AACfsG32sJnBgNh1CdivXDjYa?dl=0' Тека SQL_Koha_25_05_0X_adds/uk-UA_additional/uk-UA містить оновлення, які необхідно скопіювати у теку uk-UA у /usr/share/koha/intranet/cgi-bin/installer/data/mysql Виконайте наступну команду
sudo find /usr/share/koha/intranet/cgi-bin/installer/data/mysql/uk-UA -type d -exec chmod ugo+x {} \;
щоб надати привілеї теці /usr/share/koha/intranet/cgi-bin/installer/data/mysql/uk-UA. Інакше інсталятор її не побачить.
Утворення локалізованих шаблонів
Спочатку дивимося перелік доступних мов
sudo koha-translate --list --available
Встановлюємо переклади для української
sudo koha-translate --install uk-UA
Ця команда також згенерує деякі перекладені дані для Коха (у форматі yaml-файлів) у теці
/usr/share/koha/intranet/cgi-bin/installer/data/mysql/uk-UA
разом з раніше скопійованими SQL-файлами. Примітка: sudo koha-translate --update uk-UA також генерує yaml-файли (потрібно при встановленні екземплярів Коха). Також можете встановити деякі інші мови інтерфейсу
sudo koha-translate --install pl-PL sudo koha-translate --install de-DE sudo koha-translate --install fr-FR sudo koha-translate --install it-IT sudo koha-translate --install cs-CZ sudo koha-translate --install bg-Cyrl …
Кроки веб-встановлювача
Типовий логін для екземляра напр. „ukr_unimarc“ буде:
koha_ukr_unimarc
Пароль та логін можна переглянути за допомогою:
sudo koha-passwd ukr_unimarc
або логін і пароль зберігаються у файлі /etc/koha/sites/ukr_unimarc/koha-conf.xml, у розділі config знаходимо користувача (user) та пароль (pass). Також побачити логін та пароль можна через команди
sudo xmlstarlet sel -t -v 'yazgfs/config/user' /etc/koha/sites/ukr_unimarc/koha-conf.xml sudo xmlstarlet sel -t -v 'yazgfs/config/pass' /etc/koha/sites/ukr_unimarc/koha-conf.xml
У веб-оглядачі переходимо за адресою http://localhost:8080/?language=uk-UA (чи http://localhost:8888/?language=uk-UA). Бачимо запит на авторизацію від веб-встановлювача. Крок 1: мова uk-UA, перевірка залежностей Крок 2: налаштування бази даних, перевірка з’єднання, існування БД та привілеїв Крок 3: створення таблиць, вибір МАРК-стандарту Unimarc (УкрМарк), вибір типових даних (послідовно вибираємо усі¹² дані, імпорт 1-10 хв.). ¹Які типові дані можна вимкнути:
- Приклади користувачів
- Приклади бібліотек/підрозділів
²Також варто вимкнути типову структуру unimarc_sample_fastadd_framework (вона конфліктує з unimarc_sample_fastadd_framework_FA_UKR) у блоці „Факультативне“.
Процес імпорту даних
Для імпорту даних Koha використовуватиме дані з теки /usr/share/koha/intranet/cgi-bin/installer/data/mysql/uk-UA. У цій теці будуть як дані, згенеровані самою Коха (у форматі yml-файлів) так і дані sql-скриптів (з набору Сергія Дубика). На 3 кроці слідкуємо за помилками при імпорті типових даних. Якщо є помилки — знаходимо відповідні sql-файли, виправляємо їх та імпортуємо вручну (напр., через phpmyadmin) або очищуємо таблиці і перезапускаємо веб-встановлювач. Також повідомляйте про sql-помилки Сергія Дубика, serhijdubykЖАБКАgmail.com. Для очищення таблиць (ОБЕРЕЖНО - БУДУТЬ ВИТЕРТІ УСІ ДАНІ з БД koha_ukr_unimarc) та перезапуску веб-встановлювача можна використати наступний bash-скрипт delete_all_data_in_db_koha_ukr_unimarc.sh:
#!/bin/bash # MySQL сервер та інформація про підключення INSTANCE="ukr_unimarc" MYSQL_USER="koha_"$INSTANCE MYSQL_PASSWORD="ваш_пароль" MYSQL_HOST="localhost" # або інший хост, на якому запущено MySQL MYSQL_DB="koha_"$INSTANCE # Вибір всіх таблиць в базі даних TABLES=$(mysql -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -h "$MYSQL_HOST" "$MYSQL_DB" -se "SHOW TABLES") # Вимкнення перевірки зовнішніх ключів mysql -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -h "$MYSQL_HOST" "$MYSQL_DB" -e "SET FOREIGN_KEY_CHECKS = 0;" # Цикл для виконання DELETE для кожної таблиці for table in $TABLES do mysql -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -h "$MYSQL_HOST" "$MYSQL_DB" -e "DELETE FROM $table;" done # Включення перевірки зовнішніх ключів mysql -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -h "$MYSQL_HOST" "$MYSQL_DB" -e "SET FOREIGN_KEY_CHECKS = 1;" echo "Всі дані з бази даних $MYSQL_DB були очищені." sudo systemctl restart koha-common sudo systemctl restart apache2 sudo systemctl restart mariadb sudo systemctl restart memcached koha-plack --restart $INSTANCE
Інколи, для кращого очищення, цей скрипт потрібно запускати повторно.
Помилка „Gateway Timeout“
Рідко, скоріш на повільних серверах, на 3-му кроці може з’являтися помилка „Gateway Timeout“. Спробуйте в налаштуваннях Apache (/etc/apache2/apache2.conf) виставити більший час (Timeout 1200), виконати
sudo systemctl restart apache2
та перезапустити веб-встановлювач (й попередньо очистити таблиці).
Адаптаційний етап
Створення бібліотеки/підрозділу
Створюємо свій підрозділ, напр.
Код бібліотеки/підрозділу: AB Найменування: Абонемент
Створення категорії користувачів
Якщо у sql-даних були вибрані типові категорії користувачів, то цей крок Коха пропустить.
Створення адміністратора Коха
Вводимо дані адміністратора Коха - прізвище, ім’я, номер читацького квитка, бібліотека / підрозділ, категорію користувача, логін, пароль.
Створення нового типу одиниць
Якщо у sql-даних були вибрані приклади типів одиниць, то цей крок Коха пропустить.
Створення нового правила обігу
Наприклад, вибираємо
Підрозділ бібліотеки: Абонемент Категорія користувача: Студент Тип одиниці: BOOK Поточна дозволена кількість видач: 50 Термін випозичання: 14 Одиниці: дні Продовження (дозволена кількість): 1
Встановлення завершено!
Вітаємо, Ви закінчили і готові до використання Коха
Пошуковий рушій: Elasticsearch (рекомендовано)
Koha підтримує два пошукові рушії, що перемикаються системною преференцією SearchEngine: Zebra (класичний, історично типовий) та Elasticsearch. У цій редакції інструкції за основний рушій обрано Elasticsearch — насамперед тому, що підтримка кирилиці/української реалізується штатними, підтримуваними Elastic-плагінами (ICU + офіційний плагін українського аналізатора), а не ручним патчем внутрішніх файлів Zebra, який доводиться повторно накладати після кожного оновлення пакунка koha-common.
Пакунок koha-elasticsearch ми вже встановили разом з іншими пакунками Koha на початку інструкції.
Встановлення сервера Elasticsearch
Koha станом на середину 2026 р. орієнтується на гілку Elasticsearch 8.x. Java (OpenJDK) для Elasticsearch зазвичай підтягується автоматично як залежність пакунка elasticsearch; за потреби додатково:
sudo apt install openjdk-21-jdk-headless
Підключаємо офіційний репозитарій Elastic та ключ:
sudo apt install apt-transport-https sudo curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch -o /etc/apt/keyrings/elasticsearch.asc sudo tee /etc/apt/sources.list.d/elasticsearch.sources <<EOF Types: deb URIs: https://artifacts.elastic.co/packages/8.x/apt Suites: stable Components: main Signed-By: /etc/apt/keyrings/elasticsearch.asc EOF sudo apt update sudo apt install elasticsearch
Під час встановлення пакунок покаже автоматично згенерований пароль вбудованого користувача elastic — за потреби (автентифікація/TLS) збережіть його; для одновузлової локальної інсталяції під Koha безпеку кластера зазвичай спрощують, див. офіційну документацію Elastic щодо мінімальної конфігурації для single-node. Запуск і автозапуск служби:
sudo systemctl enable --now elasticsearch
Перевірка:
curl -k https://localhost:9200 -u elastic
Плагіни ICU та українського аналізатора
Плагін analysis-icu Koha вимагає обов'язково — без нього індексація/пошук у Koha з увімкненим Elasticsearch не запрацюють коректно. Плагін analysis-ukrainian — офіційний плагін Elastic, що інтегрує лематизатор Lucene UkrainianMorfologikAnalyzer (проєкт Morfologik) і додає якісне визначення словоформ для української замість „сирої“ посимвольної токенізації.
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-ukrainian sudo systemctl restart elasticsearch
Плагін analysis-ukrainian надає ES-аналізатор з назвою ukrainian. Прив'язка цього аналізатора до конкретних полів у мапінгу, який Koha створює для індексів biblios/authorities, — це вже налаштування на рівні мапінгу Elasticsearch (Адміністрація → Search engine configuration, або пряме редагування YAML-мапінгу в коді Koha); універсального „одна команда і все запрацювало“ рецепта тут немає, тому перш ніж переносити зміни на прод — перевірте поведінку на тестовому екземплярі й звіряйтеся з актуальною сторінкою https://wiki.koha-community.org/wiki/Elasticsearch. Навіть без ручного тюнінгу мапінгу підключений icu_tokenizer уже суттєво покращує коректність токенізації кирилиці порівняно з типовим standard-аналізатором.
Особливість Debian 13 (trixie): HTTP::Tiny і TLS
На Debian 13 (trixie) через оновлену версію бібліотеки HTTP::Tiny (0.083+), яку постачає ОС, з'єднання Koha з Elasticsearch може обриватися помилками перевірки TLS-сертифіката, навіть якщо ви звертаєтесь до localhost. Рішення — додати до секції <elasticsearch> у /etc/koha/sites/ukr_unimarc/koha-conf.xml:
<elasticsearch>
<server>127.0.0.1:9200</server>
<index_name>koha_ukr_unimarc</index_name>
<handle_args>
<verify_SSL>0</verify_SSL>
</handle_args>
</elasticsearch>
Після зміни — перезапустіть Koha-служби для екземпляра (нижче, розділ „Включення Plack“ і сусідні).
Індексація та перемикання Koha на Elasticsearch
1) У пошуку системних преференцій відкриваємо SearchEngine (Адміністрація → Глобальні системні преференції → Пошук) і перемикаємо значення з Zebra на Elasticsearch. 2) Будуємо індекси для потрібного екземпляра:
sudo koha-elasticsearch --rebuild -b -a -v ukr_unimarc
(прапорці -b і -a — окремо бібліографічні та авторитетні записи; без них перебудує обидва) 3) Запускаємо/перевіряємо індексувальну службу ES для екземпляра:
sudo koha-es-indexer --start ukr_unimarc sudo koha-es-indexer --status ukr_unimarc
4) Перевірка результату: пошук символу * у каталозі має повернути весь фонд (у Zebra зірочка окремо як пошуковий термін не спрацьовує, в Elasticsearch — спрацьовує) — це швидкий індикатор, що Koha дійсно звертається до ES, а не залишилася на Zebra.
Служба Zebra (zebrasrv, індексувальний демон) на екземплярі, як і раніше, продовжує працювати у фоні навіть при увімкненому Elasticsearch — частина внутрішніх операцій Koha історично досі покладається на Zebra, тож вимикати її повністю не варто без окремого дослідження вашої версії Koha.
Альтернатива (legacy): Zebra з підтримкою кирилиці
Якщо з якихось причин потрібно залишитися на Zebra як основному рушії пошуку (наприклад, обмежені ресурси сервера — Elasticsearch помітно вимогливіший до RAM), нижче — перевірений роками спосіб підтримки кирилиці для Zebra. Без цього патчу пошук українською/кирилицею в Zebra або не працює, або дає некоректні результати.
Необхідно додати кириличні символи до файлу
/etc/koha/zebradb/etc/word-phrase-utf.chr
а саме виправити на наступне:
lowercase {0-9}{a-z}αβγδεζηθικλμνξοπρστυφχψωæäåąßćęłńóśøöüźżабвгдежзийклмнопрстуфхцчшщьыъэюяёєїґўі’
uppercase {0-9}{A-Z}ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩÆÄÅĄẞĆĘŁŃÓŚØÖÜŹŻАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯЁЄЇҐЎІ’
space {\001-\040}!"#$%&'\()*+,-./:;<=>?@\[\\]^_`\{|}~{\x88-\x89}{\x98-\x9C}
Без цієї зміни пошук або не буде працювати або даватиме некоректні результати. Також для коректного сортування кирилиці аналогічні зміни також потрібно внести і до файлу /etc/koha/zebradb/lang_defs/en/sort-string-utf.chr (наявність uk/sort-string-utf.chr наразі не дає бажаного результату). При оновленнях пакунка „koha-common“ також потрібно вносити ці зміни — це і є головний практичний недолік порівняно з Elasticsearch-варіантом вище: патч не переживає оновлення пакунка і його доводиться накладати заново щоразу.
Запуск служби Zebra
sudo koha-zebra --start ukr_unimarc
Запуск індексації Zebra
sudo koha-rebuild-zebra -f -v ukr_unimarc
Включення Plack
koha-plack --enable ukr_unimarc; koha-plack --start ukr_unimarc
Щодо продуктивності див. також тут:
Створення sitemap
koha-sitemap --enable ukr_unimarc koha-sitemap --generate ukr_unimarc
За замовчуванням надсилання пошти вимкнене. Це дозволяє спершу довести налаштування до ладу, перш ніж ризикувати надіслати небажані сповіщення користувачам. Щоб увімкнути пошту:
sudo koha-email-enable ukr_unimarc
Вимкнення оновлення Koha
Для більш контрольованого оновлення пакунків Коха можна тимчасово закоментувати рядок Suites (або весь блок) у /etc/apt/sources.list.d/koha.sources, напр.:
Types: deb URIs: https://debian.koha-community.org/koha/ # Suites: 26.05 Components: main Signed-By: /etc/apt/keyrings/koha.asc
Це дозволить легко оновлювати інші пакунки Debian, не зачіпаючи koha-common.
Виправлення проблем
Деколи стає відомо про проблему у поточній версії Koha. Зазвичай виправлення з’являється в наступній версії. Це у випадку, якщо про проблему повідомлено на баґтрекер Koha і знайдено й прийнято її вирішення (латка) до виходу наступної версії. Тут згадуватимуться проблеми й їх вирішення для поточних версій Koha (приклад актуальної на 2026 р. проблеми — TLS-помилка Elasticsearch на Debian 13, описана вище в розділі про Elasticsearch).
Див. також: Виправлення та вдосконалення для АБІС Koha, зроблені українською спільнотою АБІС Koha.
Оновлення Koha
Нова версія Koha виходить кожні шість місяців з набором нових функцій. Також кожен місяць виходять коригувальні оновлення. Оновлення проходить легко для варіанту встановлення Koha з пакунків Debian. Більш стабільними є версії Коха, що пройшли декілька коригувальних оновлень. Можна оновлювати Коху до версії з певної стабільної гілки. Напр., якщо потрібно оновити Коху до найновішої коригувальної версії у гілці 25.05, то у файлі /etc/apt/sources.list.d/koha.sources має бути наступне
Types: deb URIs: https://debian.koha-community.org/koha/ Suites: 25.05 Components: main Signed-By: /etc/apt/keyrings/koha.asc sudo apt-get update sudo apt-get upgrade sudo apt-get install koha-common
Деколи необхідно оновити ключ debian-сховища Koha:
sudo curl -fsSL https://debian.koha-community.org/koha/gpg.asc -o /etc/apt/keyrings/koha.asc
Для більшого контролю над наступними оновленнями Коха можна закоментувати рядок Suites у /etc/apt/sources.list.d/koha.sources (і розкоментовувати чи змінювати при ручному оновленні АБІС Koha) — див. розділ „Вимкнення оновлення Koha“ вище.
Якщо оновлюєте екземпляр, який уже перейшов на Elasticsearch (розділ вище), після встановлення нової версії koha-common доцільно одразу перевірити:
- чи не зникло (і не потребує повторного додавання) налаштування <verify_SSL>0</verify_SSL> у koha-conf.xml — деякі мажорні оновлення перегенеровують конфігураційні файли;
- чи не з'явилися нові поля в мапінгу ES, що потребують повної переіндексації (koha-elasticsearch --rebuild -f).
Встановлення/оновлення допоміжних perl-модулів
Після оновлення, перевіряємо в бібліотечному інтерфейсі сторінку „Домівка > Про АБІС Koha > Модулі Perl“. Ви можете побачити відсутні модулі Perl, виділені різними кольорами.
Пакунки з репозитарію Debian
Деякі згадувані тут пакунки могли бути відсутні у репозиторії Debian на момент підготовки пакунки з Koha. Пробуємо знайти відсутні пакунки через пошук https://www.debian.org/distrib/packages#search_packages Знайдені пакунки довстановлюємо
sudo apt-get install знайдений_пакунок
Напр.
sudo apt-get install libhttp-tiny-perl
Пакунки з CPAN
Perl-пакунки, наразі не пакетизовані й відсутні у репозитарії Debian, встановлюємо напряму з репозитарію perl-пакунків CPAN (див. застереження в розділі „Пакунки з CPAN (лише за потреби)“ вище — це крайній засіб, не типовий шлях).
sudo cpan install Test::DBIx::Class install Readonly::XS install HTTPD::Bench::ApacheBench
Оновлення локалізації
sudo koha-translate --update uk-UA
та, за потреби, інших мов (pl-PL, de-DE, fr-FR) Однак, при оновленні пакунків Koha локалізація оновлюється автоматично для усіх вибраних мов.
Вилучення Koha
Вилучення пакунка „koha-common“ не приводить до автоматичного вилучення екземплярів АБІС Koha. Попередньо необхідно зупинити та вилучити усі екземпляри АБІС Koha командами
sudo systemctl restart mariadb sudo systemctl restart apache2 sudo koha-zebra --stop ukr_unimarc sudo koha-indexer --stop ukr_unimarc sudo koha-es-indexer --stop ukr_unimarc sudo koha-plack --stop ukr_unimarc sudo koha-disable ukr_unimarc sudo koha-remove ukr_unimarc sudo /sbin/userdel ukr_unimarc-koha sudo /sbin/groupdel ukr_unimarc-koha sudo systemctl restart memcached
Якщо екземпляр використовував Elasticsearch і ви остаточно позбуваєтесь індексів, додатково видаліть індекс(и) цього екземпляра з Elasticsearch (типово мають назву на кшталт koha_ukr_unimarc_biblios, koha_ukr_unimarc_authorities):
curl -k -X DELETE "https://localhost:9200/koha_ukr_unimarc_*" -u elastic
Якщо Elasticsearch більше ніде на цьому сервері не потрібен (не використовується іншими екземплярами):
sudo systemctl stop elasticsearch sudo apt-get purge elasticsearch sudo rm -rf /var/lib/elasticsearch /etc/elasticsearch
Інколи виникає помилка userdel: user ukr_unimarc-koha is currently used by process 4793 /usr/sbin/deluser: `/usr/sbin/userdel ukr_unimarc-koha' returned error code 8. Див. https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=4880. Перегляд переліку наявних екземплярів
sudo koha-list
Остаточне вилучення пакунків Koha
sudo apt-get purge koha-common koha-deps koha-perldeps koha-elasticsearch
Перевірте також теки:
/var/spool/koha /var/log/koha /var/lib/koha /var/cache/koha /usr/share/koha /etc/koha
Можна очистити вміст цих тек щодо екземпляру ukr_unimarc
rm -rf /var/spool/koha/ukr_unimarc rm -rf /var/log/koha/ukr_unimarc rm -rf /var/lib/koha/ukr_unimarc rm -rf /var/cache/koha/ukr_unimarc
У випадку якщо це був останній екземпляр та Вам не потрібна тека /usr/share/koha, то вилучайте й повністю теку /usr/share/koha
rm -rf /usr/share/koha
Примітка: Теку /usr/share/koha мала вилучити команда „apt-get purge koha-common“, однак там могли залишитися файли перекладів чи інші ваші зміни чи долучені файли. У теці /etc/koha команда „apt-get purge koha-common“ також вилучила більшість файлів. Залишилася тека /etc/koha/sites/ukr_unimarc, її вилучаємо
rm -rf /etc/koha/sites/ukr_unimarc
Також там могли зберегтися конфіг налаштування екземпляра (/etc/koha/koha-ukr-unimarc-site.conf) та інші ваші зміни. Якщо нічого з цього не потрібно, то вилучаємо теку /etc/koha/
rm -rf /etc/koha
Вилучення налаштувань для веб-сервера Apache2
rm /etc/apache2/sites-enabled/ukr_unimarc.conf rm /etc/apache2/sites-available/ukr_unimarc.conf
Якщо після видалення планується перевстановлення Коха, то ще потрібно
sudo systemctl restart memcached
Налаштування
Щодо додаткових налаштувань та адаптацій див. тут: Налаштування Koha, встановленої з джерела.