Letodms

Aus


Einrichtung eines Dokumenten-Management-Systems (letoDMS)

Diese Seite befindet sich in der Erstellung!
Also bitte nicht verwenden, bis dieser Hinweis verschwunden ist! Danke.




Im Artikel ist immer von der Diskstation die Rede. Natürlich müsste diese Anleitung auch mit Rackstations etc. funktionieren :-)

Getestet mit DSM-4.0 auf DS-111 und DSM-4.1 111 und 212+ ubd DSM 4.2-Beta auf DS109. Hinweise zu Unterschieden stehen unten

Was ist ein Dokumenten-Managment-System?

Da verweise ich auf Wikipedia

Auf der Diskstation lässt sich so ein System nur einrichten, wenn es mit den vorhandenen Möglichkeiten lauffähig ist. Einen eigenen Server (wie z.b. mit java) ist keine so gute Idee, das auf einer DS zu installieren. Mit vorhandenen Möglichkeiten meine ich z.B. den Apache, php und mysql aber auch die Möglichkeiten, die das IPKG-System bietet. Dazu unten mehr.

Vorbereitungen

Je nachdem was man als Ziel hat, braucht man aus dem IPKG ein kleines Zusatzprogramm (pdftotext), das für die Volltextindizierung benötigt wird. Allerdings kann das Programm auch direkt verwendet werden, dann ist es allerdings eine kleine Bastelei, aber man braucht keinen Bootstrap einzurichten!

Wenn man seine Dokumente rein nach Stichworten, Dateinamen und Kategorien etc. sortieren will, braucht man kein IPKG installieren!

Sehr wohl ist aber der SSH-Zugang zu aktivieren und man sollte wissen, wie man auf der Konsole eine Datei editiert.

Wenn du das nicht kannst, dann ist das vielleicht zu viel für dich :-)

Ich empfehle nun einen virtuellen Host anzulegen: In beide Eingabefelder wird nach einem Klick auf Erstellen letodms eingegeben. Das bewirkt, dass wir unter http://name-oder-IP-der-DS/ immer nur auf das Admin-Interface geleitet werden. Wenn wir aber http://name-oder-IP-der-DS/letodms eingeben, so kommen wir in das Verzeichnis /volume1/web/letodms und darin wird dann später auch alles eingerichtet.

WebstationVhost.png

  • PHP - Einstellungen

Immer noch im selben Fenster muss bei den PHP-Einstellungen der Haken bei safe_mode_exec_dir entfernt werden, wenn die oben angesprochene Volltextindizierung gewünscht wird! Wer das nicht braucht, überspringt diesen Schritt.

register_globals sollte immer aus sein und ob der PHP-Cache an ist oder nicht ist (glaube ich) egal. Die Fehlermeldungen kann man sich mal anzeigen lassen, aber besser ist es wenn nicht :-)

Php safe mode exec dir.png

Jetzt den Dialog mit Übernehmen schließen.

Konfiguration der DS

MYSQL-Datenbank einrichten

Da gibt es hier im Wiki Artikel, die dies beschreiben (verlinken!) Entweder man erstellt auf der Konsole eine neue Datenbank, oder man installiert sich das phpmyadmin-Paket aus den Paketquellen von Synology. Standardmäßig wird man sich in phpmyadmin mit dem Benutzer root und KEINEM Passwort anmelden. Unter dem Menüpunkt Benutzer erstellt einen neuen Benutzer, wählt aus, dass auch eine gleich lautende Datenbank erstellt werden soll und vergibt ein Passwort und kann danach phpmyadmin wieder löschen, wenn man es sonst nicht benötigt.


PHP include-Pfad einstellen

Nun muss auf der Konsole mit root-Rechten folgende Datei angepasst werden: /usr/syno/etc/php/user-settings.ini Sie sieht in etwa so aus:

open_basedir = /etc.defaults:/usr/bin/php:/usr/syno/synoman:/etc:/var/run:/tmp:/var/spool/php:/vol
register_globals = Off
apc.enabled = 1
display_errors= On
safe_mode_exec_dir =

Die Zeile

include_path = 

muss nun angepasst werden bzw wir müssen diesen Pfad verwenden (wenn keine Änderungen erwünscht sind)

Bei einem Test mit DSM 4.2 -Beta muss die Zeile hinzugefügt werden. Sie steht noch nicht drin!

include_path = ".:/volume1/gewünschter/pfad/eintragen/"

Dadurch wird der Standart-Pfad .:/usr/syno/php/lib/php überschrieben, den es bei mir aber nicht gibt !

Das .: davor ist extrem wichtig.

Ich habe mir einen include-Ordner in web erstellt, in den ich alle Dateien, die nicht letoDMS sind, reinkopieren werde. Also steht bei mir

include_path = ".:volume1/web/include/"

data-Ordner erstellen

Wenn wir schon beim Ordner erstellen sind, so können wir gleich noch einen data-Ordner erstellen. In dem data-Ordner kommt noch ein staging und ein lucene - Ordner. Die werden später von letoDMS abgefragt, wo sie sind. Die Antwort muss dann also lauten /volume1/web/data, oder eben volume1/web/data/lucene bzw staging.

Pakete downloaden

Es gibt 3 Wege:

Download via wget auf der Konsole der Diskstation

Dann kann man mit

cd /volume1/web/letodms

schon in das richtige Verzeichnis wechseln. Dort gibt man dann ein

wget http://downloadlink

und den Downloadlink, den man vom Browser kopiert hat per Maustaste(bei putty z.B. ist es einfach die rechte Maustaste) oder kopieren und einfügen.

Download per Download Station

Download-Station Einrichten Dann können die Links unten als Downloads hinzufügen und als Download-Ziel schon der web/letodms-Ordner angegeben werden.

Download per PC

Das ist natürlich auch eine Möglichkeit und nach dem Download müssen alle Archive (ja, aber besser NICHT entpacken) auf die Diskstation kopiert werden.

Folgende Dateien werden benötigt:

  • ADODB

http://sourceforge.net/projects/adodb/files Es kann ruhig die aktuellste Version für PHP5 only genommen werden.

  • Zend-Framework

hier bitte das minimal von Zend1 nehmen. Zend2 funktioniert nicht!

http://framework.zend.com/downloads/latest

Auf der Seite nach unten scrollen dort gibt es einen Download ohne Registrierung! z.B. Zend Framework 1.12.1 Minimal als tar.gz herunterladen.

  • letoDMS

Alle Pakete von der Projekt-Seite herunterladen. http://sourceforge.net/projects/mydms/files/LetoDMS/ Nehmt die aktuellste Version und dann müsste es 3 verschiedene Pakete geben. Ihr braucht alle!


  • PEAR

kann natürlich (falls vorhanden) per IPKG installiert werden (ipkg install pear). Meine Empfehlung ist es aber, es eigenständig zu installieren. Es muss dann natürlich auch weiterhin selber aktualisiert werden!

http://pear.php.net/package/PEAR/download rechts die Datei (1.9.4 for manual installation only) auswählen.

  • PEAR-Pakete Log und HTTP_WebDAV_Server

ebenso auf der selben Seite: http://pear.php.net/package/Log/download bzw. http://pear.php.net/package/HTTP_WebDAV_Server/download Als ich dies hier erstelle, war die RC8 ziemlich leer, ich musste also die hier nehmen: http://download.pear.php.net/package/HTTP_WebDAV_Server-1.0.0RC7.tgz

Pakete entpacken

Jetzt müsste in dem Download-Verzeichnis folgende-Dateien vorhanden sein:

Dateiliste vor entpacken.png

Ich habe auf dem Bild das Zend-Framework in der Version 1 und 2 herunter geladen, um zu testen, welches benötigt wird. Es funktioniert nur mit Zend-Framework 1 !

Erstmal entpacken wir alle Archive, so dass wir jetzt jede Menge Ordner und viele Dateien haben :-) Das geht z.B. am einfachsten, wenn man alle Dateien auswählt und Extrahieren --> Jedes Archiv in einen separaten Ordner extrahieren auswählt.

Dateien entpacken.png

Ich hatte beim entpacken von adodb5.tgz Probleme, und musste dieses zuerst mit Extrahieren --> Extrahieren... anzeigen lassen und dort die tar-Datei einzeln extrahieren. Diese konnte ich dann wie gewünscht entpacken.

Es müsste nun in dem /volume1/web/letodms-Ordner in etwa so aussehen:

Dateiliste entpackt.png

Kopieren ins Web-Verzeichnis

Wichtig ist hierbei das genaue einhalten der folgenden Pfade. Natürlich kann das jeder anders machen, aber bestimmte Dateien werden nur an bestimmten Stellen gesucht und zumindest so ist es mir gelungen, dass alle läuft. Andere Vorschläge sind natürlich immer gerne willkommen. Er wird z.B: auch gehen, alle Dateien in einen letodms-Ordner zu kopieren, wo sie von letodms dann gefunden werden. Das macht die ganze Geschichte aber sehr unübersichtlich, finde ich.

  • ADODB

AdoDB is included as 'adodb/adodb.inc.php'. Also muss der Ordner adodb5 umbenannt werden (das 5 weg :-) und in den include-Ordner kopiert werden (bzw. in den include-Pfad)

  • PEAR

In dem Ordner PEAR-1.9.4 gibt es nochmal diesen Ordner und 2 package.xml Dateien. In diesem 2. PEAR-1.9.4 Ordner befinden sich u.a. die Dateien PEAR.php und PEAR5.php. Der Inhalt dieses Ordners (achtung, es gibt in diesem Ordner nochmal einen PEAR Unterordner, darin befinden sich aber NICHT die Dateien PEAR.php und PEAR5.php!) wird ebenso in das include-Verzeichnis kopiert.

Es ist richtig, wenn in unserem include-Ordner jetzt die Ordner

  • adodb
  • OS
  • PEAR
  • scripts

und die Dateien

  • PEAR.php
  • PEAR5.php
  • System.php
  • und ein paar andere (README, INSTALL, LICENSE...)

sind.

  • Zend-Framework

Im Ordner ZendFramework-1.x.-minimal gibt es nochmal den selben Ordner (je nachdem, wie die Archive entpackt wurden). Darin den Ordner library. Darin wieder einen Ordner Zend. Diesen kopieren wir auch in das include-Verzeichnis, so dass er genau an der selben Stelle ist, wie die Ordner in der Auflistung oben.

Dateiliste bis Zend.png

  • PEAR-Pakete Log

Im Ordner Log-1.x.x gibt es nochmal den Ordner Log-1.x.x und darin mehrere Ordner (docs, examples, Log,misc..) und die Datei Log.php. Wir kopieren den Ordner Log und die Datei Log.php in den include-Ordner, so dass die Log.php direkt bei der PEAR.php und PEAR5.php ist.

  • PEAR-HTTP_WebDAV_Server (Optional)

In dem Ordner HTTP_WebDAV_Server... gibt es nochmal so einen Ordner. Den Inhalt des 2. Ordners HTTP_WebDAV_Server... (es muss u.a. die Datei file.php und der Ordner HTTP direkt sichtbar sein) kopieren wir wieder in den include-Ordner. Die Datei file.php muss sich jetzt in /volume1/web/include/file.php befinden und der Ordner HTTP dann unter /volume1/web/include/hHTTP , nur dann wird es vom Install-Skript später richtig erkannt. Tools und tests kann man (wahrscheinlich) weglassen. Ebenso die INSTALL, README, LICENSE, TODO-Dateien.

  • LetoDMS-Core

Kann eigentlich irgendwo sein. Natürlich muss der Webserver auf das Verzeichnis zugreifen können, weswegen hier eventuelle open_basedir Einstellungen zu beachten sind (siehe Vorbereitungen). Wir kopieren den Inhalt des LetoDMS-Core-3.x.x -Ordners mit der Datei Core.php und den Ordner Core und tests in den /volume1/web/letodms Ordner. Dieser müsste durch das anlegen eines vhosts wie oben beschrieben schon vorhanden sein. Jetzt noch die Versionsnummer löschen und fertig. Diesen Pfad müssen wir später im Installations-Skript eingeben, er ist aber schon vorausgewählt. Wichtig dabei die Groß- und Kleinschreibung beachten! Man kann auch alles klein schreiben, muss das aber auch bei der Abfrage des Installationsskriptes angeben!

  • LetoDMS-Lucene (Optional)
genauso wie bei LetoDMS_Core. Es müssen die Datei LetoDMS_Lucene/Lucene.php und der Ordner LetoDMS_Lucene/Lucene vorhanden sein. Die package.xml wird nicht benötigt.
  • LetoDMS

Jetzt endlich kann der Inhalt des letoDMS-3.x.x-Ordners, in dem wieder ein solcher ist, in den Ordner letodms kopiert werden. Also nicht den Ordner selber, sondern die Ordner conf inc install und alle Dateien.

Das sieht dann so aus:

Dateien im Ordner web/letodms:

Dateiliste letodms.png

Dateien im ordner web/include:

Dateiliste include.png

Installationsskript starten

Ressourcen

  • Zum Überprüfen der Servereinstellungen empfielt es sich während der Einrichtung eine info.php zu machen mit
<?php
phpinfo ();
?>

Auszug aus der original README-Datei:

2. Detailed installation instructions (single instance)

You need a working web server with MySQL/PHP5 support and the files LetoDMS-<version>.tar.gz and LetoDMS_Core-<version>.tgz. For the full text search engine support, you will also need to unpack LetoDMS_Lucene-<version>.tgz.

  • Unpack all the files in a public web server folder. If you're working on
 a host machine your provider will tell you where to upload the files.
 If possible do not unpack LetoDMS_Core-<version>.tgz and
 LetoDMS_Lucene-<version>.tgz. below the document root of your web server.
 Since they are pear packages they can also be installed with 'pear install
 LetoDMS_Core-<version>.tgz' and 'pear install LetoDMS_Lucene-<version>.tgz'
  • Unless ADODB is not already installed on your system, download
 (http://adodb.sourceforge.net/) and unpack it in the letoDMS 
 directory
  • The PEAR package Log is also needed. It can be downloaded from
 http://pear.php.net/package/Log. Unpack it a place where it can be
 found by php.
  • The package HTTP_WebDAV_Server is also needed. It can be downloaded from
 http://pear.php.net/package/HTTP_WebDAV_Server. Unpack it a place where

it can be found by php.

  • Create a data folder somewhere on your web server including the subdirectories
 staging and lucene and make sure they are writable by your web server,
 but not accessible through the web.

For security reason the data folder should not be inside the public folders or should be protected by a .htaccess file.

If you install letodms for the first time continue with the database setup.

  • Create a new database on your web server
 e.g. for mysql:

create database letodms;

  • Create a new user for the database with all permissions on the new database
 e.g. for mysql:

grant all privileges on letodms.* to letodms@localhost identified by 'secret'; (replace 'secret' with you own password)

  • Optionally import "create_tables.sql" in the new database
 e.g. for mysql:

cat create_tables.sql | mysql -uletodms -p letodms

 This step can also be done by the install tool.
  • create a file ENABLE_INSTALL_TOOL in the conf directory and point
 your browser at http://host/<letodms-dir>/install


NOTE: UPDATING FROM A PREVIOUS VERSION

- make a backup archive of your installation folder - make a backup archive of your data folder - dump your current database - extract the letoDMS archive to your web server - edit the conf/settings.xml file to match your previuos settings

 (you can even replace the file with your own one eventualy adding by hand
 the missing new parameters)

- create a file ENABLE_INSTALL_TOOL in the conf directory and point

 your browser at http://host/<letodms-dir>/install

The install tool will detect the version of your current letodms installation and run the required database updates.


3. Requirements ================================================================

letoDMS is a web-based application written in PHP. It uses the MySQL RDBMS to manage the documents that were uploaded into the application.

Make sure you have PHP 5.0 and MySQL 5 or higher installed. letoDMS will work with PHP running in CGI-mode as well as running as module under apache. If you want to give your users the opportunity of uploading passport photos you have to enable the gd-library (but the rest of letoDMS will work without gd, too).

You will also need to download and install the ADODB database abstraction library from http://adodb.sf.net/ unless it is not installed on your system already. The webdav server uses the pear packages 'Log' and 'HTTP_WebDAV_Server'. Both can be downloaded from http://pear.php.net.

If you plan to use the full text search engine you will have to install the zend framework, too.

--Atarifreak 23:33, 28. Okt. 2012 (CET)