-CentOS

Aus Limbas Wiki

Wechseln zu: Navigation, Suche
Diese Seite enthält Bearbeitungen, die nicht zum Übersetzen freigegeben sind.

Hauptseite



Voraussetzung dieser Anleitung ist eine Standard CentOS 8 / Rocky oder ähnliche RedHat Installation. Die Anleitung kann grundsätzlich auch auf andere RedHat basierenden Distributionen angewendet werden. Die minimale Server-Paketauswahl im CentOS Installationssetup ist ausreichend. Es kann aber auch das Webserver-Setup gewählt werden um weniger Grundanpassungen für Netzwerk ssh Zugang etc. vornehmen zu müssen. Wenn der Client (Browser) auf einem anderen Host läuft (was normalerweise der Fall ist), ist auch keine "Desktop"-Installation notwendig. Die Beschreibung bezieht sich auf 64 bit System.

Note: Bezeichnungen in {geschweiften Klammern} können mit beliebigen Text ersetzt werden, müssen aber durchgehend konsistent sein, um LIMBAS erfolgreich installieren zu können. Wenn nicht anders angegeben, erfolgen die im folgenden gezeigten Aufrufe von der Kommandozeile durch den Benutzer "root".

Installationstips

Falls LIMBAS auf einer virtuellen Maschine installiert wird, ist es empfehlenswert, einen SSH Zugang einzurichten, um z.B. die Kommandozeilen-Befehle per Copy-And-Paste einfügen zu können. Hierzu sollten folgende Schritte auf der Server-Installation durchgeführt werden:
Zunächst kann in der Datei /etc/sysconfig/selinux der Eintrag SELINUX=disabled hinzugefügt werden. Dies kann auch zur Lösung von Verbindungsproblemen bei der LIMBAS-Installation beitragen. Danach muss die virtuelle Maschine neu gestartet werden. Die Firewall sollte nun wie folgt deaktiviert oder angepasst werden:

systemctl start firewalld
systemctl enable firewalld
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload


Zuletzt sollte sichergestellt werden, dass der OpenSSH-Server schon installiert und gestartet wurde.

yum install openssh-server
systemctl start sshd.service

CentOS 7/8 Paketauswahl

Zusätzlich zur Standardinstallation sind für LIMBAS folgende Pakete zu installieren:

  • httpd
  • php
  • php-gd
  • php-imap
  • php-pdo
  • php-pgsql | php-mysql
  • php-soap
  • php-xml
  • php-ctype
  • php-mbstring
  • php-json
  • unixODBC
  • postgresql
  • postgresql-server
  • ImageMagick
  • poppler-utils (pdftohtml version >= 0.10.5)
  • wget
  • unzip
  • tar
  • pdftotext
  • pdftohtml
  • perl-Image-ExifTool (Version >= 9)
  • epel-release
$ yum install epel-release
$ yum install httpd php php-gd php-pdo php-pgsql php-soap php-xml php-ctype php-mbstring php-json unixODBC\
postgresql-odbc postgresql-server postgresql poppler-utils ImageMagick ghostscript\
perl-Image-ExifTool wget unzip t1lib tar
$ yum update

Zusatzpakete (optional)

Für einige benötigte Tools, die nicht mit dem Standard-Paketmanagement verfügbar sind, können externe Repositories eingebunden werden. Je nach CentOS-Version müssen unterschiedliche Repositories gewählt werden. Damit können die folgenden Zusatzpakete installiert werden falls sie nicht schon installiert sind.
Nachfolgend ein paar Vorschläge, welche Repositories viele der Zusatzpakete schon beinhalten können:

Datenbank-Einrichtung

Limbas unterstützt mehre Datenbanken. Standardmäßig wird die PostgreSQL Datenbank empfohlen. Bei Nutzung der MySQL oder MariaDB Datenbank wird die my.cnf Option "lower_case_table_names = 1" empfohlen.

PostgreSQL

Limbas unterstützt PostgreSQL ab Version 8.2. Durch folgende Befehle kann optional eine höhere PostgreSQL Version als von CentOS angeboten installiert werden.

$ wget http://yum.pgsqlrpms.org/reporpms/X.X/pgdg-centos-X.X.noarch.rpm
$ rpm -i pgdg-centos-X.X.noarch.rpm
$ yum update


  • Datenbank-Server stoppen:

$ /etc/init.d/postgresql stop oder

$ systemctl stop postgresql.service

  • Falls bereits ein Datenbank-Cluster existiert, kann der folgende Schritt übersprungen werden.
  • Datenbank-Cluster anlegen:
$ su - postgres
# initdb
  • Beim Zugriff eines Clients auf den PostgreSQL-Datenbank-Server wird eine Authentifizierung durchgeführt. Diese Client-Authentifizierung wird durch die Datei "pg_hba.conf" kontrolliert. Sofern keine Änderungen an der PostgreSQL-Konfigurationsdatei "postgresql.conf" vorgenommen wurde, wird diese aus dem Verzeichnis "/var/lib/pgsql/data" genommen (genauere Informationen siehe http://www.postgresql.org/docs/). Durch entsprechenden Eintrag in der Datei "pg_hba.conf" ist sicherzustellen, daß die Authentifizierung für den LIMBAS-Zugriff erfolgreich ist.
  • Datenbank-Server starten und ggf. Status überprüfen:

$ /etc/init.d/postgresql start

$ systemctl start postgresql.service        ( alternativ )
  • Status prüfen

$ /etc/init.d/postgresql status

$ systemctl status postgresql.service   ( alternativ )
  • Erstellung einer neuen Datenbank für Limbas: Der Name der Datenbank ({limbasdb}) kann frei gewählt werden, darf aber nur Kleinbuchstaben enthalten. Mögliche Kodierungen sind z.B. LATIN1, SQL_ASCII oder UTF8. Empfohlen wird UTF-8. Die Angaben LC_COLLATE und LC_CTYPE sind NOTWENDIG!
$ su - postgres

# psql
psql (9.5.1)
Geben Sie »help« für Hilfe ein.
postgres=# create user {limbasuser} password '{limbasuserPW}';
CREATE ROLE
postgres=# create database {limbasdb} WITH ENCODING 'UTF-8' LC_COLLATE 'C' LC_CTYPE 'C' OWNER {limbasuser} TEMPLATE template0;
CREATE DATABASE
postgres=#\q
# createlang plpgsql {limbasdb}
# psql -l
                                 Liste der Datenbanken
   Name    | Eigentümer | Kodierung | Sortierfolge | Zeichentyp  | Zugriffsrechte
-----------+------------+-----------+--------------+-------------+-----------------------
{limbasdb} |{limbasuser}| SQL_ASCII | C            | C           |
 postgres  | postgres   | SQL_ASCII | C            | C           |

Nun müssen noch die Rechte auf die Datenbank angepasst werden. Dazu in der Datei /var/lib/pgsql/data/pg_hba.conf die notwendigen Rechte setzen:

local all all trust


Note: Als Treiber wird PDO genutzt

MySQL/MariaDB

Diese Doku bezieht sich auf mariadb 5.5 welche standardmäßig mit CentOS 7 über das Paketmanagement zur Verfügung steht . Andere Versionen von MySQL können unterschiedliche Besonderheiten aufweisen auf die hier nicht weiter eingegangen wird. Insbesondere Version 10 oder höher konnte noch nicht erfolgreich mit Limbas getestet werden.

yum install mysql mysql-server mysql-connector-odbc

systemctl restart mariadb.service
sudo systemctl enable mariadb.service
mysql_secure_installation
systemctl restart mariadb.service
mysql -u root
CREATE DATABASE <limbasdb>;
CREATE USER '<limbasuser>'@localhost IDENTIFIED BY '<limbaspass>';
GRANT USAGE ON <limbasdb>.* TO '<limbasuser>'@localhost IDENTIFIED BY '<limbaspass>';
GRANT ALL ON <limbasdb>.* TO <limbasuser>@localhost IDENTIFIED BY '<limbaspass>';
use mysql;
update user set plugin='' where User='<limbasuser>';
flush privileges;
exit;

Überprüfen der Rechte kann man mit Hilfe von:

SHOW GRANTS FOR '<limbasuser>'@localhost;
SELECT host,user,password,plugin FROM mysql.user;


Note: Für Limbas Versionen kleiner 4 muss die Gross/Klein-Schreibung für Tabellennamen deaktiviert werden. Dazu ist die Datei
"</etc/mysql/mariadb.conf.d/50-server.cnf" anzupassen. Weitere Informationen dazu findet man unter Mysql.
[mysqld]
 lower_case_table_names = 1
Note: Bei nutzung der MYSQL/maria Datenbank wird die Version 5.5 empfohlen. Version 10 oder höher konnte noch nicht erfolgreich mit Limbas getestet werden.

PDO konfigurieren

Limbas kann entweder über PDO oder ODBC die Datenbank konnektieren. PDO wird nur für PostgreSQL und MySQL unterstützt. Für weitere Datenbanken kann die ODBC Schnittstelle genutzt werden. Limbas kann nicht beide Datenbankmodule gleichzeitig nutzen. Wenn PDO genutzt werden soll muß das odbc Modul daktiviert oder deinstalliert sein.

Folgende Packete sind für für das PDO Modul zu installieren:

  • php-pdo
  • php-pgsql | php-mysql

Folgende Packete sind für für das PDO Modul nicht mehr notwendig und müssen deaktiviert sein:

  • php-odbc

$ yum install php-pdo php-pgsql

$ yum erase php-odbc

Der Limbas Installationswizzard erkennt automatisch welches Modul genutzt werden soll.

ODBC konfigurieren

Die Datenbankverbindung über ODBC ist notwendig wenn nicht PostgreSQL oder MYSQL als Datenbank genutzt werden oder PDO nicht zur Verfügung steht. Das Einrichten von ODBC ist aufwändiger und umfasst neben der Installation der notwendigen Packete auch das Einrichten von UnixODB und der Datenbank ODBC Treiber.

Folgende Packete sind für für das PDO Modul zu installieren:

  • php-odbc
  • unixODBC
  • postgresql-odbc | mysql-odbc

$ yum install php-odbc unixODBC postgresql-odbc


Es gibt zwei Varianten LIMBAS über ODBC mit der Datenbank zu verbinden:

  • Verbindung mit direktem ODBC-Treiberzugriff
  • Verbindung mit ODBC-resource
  • /etc/odbc.ini
  • /etc/odbcinst.ini
[PSQL]
Description     = ODBC for PostgreSQL (ANSI version)
Driver          = /usr/lib/psqlodbca.so
Setup           = /usr/lib/libodbcpsqlS.so
Driver64        = /usr/lib64/psqlodbca.so
Setup64         = /usr/lib64/libodbcpsqlS.so
FileUsage       = 1

[PSQLUTF8]
Description     = ODBC for PostgreSQL (Unicode version)
Driver          = /usr/lib/psqlodbcw.so
Setup           = /usr/lib/libodbcpsqlS.so
Driver64        = /usr/lib64/psqlodbcw.so
Setup64         = /usr/lib64/libodbcpsqlS.so
FileUsage       = 1

[MySQL]

Description     = ODBC for MySQL
Driver          = /usr/lib/libmyodbc5.so
Setup           = /usr/lib/libodbcmyS.so
Driver64        = /usr/lib64/libmyodbc5.so
Setup64         = /usr/lib64/libodbcmyS.so
FileUsage       = 1
ACHTUNG: bei älteren PostgreSQL Versionen (<= 8.3) kann folgender Treiber verwendet werden:
Driver = /usr/lib/psqlodbc.so

Der folgende Punkt ist nur notwendig bei einer Verbindung mittels ODBC-resource

  • In der unter "SYSTEM DATA SOURCES" ermittelten Datei (hier "/etc/odbc.ini") den folgenden Eintrag hinzufügen:

[{limbasPsqlOdbcResourceName}]

Description             = PSQL
Driver                  = {postgreSQL}
Database                = {limbasdb}
Servername              = localhost
Username                = {limbasuser}
Password                = {limbasuserPW}

[{limbasMysqlOdbcResourceName}]

Description             = MySQL
Driver                  = MySQL
Database                = {limbasdb}
Port                    = 3306
Server                  = 127.0.0.1


Apache HTTP Server Einrichtung

Für die LIMBAS Installation müssen das Root-Verzeichnis des Apache-Servers und der Apache-User sowie dessen Gruppe bekannt sein. Diese können aus der Datei '/etc/httpd/conf/httpd.conf' entnommen werden:

  • Das Root-Verzeichnis des Apache-Servers läßt sich aus dem "DocumentRoot"-Eintrag ermitteln (standardmäßig "/var/www/html").
  • Der Apache-User und seine Gruppe lassen sich aus den "User"- und "Group"-Einträgen ermitteln (standardmäßig "apache").

Damit alle Zeichen korrekt angezeigt werden, ist in der Datei "/etc/httpd/conf/httpd.conf" folgende Zeile zu löschen oder auszukommentieren:

# AddDefaultCharset UTF-8           DIESE ZEILE LÖSCHEN ODER AUSKOMMENTIEREN !!

Damit die in den LIMBAS-Verzeichnissen verwendeten .htaccess-Dateien vom Apache-Server interpretiert werden, ist folgender Eintrag in "/etc/httpd/conf/httpd.conf" hinzuzufügen:

<Directory "{DocumentRoot}/openlimbas/public">
      AllowOverride All
</Directory>

Starten des Apache HTTP Servers:

$ /etc/init.d/httpd start
$ systemctl start httpd.service (alternativ)

Bei Problemen mit Apache Versionen (ab 2.4) kann die Aktivierung des access_compat-Modules zur Lösung beitragen. Hilft das nicht, muss in jeder .htaccess-Datei

Order allow,deny
Allow from all

zu

Require all granted geändert werden.

ab Limbas-5 ist dies ddie default Einstellung

mod rewrite

Das rewrite Modul [mod_rewrite] muß installiert und aktiv sein.

fpm

falls statt mod-php fpm genutzt wird ist es notwendig den Parameter flushpackets=on zu setzten. Dieser ermöglicht eine korrekte Fortschrittsbalken Darstellung. Siehe auch https://www.php.net/manual/en/function.flush.php

SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost|flushpackets=on"

LIMBAS Installation

$ wget http://sourceforge.net/projects/limbas/files/limbas%20source%20package/2.x/openlimbas_5.x.x.x.tar.gz/download

  • Die Download-Datei (hier "openlimbas_5.x.x.tar.gz") {DocumentRoot} in speichern und dort entpacken:

$ tar xzfv openlimbas_5.x.x.tar.gz

Beim Entpacken wird das Verzeichnis "{DocumentRoot}/openlimbas" mit den folgenden Unterverzeichnissen angelegt:
  • limbas_src: Hier befinden sich die LIMBAS Source-Dateien, die im Falle eines Updates überschrieben werden können, ohne daß individuelle Einstellungen verloren gehen.
  • vendor: Hier befinden sich eigenständige externe Anwendungen, die von LIMBAS benutzt werden. Ein von LIMBAS losgelöstes Update dieser Anwendungen ist zwar möglich, ist aber nicht zu empfehlen, da das Zusammenspiel nur mit den in der LIMBAS-Installation enthaltenen Versionen getestet ist.
  • public: public ist der öffentlich erreichbare Einstieg und behinhaltet die index.php sowie die rewrite Regeln.
  • dependent: Dies ist das Arbeitsverzeichnis, in dem auch individuelle Einstellungen abgelegt werden. Die Verzeichnisse TEMP und USER müssen als symbolische Links in public vorliegen.


Note: Um das Speichern individueller Einstellungen in LIMBAS zu ermöglichen, muß LIMBAS schreibend auf "./openlimbas/dependent" und allen Unterverzeichnissen zugreifen können. Um dies zu ermöglichen ist der Besitzer dieses Verzeichnisses und seiner Unterverzeichnisse auf den Apache-User (hier "apache") zu ändern.
$ chown -R apache:apache openlimbas/dependent
  • Falls der Browser auf einem anderen Host läuft, ist dafür zu sorgen, daß die Firewall-Konfiguration den Zugriff von diesem Browser auf den LIMBAS Host zuläßt.
  • Mit Hilfe eines Browsers kann jetzt die LIMBAS Datenbankstruktur angelegt werden. Dazu muß das LIMBAS-Installationsskript mit folgender URL aufgerufen werden:
http://{LimbasIP}/openlimbas/public/install/


Das Webinterface versucht automatisch alle Pfade korrekt einzutragen. Geschieht dies nicht oder bleiben die Felder leer, sollte die php.ini noch mal überprüft werden.
  • Bei Mausklick auf "check" wird geprüft, ob alle benötigten Funktionen verfügbar sind. Die Installation kann nur dann fortgeführt werden, wenn die Mindestanforderungen erfüllt sind. Dies ist an den grünen und gelben Häkchen zu erkennen. Ist dies der Fall, kann man die gewünschte Installation auswählen:
    • demo.tar.gz: Die Datenbank enthält Benutzer-Daten, mit welchen die Eigenschaften von LIMBAS demonstriert werden können
    • clean.tar.gz: Die Datenbank enthält keine Benutzer-Daten.
  • Bei Mausklick auf "install" startet der Installationsvorgang. Den Fortschritt der Installation erkennt man an den grünen Fortschrittsbalken.
  • Benutzer "root": Das Installations-Skript überträgt die Datenbankeinstellungen in die Datei "{DocumentRoot}/openlimbas/dependent/inc/include_db.lib". Wird diese Datei verändert, ist kein Zugriff auf die Datenbank mehr möglich. Um unerwünschten Manipulationen vorzubeugen, sollten sämtliche Schreibrechte auf diese Datei entfernt werden.

chmod 444 {DocumentRoot}/openlimbas/dependent/inc/include_db.lib

  • Nach erfolgreicher Installation kann LIMBAS durch Mausklick auf den Link "test installation" oder durch Eingabe folgender URL gestartet werden:


Note: Die Einsteigs URL lautet http://[url]/openlimbas/public/
Gleich nach dem Aufruf der URL wird man aufgefordert sich zu authentifizieren. Dazu steht folgender Default-Benutzer mit allen Administrator-Rechten zur Verfügung:
  • Benutzername: admin
  • Passwort: limbas