Встановлення Koha з репозитарію на ОС Debian

From Koha Ukraine Wiki
Revision as of 10:21, 17 June 2019 by Dubyk (Talk | contribs)

Jump to: navigation, search

Розглядається встановлення АБІС Koha версії 19.05.x з репозитарію debian.koha-community.org.

На даний час це найбільш протестований і розповсюджений варіант.

Окрім цього ще є варіант встановлення АБІС Koha з джерельних кодів, що є дещо більш гнучким щодо налаштування.

Див. також

Contents

Встановлення ОС Debian GNU/Linux 9 Stretch

Детальніше: Встановлення ОС Debian Linux.

Швидкий варіант для нетерплячих

echo 'deb http://debian.koha-community.org/koha stable main' | sudo tee /etc/apt/sources.list.d/koha.list; wget -O- http://debian.koha-community.org/koha/gpg.asc | sudo apt-key add -; sudo apt-get update
sudo apt-get install koha-common mysql-server memcached libmemcached-tools libgdbm-dev apache2-dev libreadonly-xs-perl 
sudo  perl -MCPAN -e 'install HTTPD::Bench::ApacheBench'; sudo  perl -MCPAN -e 'install Test::DBIx::Class'; sudo  perl -MCPAN -e 'install WebService::ILS'
sudo koha-post-install-setup; sudo a2enmod cgi; sudo a2enmod headers proxy_http; sudo a2enconf charset; sudo /etc/init.d/apache2 restart

Попередні налаштування

Локаль з UTF-8

Перевірка локалі:

 sudo locale

у виводі повинно бути магічне „UTF-8“ (en.UTF-8,ru_RU.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 не згадується, то встановлюємо локаль

  sudo /usr/sbin/update-locale LANG=uk_UA.UTF-8 LANGUAGE="uk_UA:uk"

Підкючення гілок non-free та contrib для пакунків Дебіен

Перевіряємо у /etc/apt/sources.list чи підключені гілки non-free та contrib

sudo mc -e /etc/apt/sources.list
deb     http://security.debian.org/ stretch/updates main contrib
deb-src http://security.debian.org/ stretch/updates main contrib

deb     http://debian.org.ua/debian/ stretch main contrib non-free
deb-src http://debian.org.ua/debian/ stretch main contrib non-free

sudo apt-get update
sudo apt-get upgrade


Підключення репозитарію Koha

В репозитарії debian.koha-community.org доступні стабільна та розробницька версії.

Підключаємо у файлі /etc/apt/sources.list стабільну версію (рекомендується)

deb http://debian.koha-community.org/koha stable main

(доступні й інші версії, див. тут http://debian.koha-community.org/koha/dists/)

Швидко підключити репозитарій Koha можна командою

echo 'deb http://debian.koha-community.org/koha stable main' | sudo tee /etc/apt/sources.list.d/koha.list
   

Також додаємо ключ gpg.asc до довірених ключів APT:

wget -O- http://debian.koha-community.org/koha/gpg.asc | sudo apt-key add -

Оновлюємо список доступних для встановлення пакунків

sudo apt-get update

Встановлення Koha

Встановлення пакунків Koha

sudo apt-get install koha-common koha-deps koha-perldeps koha-elasticsearch

Може бути помилка з конфігурацією пакунка libapache2-mpm-itk, див. рішення тут https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=734865 та https://wiki.koha-community.org/wiki/Koha_on_Debian#Aside:_a_common_problem_on_Ubuntu_happens_here

Якщо далі щось піде не так, читаємо стандартну інструкцію про налаштування

less /usr/share/doc/koha-common/README.Debian

(у нових версіях можуть бути зміни)

Встановлення БД MySQL та допоміжних пакунків

sudo apt-get install mariadb-server 
sudo mysql_secure_installation

За винятком першого питання, на всі питання можна відповісти Так (“Y”). Необхідно встановити root пароль (надалі „ПарольАдмінаMySQL“)!

sudo apt-get install \
phpmyadmin \
memcached libmemcached-tools
  • для „phpmyadmin“ вибрати (позначити зірочкою) лише „apache2“
  • при встановленні „phpmyadmin“ встановити пароль застосунку

Типово phpmyadmin доступний за адресою http://localhost/phpmyadmin

Якщо потрібен доступ до phpmyadmin на іншому порті, то у файлі /etc/phpmyadmin/phpmyadmin.service змінити

...
<port>8888</port>
...

та додати цей порт у файл /etc/apache2/ports.conf

Listen 8888

Перезапуск Apache

sudo /etc/init.d/apache2 restart

По умовчанню вхід через phphmyadmin для root закрито. За потреби можна створити іншого користувача

mysql -u root -p
CREATE USER 'sysadmin'@'localhost' IDENTIFIED BY 'парольдляsysadmin';

та надати йому привілеї на усі БД:

GRANT ALL PRIVILEGES ON *.* TO 'sysadmin'@'localhost' WITH GRANT OPTION;
exit

Пакунки з CPAN

Пакунки, яких немає у репозитаріях Debian чи Koha, встановлюємо з CPAN.

Станом на 17.06.2019 необхідні модулі


  • HTTPD::Bench::ApacheBench (0.73), перевірка в Debian: [1]).
  • Test::DBIx::Class (0.42), перевірка в Debian: [2]).


  • Text::CSV::Unicode (0.40) (перевірити)
  • Selenium::Remote::Driver (1.27) (перевірити)

Встановлюємо командами (при цьому, якщо це перше використання CPAN, підтверджуємо автоматичне налаштування та підключення до Інтернет) :

sudo  perl -MCPAN -e 'install HTTPD::Bench::ApacheBench'

— встановився, вивід —

ADIRAJ/ApacheBench-0.73.tar.gz
make install  -- OK
sudo apt-get install libgdbm-dev apache2-dev
sudo  perl -MCPAN -e 'install Test::DBIx::Class'

— встановився, вивід —

NEWELLC/Test-DBIx-Class-0.52.tar.gz
make install  -- OK



Налаштування Apache та сценарій „koha-post-install-setup“

1) Виконуємо сценарій

sudo koha-post-install-setup

(він задіює модулі Rewrite та Suexec для Apache)

2) Додатково задіюємо модулі Cgi, headers, proxy_http

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 /etc/init.d/apache2 restart

Створення екземпляра АБІС 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).
ports.conf

Додаємо

Listen 8080
Listen 8888

у файл /etc/apache2/ports.conf

Також перезапускаємо Apache

sudo /etc/init.d/apache2 restart

Варіант з портами 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).
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 /etc/init.d/apache2 restart

Варіант з доменами

Цей варіант для випадку, коли є можливість попередньо налаштувати для АБІС 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“:

koha-create [--create-db|--request-db|--populate-db|--use-db] \
  [--marcflavor marc21(default)|normarc|unimarc] \
  [--zebralang  cs|en(default)|es|fr|gr|nb|ru|uk] \
  [--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] \
  [--database   dbname]  \
  [--adminuser admin_user_id_in_db] \
  [--upload-path /var/lib/koha/<instancename>/uploads(default)|...]
  [--letsencrypt]
  instancename

Зауваження: довжина екземпляра Коха („instancename“) наразі обмежена 11 символами (див. [3], [4]). Екземпляр з назвою більшої довжини буде непрацездатним.

Створення екземпляра АБІС 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 Zebra server for ukr_unimarc
[ ok ] 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-таблиць доступні у DrobBox Сергія Дубика за адресою:

'https://www.dropbox.com/sh/nybt54x8yhh7frq/AACfsG32sJnBgNh1CdivXDjYa?dl=0'

Тека SQL_Koha_19_05_0X_adds/uk-UA_additional/uk-UA (або у архіві SQL_Koha_19_05_0X_adds/uk-UA_additional.zip) містить оновлення, які необхідно накласти та теку uk-UA у /usr/share/koha/intranet/cgi-bin/installer/data/mysql

(Теку /usr/share/koha/intranet/cgi-bin/installer/data/mysql/uk-UA не витираємо, лише дописуємо (копіюємо зі заміною) оновлення з DrobBox).

Примітка: локалізація SQL-таблиць російською ru-RU доступна лише для версії 3.4.х.

Утворення локалізованих шаблонів

Спочатку дивимося перелік доступних мов

sudo koha-translate --list --available

Встановлюємо переклади для української та російської

sudo koha-translate --install uk-UA
sudo koha-translate --install ru-RU

та декілька інших

sudo koha-translate --install pl-PL 
sudo koha-translate --install be-BY
…

Кроки веб-встановлювача

У файлі /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

або

sudo koha-passwd ukr_unimarc

У веб-оглядачі переходимо за адресою http://localhost:8080/?language=uk-UA (чи http://localhost:8888/?language=uk-UA). Бачимо запит на авторизацію від веб-встановлювача.

Крок 1: мова uk-UA, перевірка залежностей

Крок 2: налаштування бази даних, перевірка з’єднання, існування БД та привілеїв

Крок 3: створення таблиць, вибір МАРК-стандарту Unimarc (УкрМарк), вибір типових даних (послідовно вибираємо усі дані).

На 3 кроці слідкуємо за помилками при імпорті типових даних. Якщо є помилки — знаходимо відповідні sql-файли, виправляємо їх та імпортуємо вручну (напр., через phpmyadmin). Також повідомляйте про sql-помилки Сергія Дубика, serhijdubykЖАБКАgmail.com.

Встановлення завершено!

Помилка „Gateway Timeout“

Рідко, скоріш на повільних серверах, на 3-му кроці може з’являтися помилка „Gateway Timeout“. Спробуйте в налаштуваннях Apache (/etc/apache2/apache2.conf) виставити більший час (Timeout 1200), виконати

sudo /etc/init.d/apache2 restart

та перезапустити веб-встановлювач.

Якщо була така помилка, то скоріш всього sql-дані вставилися в БД частково і веб-встановлювач може видавати помилку на кшталт

DBIx::Class::Storage::DBI::_dbh_execute(): Duplicate entry '380-55' for key 'PRIMARY' at /usr/share/koha/lib/Koha/SearchField.pm line 38

У такому випадку необхідно

1 варіант)

Очистити БД і наново запустити веб-встановлювач:

mysql -u root -p
DROP DATABASE koha_ukr_unimarc;
DROP USER 'koha_ukr_unimarc'@'localhost';
quit
sudo /etc/init.d/mysql restart
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/memcached restart
sudo koha-zebra --stop ukr_unimarc
sudo koha-disable ukr_unimarc
sudo koha-remove ukr_unimarc
sudo userdel ukr_unimarc-koha
sudo groupdel ukr_unimarc-koha
sudo koha-create  --create-db  --configfile /etc/koha/koha-ukr-unimarc-site.conf   ukr_unimarc

2 варіант)

Простіший варіант drop-ання усіх таблиць (згадується тут https://www.cyberciti.biz/faq/how-do-i-empty-mysql-database/) а не цілої БД. Тоді не потрібно перевстановлювати екземпляр Koha.

Через phpmyadmin виділити усі таблиці у БД koha_ukr_unimarc, та вибрати „Знищити“ їх (знімаємо галочуку „Enable foreign key checks“).

Перед кроками веб-встановлювача перезапускаємо

sudo /etc/init.d/memcached restart

оскільки може бути помиока

DBIx::Class::Storage::DBI::catch {...} (): DBI Connection failed: Access denied for user 'koha_ukr_unimarc'@'localhost' (using password: YES) at /usr/share/perl5/DBIx/Class/Storage/DBI.pm line 1520. at /usr/share/koha/lib/Koha/Database.pm line 100

(створюється новий пароль для koha_ukr_unimarc і веб-встановлювач може видавати помилку)

Далі знову проходимо кроки веб-встановлювача.

Підтримка кирилиці рушієм пошуку 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“ також потрібно вносити ці зміни.

Запуск служби 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

Щодо продуктивності див. також тут:

E-mail

By default, email is turned off. This is to let you get everything set up before you risk sending unwanted notices to people. To turn email on:

sudo koha-email-enable ukr_unimarc

Виправлення проблем

Деколи стає відомо про проблему у поточній версії Koha. Зазвичай виправлення з’являється в наступній версії. Це у випадку, якщо про проблему повідомлено на баґгтрекар Koha і знайдено й прийнято її вирішення (латка) до виходу наступної версії. Тут згадуватимуться проблеми й їх вирішення для поточних версій Koha.

Див. також: Виправлення та вдосконалення для АБІС Koha, зроблені українською спільнотою АБІС Koha.

Оновлення Koha

Нова версія Koha виходить кожні шість місяців з набором нових функцій. Також кожен місяць виходять коригувальні оновлення.

Оновлення проходить легко для варіанту встановлення Koha з пакунків Debian.

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install koha-common

Деколи необхідно оновити ключ debian-сховища Koha.

wget -O- http://debian.koha-community.org/koha/gpg.asc | sudo apt-key add -

Встановлення/оновлення допоміжних perl-модулів

Після оновлення, перевіряємо в бібліотечному інтерфейсі сторінку „Домівка > Про АБІС Koha > Модулі Perl“.

Ви можете побачити відсутні модулі Perl, виділені різними кольорами,

Пакунки з репозитарію Debian

Деякі згадувані тут пакунки могли бути відсутні у репозиторії Debian на момент підготовки пакунки з Koha. Пробуємо знайти відсутні пакунки через пошук https://www.debian.org/distrib/packages#search_packages

Знайдені пакунки довстановлюємо

sudo apt-get install знайдений_пакунок

Пакунки з CPAN

Perl-пакунки, наразі не пакетизовані й відсутні у репозитарії Debian, встановлюємо напряму з репозитарію perl-пакунків CPAN.

Наприклад, при оновлення до 16.11:

(perl-пакунок „Test::DBIx::Class“ також вимагав встановлення debian-пакунка „apache2-dev“)

sudo cpan
install Test::DBIx::Class
install Readonly::XS
install HTTPD::Bench::ApacheBench

Оновлення локалізації

sudo koha-translate --update uk-UA

та, за потреби, інших мов (ru-RU, pl-PL, be-BY)

Однак, при оновленні пакунків Koha локалізація оновлюється автоматично для усіх вибраних мов.

Вилучення Koha

Вилучення пакунка „koha-common“ не приводить до автоматичного вилучення екземплярів АБІС Koha. Попередньо необхідно зупинити та вилучити усі екземпляри АБІС Koha командами

sudo /etc/init.d/mysql restart
sudo /etc/init.d/apache2 restart
sudo koha-zebra --stop ukr_unimarc
sudo koha-disable ukr_unimarc
sudo koha-remove ukr_unimarc
sudo userdel ukr_unimarc-koha
sudo groupdel ukr_unimarc-koha
sudo /etc/init.d/memcached restart

Перегляд переліку наявних екземплярів

sudo koha-list

Остаточне вилучення пакунків Koha

sudo apt-get purge koha koha-common

Налаштування

Щодо додаткових налаштувань та адаптацій див. тут: Налаштування Koha, встановленої з джерела.

Див. також