Wie funktioniert das Install und das Start Script - ubtue/ub_tools GitHub Wiki
Mit dem Install-Script werden einige Einstellungen angepasst, neue Konfigurationen angelegt und ein Start-Script erstellt.
Installationskonfiguration
Zum Installieren einer Instanz wird eine Installationskonfiguration benötigt. Ein Template ist hier zu finden. In diesem Template befinden sich alle Felder, die konfiguriert werden können. Es müssen aber nicht alle Einstellungen benötigt. Für eine funktionsfähige Installation werden folgende Einstellungen benötigt:
- NAME: Der Name der neuen Instanz
- VUFIND_CLONE_DIRECTORY: Der Ordner, unter dem die neue Instanz zu finden ist (z.B.
$(pwd)/$NAME
um unter dem aktuellen Arbeitsverzeichnis einen Ordner mit dem Namen der Instanz zu nutzen). - VUFIND_REPOSITORY: Die URL zum Repository der Instanz.
- UB_TOOLS_CLONE_DIRECTORY: Der Ordner, unter dem die ub_tools geklont werden soll.
- UB_TOOLS_REPOSITORY: Die URL zum ub_tools-Repository ([email protected]:ubtue/ub_tools.git)
- CONFIGS_DIRETORY: Der Ordner mit den Konfigurationen, der meist unter
$VUFIND_HOME/ub_tools/configs
liegt. - SERVER_URL: Die URL, unter der der Server später erreicht werden soll.
- SERVER_IP: Die IP des Servers
- EMAIL: Eine Support-Mail-Addresse
- MODULES: Die Module der Instanz.
Welche Einstellungen werden angepasst?
Je nach System (Ubuntu vs. CentOS) müssen teilweise andere Anpassungen vorgenommen werden.
Serverspezifische Konfigurationen
Unter $VUFIND_LOCAL_DIR/config/vufind/local_overrides
werden serverspezifische Konfigurationen (u.a. mit Passwörtern) abgelegt. Diese werden dann in der $VUFIND_LOCAL_DIR/config/vufind/config.ini
per @import
-Anweisung eingebunden.
- site.conf: Überschreibt serverspezifische Konfigurationen, wie die Server-URL oder die E-Mail-Addresse des Webmasters.
- database.conf: Konfiguriert die Datenbank.
Webserver
Um VuFind bei dem Webserver bekannt zu machen werden zwei Dateien aus dem VuFind-Ordner mit einem symbolischen Link in die Konfigurationsordner des Webservers verlinkt. Dabei handelt es sich um $VUFIND_LOCAL_DIR/httpd-vufind.conf
und $VUFIND_LOCAL_DIR/httpd-vufind-vhosts.conf
. Diese Dateien werden mit serverspezifischen Einstellungen (IP, URL, co.) generiert.
Der Webserver soll unter einem eigenem User laufen. Dafür wird ein neuer vufind
-User angelegt und in die Konfigurationen des Webservers eingetragen.
Apache (Ubuntu)
Die Konfigurationsdateien werden hierhin verlinkt: /etc/apache2/conf-enabled
Der User wird unter /etc/apache2/envvars
eingetragen. Hier werden die Angaben von APACHE_RUN_USER
und APACHE_RUN_GROUP
angepasst.
HTTPD (CentOS)
Die Konfigurationsdateien werden hierhin verlinkt: /etc/httpd/conf.d/
Der User wird unter /etc/httpd/conf/httpd.conf
eingetragen. Hier werden die Angaben von User
und Group
angepasst.
Python2
Unter Ubuntu wird python
unter /usr/bin
installiert, bei CentOS wird es unter /bin
installiert. Deshalb erstellt das Installationsskript ein symbolischen Link, der von /bin/python2
auf /usr/bin/python2
zeigt.
Start-Script
Das Start-Script wird angelegt, wenn die Installation nicht under $VUFIND_HOME
vorgenommen wird.
Mit dem Script ist es Möglich meherer Kopien zu installieren und zwischen den einzelnen Instanzen zu wechseln. Dabei kann jedoch nur eine Instanz aktiv sein.
Durch die Ausführung des Start-Scripts werden die Server (Webserver, MySQL, VuFind) heruntergefahren, die neue Instanz aktiviert und die Server (Webserver, MySQL, VuFind) für die neue Instanz hochgefahren. So wird sichergestellt, dass die richtigen Konfigurationen geladen sind.
Das Starten und Stoppen der Server (Webserver, MySQL, VuFind) funktioniert über Services. Unterstützt wird SystemD und Upstart. Dabei wird SystemD bevorzugt. Das bedeutet, wenn SystemD vorhanden ist, so wird nur versucht SystemD-Services zu starten und zu stoppen, Upstart wird dann ignoriert.
Unter CentOS ist standardmäßig SystemD installiert. Unter Ubuntu ist standardmäßig Upstart installiert. Ab Ubuntu 15.04 wird SystemD verwendet.
Entwicklungs Doku
Fertig
- VuFind-User anlegen und verwenden (für Webserver)
- MySQL-Passwort abfragen
- MySQL-Datenbank anlegen
- Git-Repository klonen
- Umgebungsvariablen in
/etc/profile
einrichten - HTTPD-Konfig erstellen
- HTTPD-VHOSTS-Konfig erstellen
- Serverspezifische Konfig in
local_overrides
erstellen - Start-Script erstellen
- .htpasswd-Passwortschutz einrichtbar machen
- SSL konfigurierbar
- Server starten