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

Матеріал з Koha Ukraine Wiki
Перейти до навігації Перейти до пошуку
Рядок 162: Рядок 162:
За винятком першого питання, на всі питання можна відповісти Так (“'''Y'''”). Необхідно встановити root пароль (надалі „ПарольАдмінаMySQL“)!
За винятком першого питання, на всі питання можна відповісти Так (“'''Y'''”). Необхідно встановити root пароль (надалі „ПарольАдмінаMySQL“)!


sudo apt-get install \
sudo apt-get install \
phpmyadmin \
phpmyadmin \
memcached libmemcached-tools
memcached libmemcached-tools



* для „phpmyadmin“ вибрати (позначити зірочкою) лише „apache2“
* для „phpmyadmin“ вибрати (позначити зірочкою) лише „apache2“

Версія за 10:06, 17 червня 2019

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

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

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

Див. також

Встановлення ОС 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“ нагадати системі пароль адміна MySQL а також встановити пароль застосунку

У файлі /etc/phpmyadmin/phpmyadmin.service змінити порт

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

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

Listen 8888

Перезапуск Apache

sudo /etc/init.d/apache2 restart

Пакунки з CPAN

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

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

  • Readonly::XS (0.01), перевірка в Debian: [1]).
  • HTTPD::Bench::ApacheBench (0.73), перевірка в Debian: [2]).
  • Test::DBIx::Class (0.42), перевірка в Debian: [3]).
  • WebService::ILS (0.07), перевірка в Debian: [4]).

Встановлюємо командами

sudo aptitude install libgdbm-dev apache2-dev
sudo  perl -MCPAN -e 'install Readonly::XS'

— встановлено, вивід —

Readonly::XS is up to date (1.05).

Чомусь є ще зауваження про пакунок Readonly::XS, хоча він і повинен бути встановлений командою вище (?).

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

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

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

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

NEWELLC/Test-DBIx-Class-0.52.tar.gz
make install  -- OK
sudo  perl -MCPAN -e 'install WebService::ILS'

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

SRDJAN/WebService-ILS-0.14.tar.gz
./Build install  -- OK

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


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

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

sudo koha-post-install-setup

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

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

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 символами (див. [5], [6]). Екземпляр з назвою більшої довжини буде непрацездатним.

Створення екземпляра АБІС 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_18_11.00/uk-UA_SQL_Koha_18_11.00.zip теку uk-UA у /usr/share/koha/intranet/cgi-bin/installer/data/mysql (теку /usr/share/koha/intranet/cgi-bin/installer/data/mysql/uk-UA, що йде з встановлювачем попередньо вилучаємо).

Однак зараз рекомендується використовувати українські SQL-таблиці, що йдуть з інсталятором, а вилучені зміни додавати пізніше після встановлення.

Частково ці зміни зібрані у файлі uk-UA_18_11_00_additional.zip (Dropbox). Ці доповнення підходять і для версій Koha 18.11.x.

Примітка: локалізація 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) та перезапустити веб-встановлювач. Якщо була така помилка, то скоріш всього sql-дані вставилися в БД частково і веб-встановлювач може видавати помилку на кшталт

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

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

mysql -u root -p
DROP DATABASE koha_ukr_unimarc;
DROP USER 'koha_ukr_unimarc'@'localhost';
quit

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

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

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

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

Однак команда „sudo /etc/init.d/memcached restart“ вирішує цю проблему.

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

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

Див. також