Smartbib Installation unter SuSE Linux Enterprise

Dieses Tutorial zeigt, wie man Smartbib direkt unter SuSE Linux installieren kann.

Einleitung

Dieses Tutorial zeigt wie man Smartbib unter SuSE Linux Enterprise installieren kann.

Diese Methode bietet sich für alle Installationen an, bei denen keine Container genutzt werden oder nur ein beschränkter Internet-Zugang verfügbar ist.

Basis-Installation SuSE

Für diese Dokumentation wurde SLES 15 SP 2 in einer Oracle VirtualBox VM installiert. (https://www.suse.com/download/sles/)

Es wurde bei der Erstellung darauf Wert gelegt, dass nach Möglichkeit nur das offizielle Installations-Medium für die notwendigen SuSE Package verwendet wird und für den kompletten Installations-Vorgang keine Internet-Verbindung erforderlich ist.

Installierte SuSE Module

  • Basesystem
  • Development Tools
  • Server Applications
  • Web and Scripting

SuSE Firewall-Einstellungen

firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-port=8983/tcp
firewall-cmd --permanent --reload
firewall-cmd --permanent --list-all

Smartbib Benutzer anlegen

groupadd smartbib
useradd -G smartbib smartbib

SuSE Pakete installieren

Für die Installation der SuSE Pakete wurde zypper verwendet:

Java installieren

zypper in java-11-openjdk

MariaDB installieren und aktivieren

MariaDB mit Hilfe von zypper installieren

zypper in mariadb

Den Systemd Service aktivieren und starten

systemctl enable mariadb
systemctl start mariadb

Für die aktuelle Smartbib-Installation ist es notwendig, dass die Socket-Authentification deaktivert wird und stattdessen ein Root-Passwort gesetzt wird. Die kann mit Hilfe von mysql_secure_installation vorgenommen werden:

mysql_secure_installation

Apache2 mit PHP und weitere Pakete

zypper in zip apache2 yast2-http-server apache2-mod_php7 php7-mbstring php7-pear php7 php7-devel php7-gd php7-intl php7-json php7-ldap php7-mysql php7-curl php7-xmlreader php7-xmlrpc php7-xmlwriter php7-soap php7-curl php7-xsl php7-zlib

Über yast kann der Apache2 konfiguriert werden: Netzwerkdienste -> HTTP-Server

yast

Es können generell alle Standardeinstellungen verwendet werden, da weitere Einstellungen über die Konsole durchgeführt werden.

Notwendige Einstelungen über YaST: Der Firewall-Port sollte geöffnet werden und PHP muss generell aktiviert werden.

Apache Module aktivieren: Rewrite und Env

Es ist notwendig, die Apache-Module rewrite und env zu aktivieren:

a2enmod rewrite 
a2enmod env
systemctl restart apache2

Smartbib Installation

Alle notwendigen Dateien für Smartbib werden mit TAR-Paketen bereitgestellt:

Beispiele:

  • smartbib-drv-complete-with-config-7.1.0.tar.gz
  • smartbib-drv-complete-7.1.0.tar.gz

Für die erste Installation sollte das Paket -with-config- verwendet werden, da hier schon vorgefertigte Kunden-Konfgurationen enhalten sind.

Entpacken nach /usr/local/smartbib

Das bereitgestellte Archiv sollte im /usr/local/ Verzeichnis entpackt werden:

tar -xz -C /usr/local/ -f smartbib-drv-complete-with-config-7.1.0-beta.tar.gz

MariaDB Tabelle anlegen

Mit folgendem SQL Skript wird eine neue Datenbank smartbib und ein Benutzer smartbib erstellt. Es werden auch alle notwendigen Tabellen erstellt.

mysql < /usr/local/smartbib/setup/setup-smartbib.sql

Es werden bereits vordefinierte Passwörter gesetzt und sind in entsprechende Smartbib INI Dateien eingetragen. Falls ein andere Passwort verwendet wird, dann muss dies auch in der Datei /usr/local/smartbib/vufind/local/config/vufind/config.ini angepasst werden.

Record-Manager Tabelle anlegen

Für den Daten-Import bei Verbund-System kommt der RecordManager zu Einsatz, damit eine Dubletten-Erkennung stattfindet.

Der RecordManager kann dabei entweder MongoDB oder MySQL/MariaDB verwenden.
Da keine offiziellen SuSE Pakete für MongoDB bereitstehen, die offline installiert wird bei SuSE-Linux die MariaDB-Variante verwendet.

Die notwendige Tabellenstruktur kann mit folgendem SQL Skript erstellt werden:

mysql < /usr/local/smartbib/setup/setup-recman.sql

Es werden bereits vordefinierte Passwörter gesetzt und sind in entsprechende RecordManager INI Dateien eingetragen. Falls ein anderes Passwort verwendet wird, dann muss dies auch in der Datei /usr/local/smartbib/recordmanager/conf/recordmanager.ini angepasst werden.

Setup starten

Es existert ein Setup-Shell-Skript, dass die restlichen Anpassungen vornimmt.

Dazu zählen die Dateiberechtigungen, das Anlegen der Log-Verzeichnisse, das Starten von Systemd-Services und Timern und das Aktivieren unter Apache2.

cd /usr/local/smartbib/setup/
./setup.sh

Sollte dieses automatische Vorgehen eher unerwünscht sein, dann können diese Schritte auch alternativ einzeln anhand der folgenden Anweisungen durchgeführt werden.

Alternativ: Manuelles Setup

Die folgenden Anweisungen müssen nur durchgeführt werden, wenn auf die Anwendung von setup.sh verzichtet wird!

Zugriffsrechte setzen

chown -R smartbib:smartbib /usr/local/smartbib
chown -R wwwrun:smartbib /usr/local/smartbib/vufind/local/cache
chown -R wwwrun:smartbib /usr/local/smartbib/vufind/local/config
mkdir /usr/local/smartbib/vufind/local/cache/cli
chmod 777 /usr/local/smartbib/vufind/local/cache/cli

Log-Verzeichnis erstellen

mkdir -p /var/log/smartbib/
chown -R wwwrun:smartbib /var/log/smartbib/
chmod g+w /var/log/smartbib/

Smartbib/SOLR Systemd Service aktivieren und starten

systemctl enable /usr/local/smartbib/service/smartbib-solr.service
systemctl start smartbib-solr.service

Systemd Timer für Converter, Importer und Indexgenerierung

systemctl enable /usr/local/smartbib/service/smartbib-convert.service
systemctl enable /usr/local/smartbib/service/smartbib-convert.timer
systemctl start smartbib-convert.timer

systemctl enable /usr/local/smartbib/service/smartbib-import.service
systemctl enable /usr/local/smartbib/service/smartbib-import.timer
systemctl start smartbib-import.timer

systemctl enable /usr/local/smartbib/service/smartbib-index-browse.service
systemctl enable /usr/local/smartbib/service/smartbib-index-browse.timer
systemctl start smartbib-index-browse.timer

Apache konfigurieren

ln -s /usr/local/smartbib/service/httpd-smartbib.conf /etc/apache2/conf.d/smartbib.conf
systemctl restart apache2

Daten importieren

Die Daten-Dateien müssen im Verzeichnis /usr/local/smartbib/import-data/upload/ abgelegt werden und werden dann mit Hilfe von Systemd-Timern verarbeitet. Der Benutzer smartbib muss Lese- und Schreibrechte für diese Datei besitzen. Die Daten werden dann nachts automatisch verarbeitet.

Die Liste der Timer kann man sich mit systemctl anzeigen lassen:

systemctl list-timers

Möchte man schon vorher die Vorgänge starten, kann man dies mit Hilfe der hinterlegten Systemd-Services erledigen.

# Konvertierung
systemctl start smartbib-convert

# Dubletten-Erkennung + SOLR Import
systemctl start smartbib-import

# Erstellen des alphabetischen Suche-Index
systemctl start smartbib-index-browse

Mit entsprechenden journalctl Aufrufen können die Vorgänge geprüft werden.

Beispiel: Verfolgen des aktuell laufenden Imports:

journalctl -u smartbib-import -f

Log-Dateien überprüfen

Im Verzeichnis /var/log/smartbib/ befinden sich alle Log-Dateien.

Neben generellen Smartbib PHP Logs und SOLR-Log-Dateien findet man hier auch die Log-Dateien der Konvertierungen (convert/) und Import-Vorgänge (recman).

Weitere Konfigurationen

Weitere Konfigurationen müssen dann entsprechend der Anforderungen vorgenommen werden und finden sich in der Regel im /usr/local/smartbib/vufind/local/config/vufind/ Verzeichnis.

Die E-Mail-Konfiguration ist Standardmäßig auf localhost eingestellt und wird dadurch durch einen lokal installierten Postfix-Service entgegengenommen. Andere E-Mail-Einstellungen können auch direkt über die config.ini vorgenommen werden.

Die vorliegende Anleitung soll nur als grobe Struktur für die Installation dienen.

Zuletzt geändert 10.03.2022