SeedDMS installieren
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.35
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
In der doms/dms.example.org/.htaccess
Datei muss der Pfad für die Datei mit den Einstellungen eingetragen werden:
SetEnv SEEDDMS_CONFIG_FILE /home/pacs/xyz00/users/hans/doms/dms.example.org/data/conf/settings.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 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.35
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.32
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 &