SeedDMS installieren

Aus Hostsharing Wiki
Version vom 24. September 2018, 21:02 Uhr von Tim00 (Diskussion | Beiträge) (erste Version der Anleitung für SeedDMS)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
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/var
$ wget https://sourceforge.net/projects/seeddms/files/seeddms-5.1.8/seeddms-quickstart-5.1.8.tar.gz/download -O seeddms-quickstart-5.1.8.tar.gz
$ wget https://sourceforge.net/projects/seeddms/files/seeddms-5.1.8/seeddms-5.1.8.tar.gz/download -O seeddms-5.1.8.tar.gz
$ wget https://sourceforge.net/projects/seeddms/files/seeddms-5.1.8/SeedDMS_Core-5.1.8.tgz/download -O SeedDMS_Core-5.1.8.tgz
$ wget https://sourceforge.net/projects/seeddms/files/seeddms-5.1.8/SeedDMS_Preview-1.2.9.tgz/download -O SeedDMS_Preview-1.2.9.tgz
$ wget https://sourceforge.net/projects/seeddms/files/seeddms-5.1.8/SeedDMS_SQLiteFTS-1.0.10.tgz/download -O SeedDMS_SQLiteFTS-1.0.10.tgz
$ wget https://sourceforge.net/projects/seeddms/files/seeddms-5.1.8/SeedDMS_Lucene-1.1.13.tgz/download -O SeedDMS_Lucene-1.1.13.tgz

Auspacken

Die heruntergeladenen Tarballs mit tar auspacken:

$ tar xzf seeddms-quickstart-5.1.8.tar.gz
$ tar xzf seeddms-5.1.8.tar.gz
$ tar xzf SeedDMS_Core-5.1.8.tgz
$ tar xzf SeedDMS_Preview-1.2.9.tgz
$ tar xzf SeedDMS_Lucene-1.1.13.tgz

Die heruntergeladenen Tarballs können jetzt gelöscht werden:

$ rm -f seeddms-quickstart-5.1.8.tar.gz
$ rm -f seeddms-5.1.8.tar.gz
$ rm -f SeedDMS_Core-5.1.8.tgz
$ rm -f SeedDMS_Preview-1.2.9.tgz
$ rm -f SeedDMS_Lucene-1.1.13.tgz

Verzeichnisstruktur erstellen und füllen

Es müssen die folgenden Verzeichnisse angelegt werden, und die Dateien aus den entpackten Tarballs entsprechend verschoben werden:

$ cd ~/doms/dms.example.org/var
$ mv seeddms51x/data data
$ mv seeddms51x/pear pear
$ mv SeedDMS_Core-5.1.8/Core* pear
$ mv SeedDMS_Preview-1.2.9/Preview* pear
$ mv SeedDMS_Lucene-1.1.13/Lucene* pear

Nun müssen die eigentlichen Anwendungsdateien noch an die richtige Stelle verschoben werden:

$ cd ~/doms/dms.example.org
$ rm -r htdocs-ssl
$ mv var/seeddms-5.1.8 htdocs-ssl
$ cd ~/doms/dms.example.org/htdocs-ssl
$ ln -s ../var/data/conf

Aufräumarbeiten:

$ cd ~/doms/dms.example.org/var
$ rm -Rf SeedDMS_Core-5.1.8
$ rm -Rf SeedDMS_Preview-1.2.9
$ rm -Rf SeedDMS_Lucene-1.1.13
$ rm package.xml

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 var/pear/HTTP/WebDAV/Server.php angepasst werden. In der Funktion _check_auth() muss die Variable REDIRECT_HTTP_AUTHORIZATION ausgewertet werden:

--- var/pear/HTTP/WebDAV/Server.php.orig	2018-09-24 22:34:10.263879261 +0200
+++ var/pear/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 htdocs-ssl/conf/ENABLE_INSTALL_TOOL
$ export pwd=`pwd` && sed -i "s#/home/www-data/seeddms51x/data/#$pwd/var/data/#g" htdocs-ssl/conf/settings.xml
$ export pwd=`pwd` && sed -i "s#/home/www-data/seeddms51x/pear/#$pwd/var/pear/#g" htdocs-ssl/conf/settings.xml
$ export pwd=`pwd` && sed -i "s#dropFolderDir=\"\"#dropFolderDir=\"$pwd/var/import/\"#g" htdocs-ssl/conf/settings.xml

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

Die Warnung über das nicht gefundene Zend Framework kann ignoriert werden.

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 htdocs-ssl/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.

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 &