Smartbib Installation unter SuSE Linux Enterprise
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