Risuaidalla (#) merkityt rivit ovat komentoja, jotka ajetaan root:na. Dollarilla ($) merkityt rivit ajetaan tyypillisesti koha-tunnuksella. Tässä ohjeessa oletetaan, että Koha asennetaan /var-hakemistoon. Säädä tarpeen mukaan.

HUOM. tämä on kesken!

Linkkejä ohjeisiin, joihin osa tämän sivun ohjeista perustuu:

https://wiki.koha-community.org/wiki/Koha_on_ubuntu_-_git

https://tiketti.koha-suomi.fi:83/projects/smd/wiki/Setting_up_KohaSuomi_git_repository

https://github.com/KohaSuomi/Koha

Esivalmistelut

$ ssh root@localhost

Asenna Git ja Emacs

# apt-get install git git-email emacs24 make lynx

Lataa Koha-lähdekoodit:

# cd /var
# git clone --recursive [email protected]:NatLibFi/Koha.git kohaclone

Asenna Kohan tarvitsemat paketit:

# apt-get install libconfig-simple-perl # testaamaton, mutta ajoissa tehtynä saatettaisiin täältä saada toivottu 4.59.x versio cpanista tulevan 4.58:n sijaan
# apt-get install libyaz4 libyaz4-dev

Perl-valmistelua:

# cpan install CPAN
# cpan install ZOOM

Asenna cpanm, tästä on hyötyä, jos jotain joutuu poistamaan ja asentamaan uudelleen eri version

# cpan install App::cpanminus

MariaDB 10.x: seuraa ohjeita sivulla https://downloads.mariadb.org/mariadb/repositories/#mirror=netinch&distro=Ubuntu&distro_release=xenial--ubuntu_xenial&version=10.2

Tarkista puuttuvien Perl-modulien tilanne

# cd $KOHA_HOME/kohaclone
# ./koha_perl_deps.pl -m -u

Asenna puuttuvat modulit (keskeytä ctrl-c:llä ja yritä uudelleen, jos ei mene läpi):

# for i in `./koha_perl_deps.pl -m -u | perl -pe 's/ .*//;' | egrep "::"`; do echo $i; cpan install $i; done

Tämä ei näkynyt listassa, mutta OAI-PMH -serveri tarvitsee: (TIMBRODY HTTP::OAI::Headers). Samaten libxml-xslt-perl  voi olla tarpeen.

# cpan install HTTP::OAI::Headers
#
apt-get install lib{www-curl,test-exception,xml-xslt}-perl libcurl3 pkg-config
#
cpan install Git
# cpan install LORN/LWP-Curl-0.12.tar.gz # (tämä oli vaadittu versio, mutta voi toimia uudemmallakin)

Readonly::XS jää listaan, mutta se ei ole pakollinen ja uudempi versio on kyllä jo asennettu.

Luo tietokanta

# mysql -u root
CREATE DATABASE koha;
CREATE user 'kohaadmin'@'localhost' IDENTIFIED by '{koha user password}'; GRANT ALL ON koha.* TO 'kohaadmin'@'localhost' IDENTIFIED BY '{koha user password}'; FLUSH PRIVILEGES; QUIT

Kohan asennus

(muokattu https://wiki.koha-community.org/wiki/Koha_on_ubuntu_-_git -dokumentista):

installation mode: dev
configuration directory: /var/koha-dev
database owner password: {koha user password}
zebra tokenization/normalization: icu

# cd /var/kohaclone
# export __KOHA_USER__=$USER
# export __KOHA_GROUP__=$USER
# perl Makefile.PL
# make
# make test
# make install
# sudo nano /etc/environment


/etc/environment:

/etc/environment
KOHA_CONF=/var/koha-dev/etc/koha-conf.xml
KOHA_PATH=/var/kohaclone
PERL5LIB=/var/kohaclone

Kirjaudu ulos ja takaisin, jotta asetukset tulevat voimaan.

# ln -s /var/koha-dev/etc/koha-httpd.conf /etc/apache2/sites-available/koha.conf
# nano /etc/apache2/sites-available/koha.conf

Muokkaa VirtualHostit niin, että kuunnellaan kaikkia IP-osoitteita:

<VirtualHost *:80>

ja

<VirtualHost *:8080>

# nano /etc/apache2/ports.conf

Listen 80 
Listen 8080

<IfModule ssl_module>
        Listen 443
        Listen 8443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
        Listen 8443
</IfModule>

# a2dissite 000-default
# a2ensite koha
# a2enmod deflate
# a2enmod cgi
# a2enmod ssl
# a2enmod rewrite
# a2ensite koha

# systemctl restart apache2
# lynx http://127.0.1.1:8080

Vaihtoehtona viimeiselle kohdalle on suorittaa automaattinen asennus tai web installation ssh-putken kautta paremmalla selaimella. Ks. Web Installation alempata.

Elasticsearch

Huom! Elasticsearch korvaa Zebran ja koha-index-daemonin.

Huom! Jos jokin cpan-asennuskomento epäonnistuu, kokeile toisen kerran..

# apt-get install apt-transport-https
# wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
# echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
# apt-get update
# apt-get install libcatmandu-perl/xenial libcatmandu-marc-perl/xenial openjdk-8-jre-headless curl
# cpan install Catmandu::Store::ElasticSearch Catmandu::MARC Catmandu::Fix::marc_spec
# apt-get install elasticsearch
# /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
# systemctl daemon-reload
# systemctl enable elasticsearch
# systemctl start elasticsearch
# curl -XPUT "http://localhost:9200/_cluster/settings" -d '{"persistent":{"action.auto_create_index":false}}'

Päivitä seuraava lohko /var/koha-dev/etc/koha-conf.xml:ään <config> -tagin sisällä:

 <elasticsearch>
     <server>localhost:9200</server>      <!-- may be repeated to include all servers on your cluster -->
     <index_name>koha_[tietokannan nimi]</index_name>  <!-- should be unique amongst all the indices on your cluster. _biblios and _authorities will be appended. -->
 </elasticsearch>

Kirjaudu virkailijaliittymään ja käy osoitteessa /cgi-bin/koha/admin/searchengine/elasticsearch/mappings.pl?op=reset&i_know_what_i_am_doing=1&reset_fields=1

Aja uudelleenindeksointi (kyllä, -v kahteen kertaan ja huom! -d tiputtaa vanhan indeksin ensin ja luo uuden ajantasaisilla määrityksillä):

$ cd /tmp; /var/kohaclone/misc/search_tools/rebuild_elastic_search.pl -a -b -v -v -c 25000 -d > index.log

Edistymistä voi seurata index.log:sta. Ei kannata tulostaa suoraan konsoliin, koska -v -parametri tulostaa jokaisen tietuenumeron, ja konsoliin tulostaminen on hidasta.

Vaihda Kohan asetuksista SearchEngine Elasticsearch:ksi.

Aja myös seuraava komento haun maksimikoon kasvattamiseksi:

$ curl -XPUT "http://localhost:9200/koha_xyz_biblios/_settings" -d '{ "index" : { "max_result_window" : 500000 } }'

Jos on tarpeen poistaa ES:n indeksi ja aloittaa alusta, onnistuu se käyttämällä rebuild_elastic_search.pl:n parametria -d tai komentoriviltä komennolla:

$ curl -XDELETE 'http://localhost:9200/koha_xyz_biblios'

Poisto tapahtuu viiveellä, joten kannattaa varmistaa, että indeksi on poistunut ennen uutta indeksointia:

$ curl 'http://localhost:9200/_cat/indices?v'

Elasticsearch:n päivittäminen

Elasticsearchiin on asennettu analysis-icu -plugin. Jos Elasticsearch päivittyy käyttöjärjestelmän päivitysten mukana, voi olla, ettei tuo plugin enää ole yhteensopiva. Siitä seuraa tämän tyyppinen viesti /var/log/elasticsearch/elasticsearch.log:ssa:

[2017-11-20T10:28:18,174][ERROR][o.e.b.Bootstrap          ] Exception
java.lang.IllegalArgumentException: plugin [analysis-icu] is incompatible with version [5.6.4]; was designed for version [5.6.3]


Pluginin saa päivitettyä seuraavalla komennolla:

# /usr/share/elasticsearch/bin/elasticsearch-plugin remove analysis-icu; /usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu

Sitten vaan Elasticsearch uudelleen käyntiin:

# systemctl restart elasticsearch

Plack-asennus vasteaikojen nopeuttamiseen

# apt-get install starman
# ln -s /var/koha-dev/bin/koha-plack-daemon.sh /etc/init.d/koha-plack-daemon
# update-rc.d koha-plack-daemon defaults
# systemctl start koha-plack-daemon
# a2enmod headers proxy_http
# systemctl restart apache2

Huom! Jos Plackin asennuksen jälkeen on vaikeuksia saada Configuration-kohdan muutoksia heti näkymään, voi Plackin käynnistää uudelleen:

# systemctl restart koha-plack-daemon

Web Installation

Sitten kun asennuksen kanssa pitäisi edetä, tunneloi 8080 localhostin porttiin 9999:

ssh -L 9999:localhost:8080 tunnus@koha-palvelin

# a2enmod ssl
# a2enmod rewrite
# systemctl reload apache2

Tällöin http://localhost:9999/ vie installeriin

Web-installerin vaihtoehtona on /var/kohaclone/installer/install_automatic.pl, joka tekee asennuksen komentoriviltä.

iptables-muutokset:

# apt-get install iptables-persistent

# iptables-save > /tmp/iptables.txt

# emacs /tmp/iptables # muokkaa lisää pääsyt esmes porteista 443:sta, 8443, 9998 ja 9999

# iptables-restore /tmp/iptables.txt

# netfilter-persistent save # talleta

MariaDB:n asetukset

Oletusasetuksilla MariaDB:llä on vähän muistia jne. Vähintään seuraavat asetukset /etc/mysql/mariadb.conf.d/51-koha.cnf -tiedostoon:

[mysqld]
innodb_buffer_pool_size = 512M

Katso myös https://wiki.koha-community.org/wiki/Koha_Tuning_Guide#MySQL_tuning

Lopuksi otetaan asetukset käyttöön:

# systemctl restart mysql

Kohan asetukset

Nämä järjestelmäasetukset ainakin kohdalleen.

AsetusArvo
QueryAutoTruncateOnly if * is added.
EnableAdvancedCatalogingEditorEnable
UseControlNumberUse
Allow

HLD

Use
TraceSubjectSubdivisionsInclude
SearchEngineElasticsearch

 

Kohan päivittäminen

# cd /var/kohaclone; git pull; systemctl restart koha-plack-daemon

Tarkista, pitääkö päivittää tai asentaa uusia perl-moduuleja:

# /var/kohaclone/koha_perl_deps.pl -m -u

Asenna puuttuvat ja päivitettävät moduulit:

# for i in `/var/kohaclone/koha_perl_deps.pl -m -u | perl -pe 's/ .*//;' | egrep "::"`; do echo $i; cpan install $i; done

Jos on myös tietokantamuutoksia, ajetaan:

$ perl /var/kohaclone/installer/data/mysql/updatedatabase.pl
  • No labels