SeedDMS installieren

Aus Hostsharing Wiki
Version vom 4. Mai 2023, 20:25 Uhr von Tim00 (Diskussion | Beiträge) (Aktualisierung auf SeedDMS 5.1.31)
Zur Navigation springen Zur Suche springen

Allgemein

Beschreibung

SeedDMS ist ein freies Dokumentenmanagementsystem, das sich einfach über den Web-Browser bedienen lässt. Es kann auch über eine WebDAV Schnittstelle benutzt werden.

SeedDMS läuft mit PHP und MySQL oder SQLite, und lässt sich auf Linux, MacOS und Windows betreiben. Viele Jahre der Entwicklung haben es zu einer reifen, mächtigen und auch im Unternehmen einsetzbaren Plattform gemacht, auf der man Dokumente teilen und verwalten kann.

Es ist vollständig kompatibel mit dem Vorgänger LetoDMS.

SeedDMS steht unter der GPLv2 Lizenz.

Installation

Design

Diese Installationsanleitung beschreibt, wie SeedDMS in einer eigens dafür aufgeschalteten Subdomain über SSL betrieben wird. Für andere Konfigurationen, wie z.B. die Installation von SeedDMS in einer als Unterverzeichnis von ~/doms/domain/subs/ erstellten Subdomain, muß dieses Verfahren leicht angepaßt werden.

Der Vorteil einer Installation in einer aufgeschalteten Subdomain ist, daß die Installation leicht von anderen Domaininhalten, PHP-Konfigurationen, oder sogar von anderen Domain-Administratoren, isoliert werden kann.

Subdomain aufschalten

Im Folgenden werden folgende Domainkonfigurationsdaten als Beispiel verwendet:

Typ Wert Beschreibung
Subdomain dms.example.org Die Subdomain, unter der eine SeedDMS-Instanz laufen soll
Domain-Admin xyz00-hans Der User, dem die Subdomain delegiert wurde

Quellen

Neben dem Sourcecode vom SeedDMS-Programm werden auch einige weitere Bibliotheken benötigt. Sie werden auch vom SeedDMS Projekt bereitgestellt.

Die neuesten Versionen befinden sich unter:

Hier jeweils die Source-Dateien (*.tar.gz) benutzen.

Download

$ cd ~/doms/dms.example.org/
$ export version=5.1.31
$ wget https://sourceforge.net/projects/seeddms/files/seeddms-$version/seeddms-quickstart-$version.tar.gz/download -O seeddms-quickstart-$version.tar.gz

Auspacken

Den heruntergeladenen Tarball mit tar auspacken:

$ tar xzf seeddms-quickstart-$version.tar.gz

Der heruntergeladene Tarball kann jetzt gelöscht werden:

$ rm -f seeddms-quickstart-$version.tar.gz

Verzeichnisse organisieren

Es müssen die folgenden Aktionen vorgenommen werden, damit nur das www Verzeichnis von außen erreichbar ist, und das data Verzeichnis außerhalb der Installation liegt:

$ cd ~/doms/dms.example.org/
$ mv seeddms51x/data .
$ mkdir data/import
$ mv htdocs-ssl htdocs-ssl.old
$ ln -s seeddms51x/www/ htdocs-ssl
$ cd seeddms51x/www && ln -s ../../data/conf && cd -

MySQL vorbereiten

SeedDMS benötigt eine MySQL-Datenbank sowie einen Datenbanknutzer.

Die Tabellen werden später vom Installations-Werkzeug von SeedDMS eigenständig angelegt.

Datenbank und Datenbanknutzer anlegen

In dieser Anleitung werden folgende Namen für die Datenbank und deren Nutzer verwendet. Das Paket-Kürzel xyz00 ist natürlich durch das des betreffenden Pakets zu ersetzen.

Typ Wert Beschreibung
DB-Nutzer xyz00_seeddms Der MySQL-Nutzer, dem die Datenbank gehört und der administrative Tätigkeiten durchführt und dann auch im Betrieb genutzt wird.
Datenbank xyz00_seeddms Die MySQL-Datenbank, die die Daten von SeedDMS enthält.

Der Nutzer und die Datenbank können über die Weboberfläche auf https://admin.hostsharing.net oder über die Kommandozeile mit Hsadmin angelegt werden. Siehe dazu die Anleitungen auf der Seite MySQL und Datenbanken. Diese Schritte müssen ggf. vom Paket-Admin vorgenommen werden.

Einrichtung über die Kommandozeile:

Als Besitzer der SeedDMS-Datenbank xyz00_seeddms angeben; als Zeichenkodierung ist das Default UTF-8 richtig.

$ su xyz00
$ hsscript -u xyz00 -e "mysqluser.add ({set:{name:'xyz00_seeddms',password:'geheim'}})"
$ hsscript -u xyz00 -e "mysqldb.add ({set:{name:'xyz00_seeddms',owner:'xyz00_seeddms',encoding:'utf-8'}})"
$ exit

Fast-CGI-Patch

Bei der Benutzung von Fast-CGI werden die HTTP_AUTHORIZATION-Zeilen der HTTP-Anfragen normalerweise nicht weitergeleitet.

In der Shared-Hosting-Umgebung von Hostsharing kann die notwendige Anpassung über eine Rewrite-Anweisung in der .htaccess-Datei gemacht werden:

$ cd ~/doms/dms.example.org/htdocs-ssl/webdav
$ cat >> .htaccess <<FINISH
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
FINISH

Darüberhinaus muß noch die Datei seeddms51x/pear/vendor/seeddms/http_webdav_server/HTTP/WebDAV/Server.php angepasst werden. In der Funktion _check_auth() muss die Variable REDIRECT_HTTP_AUTHORIZATION ausgewertet werden:

--- seeddms51x/pear/vendor/seeddms/http_webdav_server/HTTP/WebDAV/Server.php.orig	2018-09-24 22:34:10.263879261 +0200
+++ seeddms51x/pear/vendor/seeddms/http_webdav_server/HTTP/WebDAV/Server.php	2018-09-24 22:34:52.457678808 +0200
@@ -1681,6 +1681,13 @@
             ? $this->_SERVER["PHP_AUTH_PW"] 
             : null;
 
+        if (isset($_SERVER["REDIRECT_HTTP_AUTHORIZATION"]) && !empty($_SERVER['REDIRECT_HTTP_AUTHORIZATION'])) {
+            list ($auth_type, $cred) = explode (" ", $_SERVER['REDIRECT_HTTP_AUTHORIZATION']);
+            if ($auth_type == 'Basic') {
+                list ($auth_user, $auth_pw) = explode (":", base64_decode($cred));
+            }
+        }
+
         if (method_exists($this, "checkAuth")) {
             // PEAR style method name
             return $this->checkAuth($auth_type, $auth_user, $auth_pw);

Installation durchführen

Damit die Installation im Web-Browser durchgeführt werden kann, muss eine Datei ENABLE_INSTALL_TOOL angelegt werden. Außerdem setzen wir schon gleich ein paar Pfade mit dem sed Werkzeug in der Konfigurationsdatei, um uns Tipparbeit und Tippfehler im weiteren Verlauf der Installation zu ersparen.

$ cd ~/doms/dms.example.org
$ touch data/conf/ENABLE_INSTALL_TOOL
$ export pwd=`pwd` && sed -i "s#/home/www-data/seeddms51x/www/#$pwd/seeddms51x/seeddms/#g" data/conf/settings.xml
$ export pwd=`pwd` && sed -i "s#/home/www-data/seeddms51x/data/#$pwd/data/#g" data/conf/settings.xml
$ export pwd=`pwd` && sed -i "s#/home/www-data/seeddms51x/pear/#$pwd/seeddms51x/pear/#g" data/conf/settings.xml
$ export pwd=`pwd` && sed -i "s#dropFolderDir=\"\"#dropFolderDir=\"$pwd/data/import/\"#g" data/conf/settings.xml

Die URL zur Installation von SeedDMS lautet https://dms.example.org/install/install.php.

Die Pfade sollten schon an die tatsächliche Umgebung angepasst sein.

Die Datenbank muss noch konfiguriert werden:

  • Database Type: mysql
  • Server name: localhost
  • Database: xyz00_seeddms
  • Username: xyz00_seeddms
  • Password: geheim
  • Create database tables: sollte angeklickt sein

Nun klickt man auf den Schalter mit der Aufschrift Apply, und die Instanz wird konfiguriert.

Danach muss die Datei ENABLE_INSTALL_TOOL gelöscht werden:

$ cd ~/doms/dms.example.org
$ rm data/conf/ENABLE_INSTALL_TOOL

Nun kann man sich mit dem Benutzer admin und dem Passwort admin anmelden, wobei man natürlich das Passwort gleich ändern sollte, unter Mein Profil / Benutzerdetails bearbeiten.

Update durchführen

Bei einem Update muss eigentlich nur der Tarball seeddms-quickstart-x.y.z.tar.gz nach seeddms51x entpackt werden.

$ mkdir -p ~/tmp
$ cd ~/tmp
$ export version=5.1.31
$ wget https://sourceforge.net/projects/seeddms/files/seeddms-$version/seeddms-quickstart-$version.tar.gz/download -O seeddms-quickstart-$version.tar.gz
$ tar xzf seeddms-quickstart-$version.tar.gz 
$ cd ~/doms/dms.example.org/seeddms51x/
$ cp -R ~/tmp/seeddms51x/* .
$ rm ~/tmp/seeddms* -Rf

Danach die Datei data/conf/ENABLE_INSTALL_TOOL anlegen:

$ cd ~/doms/dms.example.org
$ touch data/conf/ENABLE_INSTALL_TOOL

Und wiederum auf https://dms.example.org/install/install.php gehen, um das Upgrade durchzuführen.

Danach muss die Datei data/conf/ENABLE_INSTALL_TOOL wieder gelöscht werden:

$ cd ~/doms/dms.example.org
$ rm data/conf/ENABLE_INSTALL_TOOL

Unter Administration/Versionsinformation wird die aktuell installierte Version angezeigt.

Und nicht vergessen: den oben erwähnten Patch an seeddms51x/pear/HTTP/WebDAV/Server.php wieder einspielen...

Danach sollte auch die vorherige Version gelöscht werden:

$ cd ~/doms/dms.example.org/seeddms51x
$ rm -Rf seeddms-5.1.28

Weitere Einrichtung

Gruppen anlegen

Unter Administration/Gruppenverwaltung können neue Gruppen angelegt werden.

Benutzer anlegen

Unter Administration/Benutzerverwaltung können neue Benutzer angelegt werden. Die Benutzer können Gruppen zugeordnet werden.

Ordner anlegen

Wenn man in der Titelzeile auf SeedDMS ganz links klickt, gelangt man zur Ansicht der Ordnerstruktur. Dort ist im Moment nur der Wurzelordner zu sehen. Man kann diesen umbenennen, in dem man auf Bearbeiten klickt.

Dort kann man Unterordner anlegen.

Zugriffsbeschränkungen einrichten

Hierzu geht man auf den Ordner, den man bearbeiten möchte, und klickt auf Zugriffsrechte bearbeiten.

Es gibt eine Standardberechtigung, die immer zutrifft, falls keine andere Berechtigung vorliegt pro Benutzer oder Gruppe.

Berechtigungen können vom übergeordneten Ordner geerbt werden, oder man kopiert die Berechtigungen des übergeordneten Ordner, oder man startet mit einer leeren Zugriffsliste.

Importieren von Dateien aus einem Verzeichnis auf dem Server

Wir haben den Ordner doms/dms.example.org/var/import als Ablageordner in der Installation definiert.

Man kann den Ordner aber auch im Nachhinein ändern, unter Administration / Einstellungen / System. Dort ist ein Eintrag für Verzeichnis für Ablageordner.

Dann geht man in Administration, und wählt im Menü Sonstiges, den ersten Eintrag Aus Dateisystem importieren.

Dabei ist zu beachten, dass im Ablageordner ein Verzeichnis mit dem momentanen Benutzernamen liegen muss, aus diesem Verzeichnis besteht dann die Möglichkeit, Dateien zu importieren.

Zugriff über Client-Programme

Der Zugriff auf die Dateien kann auch über WebDAV erfolgen, über die URL: https://dms.example.org/webdav/index.php

Beispiel Nautilus (Gnome)

$ nautilus davs://meinbenutzer@dms.example.org/webdav/index.php &