UPDATE: SeedDMS 4.3.13 auf einem QNAP TS-451 (TS-251) installieren

Eine Information vorab: Ich übernehme keine Haftung wenn aufgrund von Fehlern in meiner Anleitung irgendwelche Schäden an eurem NAS oder dessen Daten auftreten. Solche sind zwar nicht zu erwarten, aber wenn wir uns als Admin auf der Konsole des NAS bewegen kann man als unerfahrener Benutzer (als erfahrener Benutzer natürlich auch) diversen Schaden anrichten. Ich überlasse es daher jedem Leser selbst ob und wie er sein NAS System zerschießt. Ich selbst habe die Installation entsprechend dieser Anleitung durchgeführt, mein QNAP war dabei auf dem Stand einer frisch installierten Firmware 4.1.1. Es kann sein, daß unter anderen Firmware-Versionen die Standard-Konfiguration des QNAP und damit auch das Vorgehen für die Installation ein wenig abweicht.

Nachdem ich vor einiger Zeit auf meinem QNAP TS-219P+ SeedDMS installiert habe und der Blog-Eintrag dazu auf recht große und positive Resonanz gestoßen ist, wird es Zeit für ein Update.

Inzwischen gibt es nicht nur neue Firmware Updates (aktuell zum Zeitpunkt des Verfassens dieses Blog-Eintrags war Version 4.1.1) die ein paar Dinge vereinfachen in der Installation, sondern ich habe inzwischen auch den Schritt von einem 2-Bay System auf ein etwas potenteres 4-Bay NAS mit Intel CPU gemacht: das TS-451. Ich gehe davon aus das die folgende Anleitung für die meisten Intel-basierten QNAPs identisch funktionieren sollte, dennoch würde ich mich freuen wenn zukünftige Leser in Ihren Posts auch Ihr QNAP Model und die Firmware posten könnten, ich werde dies dann in der folgenden Liste ergänzen.

Erfolgreiche Installationen von SeedDMS mit QNAP Geräten

  • QNAP TS-451 / Firmware v4.1.1
  • QNAP TS-470 / Firmware v4.1.2
  • QNAP TS-269Pro / Firmware v4.1.2

Ich möchte hier nun den von mir verfolgten Ansatz vorstellen wie man das kostenfreie DMS (=Dokumenten Management System) „SeedDMS“ aus einem Intel-basierten NAS (=Network Attached Storage), im speziellen auf dem QNAP TS-451, installiert.

Voraussetzungen für die Installation

SeedDMS basiert auf PHP, das bringt der Apache Webserver der im QNAP NAS läuft bereits mit. Ebenfalls wird eine Datenbank benötigt, hier wird MySQL unterstützt. Auch diese Kann über das Webinterface des QNAP einfach aktiviert werden. Dazu einfach auf der Weboberfläche des QNAP auf „Systemsteuerung“ gehen, dort unter „Anwendungen“ auf „MySQL-Server“ klicken und verifizieren, dass die Checkbox „MySQL-Server aktivieren“ aktiviert ist.

Die Checkbox „TCP/IP-Netzwerk aktivieren“ muss, zumindest für SeedDMS, nicht aktiviert sein und aus Sicherheitsgründen würde ich den Zugriff auf die Datenbank auch nur von lokal zulassen, sprich die Checkbox deaktivieren.

Da SeedDMS Dokumente auch analysieren (Texte extrahieren) und Thumbnail-Ansichten davon erstellen muss, sind noch zusätzliche Pakete zu installieren, hierauf gehe ich im Detail in den folgenden Abschnitten ein.

Benötigt werden konkret die folgenden, zusätzlichen Pakete:

  • pdftotext: ein Tool, welches Bestandteil des xpdf Pakets ist, zum Extrahieren von Text aus PDF-Dokumenten, dies wird benötigt, damit SeedDMS auch Inhalte von PDF-Dateien für die Volltextsuche indizieren kann. Ohne pdftotext werden von PDF-Dateien nur die Dateinamen indiziert.
  • Catdoc und XLS2CSV: hiermit kann Text aus Word und Excel Dokumenten extrahiert werden. Auch diese beiden Kommandos werden für die Volltext-Suche benötigt
  • ImageMagick: für die Erstellung von Thumbnails (kleine Vorschaubilder in den Listenansichten) von Bildern wird das convert-Kommando von ImageMagick benötigt. Ohne dieses wird SeedDMS keine Vorschaubilder in der Weboberfläche anzeigen.
  • ghostscript: zur Erstellung von Thumbnails von PDD-Dateien

Dann benötigt SeedDMS aber auch noch ein paar andere Pakete, die nicht zum Standardumfang der QNAP Software gehören, wie diese installiert werden beschreibe ich im folgenden Abschnitt.

Schritt 1: Benötigte third party Pakete installieren

Die oben genannten Pakete zum Betrieb von SeedDMS mit all seinen Funktionen sind in der Standard Firmware von QNAP nicht installiert und müssen nachträglich installiert werden.
Da es sich jedoch nicht um selbständige Applikationen handelt, sind diese im App Center nicht zu finden und müssen über den Paketmanager installiert werden.

Paketmanager installieren

Als Paketmanager kommt bei QNAP Optware IPKG zum Einsatz.
Dieser kann sehr einfach in der Web-Oberfläche des QNAP im App Center installiert werden, einfach in der Suche des App Centers „IPKG“ eingeben und dann auf  „Zu QTS hin… +“ klicken.

(Weitere Infos dazu findet man hier: http://wiki.qnap.com/wiki/Install_Optware_IPKG)

Nach der Installation erscheint das Icon auf dem Dashboard des NAS Webinterfaces, damit öffnet man das ipkg Webinterface über welches man dann die gewünschten Pakete installieren kann. Ich bevorzuge jedoch den Weg über die Konsole, da wir eh auf der Konsole arbeiten müssen für die Einrichtung von SeedDMS und die Installation der Pakete dort schneller von der Hand geht.

Nun ist es also an der Zeit sich auf dem QNAP in der Konsole per SSH anzumelden (mit dem Admin Benutzer und seinem Passwort = identische Daten wie im Webinterface)

Ich nutze hierzu das kostenfreie Tool „Putty„, hat man sich erfolgreich an der Konsole angemeldet geht es an das Installieren der benötigten Pakete.

Installieren von PdfToText / xpdf

Will man auch PDF-Dokumente indizieren für die Volltextsuche in SeedDMS, so wird das Kommando pdftotext benötigt um Text aus PDF-Dokumenten zu extrahieren. Dieses ist Bestandteil des xpdf Pakets welches man mit ipkg installiert über den Konsolenbefehl:

Die Ausgabe in der Konsole sollte dann wie folgt aussehen:

Wichtig ist nur, dass am Ende „Successfully terminated“ ausgegeben wird. Ist das nicht der Fall, so ist xpdf nicht korrekt installiert und es wird auch keine Indizierung von PDF-Dokumenten möglich sein. Testen kann man die Installation indem man eine PDF Datei auf das NAS lädt und den Befehl „pdftotext -nopgbrk <Dateiname des pdf> -“ (wichtig ist das Minus am Ende, da sonst die Ausgabe in eine txt-Datei umgeleitet wird) ausführt. Als Beispiel hier zwei Kommandos mit denen man einfach eine PDF Datei von der QNAP Homepage runterlädt und dann den Text extrahiert:

Das Ergebnis dieser beiden Kommandos sollte ein Output von einer Menge Text auf der Konsole sein (der Inhalt des PDF-Dokuments eben). Wenn das klappt, sollte pdftotext erfolgreich installiert sein und muss nur noch in SeedDMS konfiguriert werden. Mehr dazu später.

Wichtig: das PDF-Dokument, welches zum Testen benutzt wird, muss unbedingt textuellen Inhalt haben und nicht nur eingebettete Bilder, sonst kann auch pdftotext keinen Text extrahieren. pdftotext ist KEIN OCR Programm, Texte in Bilddaten werden also nicht extrahiert und dementsprechend kann auch SeedDMS sie nicht in einer Suche berücksichtigen.

In aller Kürze dazu ein Exkurs: Für wen eine Texterkennung wichtig ist, der sollte sich einmal das Paket tesseract-ocr ansehen, dieses kann auch mittels IPKG installiert werden (die passenden Sprachpakete müssen separat installiert werden tesseract-ocr-lang-eng bzw. tesseract-ocr-lang-deu). Damit könnte SeedDMS mit minimalen Anpassungen auch eine OCR Erkennung durchführen, hierzu werde ich aber ggf. in einen separaten Beitrag aufsetzen, da dies den aktuellen Scope des Posts hier verlässt. Grob gesagt, tesseract-ocr erwartet Bilder als Input und speichert den erkannten Text dann in einer Text-Datei. In Zusammenspiel mit ImageMagick kann hier also auch eine völlig automatische OCR Erkennung realisiert werden, wie gut die Erkennungsrate ist kann ich jedoch nicht sagen, dafür fehlen mir die Erfahrungswerte. IPKG installiert die recht alte Version 2.x von tesseract-ocr, diese kann nur mit TIF-Bildern umgehen wie es scheint. Neuere Versionen sind in der Lage auch anderer Bildformate zu lesen. Wenn man dann ein lauffähiges tesseract hat, muss man noch SeedDMS in der settings.xml einen Eintrag erstellen für die Bild-Formate die man damit parsen möchte. Unbedingt vorher ein Repository in ipkg auswählen in dem eine neuere Version von imagemagick enthalten ist und ggf. die Version 3.x von tesseract-ocr. Bevor man sich jedoch auf dieses Abenteuer einlässt, sollte man erstmal SeedDMS ohne OCR Funktion vollständig und Fehlerfrei zum Laufen bekommen. Also zurück zum eigentlichen Thema.

CatDoc und XLS2CSV

Für die Indizierung von Word-Dokumenten benötigt SeedDMS ein Tool zur Extraktion wie catdoc, welches man auch über ipkg installieren kann:

Die Ausgabe sollte dann wie folgt aussehen:

Auch hier ist es wieder wichtig am Ende die Zeile „Successfully terminated“ zu sehen.

Excel-Dateien werden standardmäßig von SeedDMS mit „ssconvert“ umgewandelt zur Indizierung, dieses habe ich in ipkg jedoch nicht gefunden, dafür einen Hinweis in der Dokumenation von catdoc, dass für Excel Tabellen auch xls2csv genutzt werden kann. Das wurde mit catdoc bereits installiert, nun muss jedoch auch die Konfiuration von SeedDMS angepasst werden damit er diesen Kommandozeilen Aufruf nutzt (anstelle von dem ssconvert aufruf sollte es dann heißen „xls2csv -l -dUTF-8 %s“). Das kann im Admin Bereich in dem Feld „application/vnd.ms-excel:“ (unter den erweitereten Optionen zu finden). Mehr dazu später bei der Konfiguration von SeedDMS.

ImageMagick

Die Installation von ImageMagick ist optional und wird nur benötigt wenn man Vorschau Thumbnails generieren möchte für alle möglichen Dokumente.

Ich selbst bin mir noch nicht ganz schlüssig ob ich die Preview-Funktion auf dem QNAP nutzen möchte, die Gründe die gegen die Nutzung vom Thumbnails sprechen sind folgende:

  • SeedDMS speichert die Thumbnails als png-Dateien (mit einem hohen Qualitätsfaktor), für so kleine Dateien (100px/100px bzw 40px/40px) macht das aus meiner Sicht wenig Sinn. Ein mit ImageMagick generiertes Thumbnail mit 100px braucht hier (je nach Detailgrad) auf meinem QNAP ca. 30KB und mehr, wenn man nun bedenkt, dass die PDFs von denen ich Thumbnails generiere ca. 50-70KB haben ist das ein ziemlich mieses Verhältnis, gerade wenn man das hochrechnet auf viele Tausend Dateien ist der Speicherbedarf der hierdurch entsteht mit fast 40-60% des Originaldokumentes schon sehr hoch. Zudem kommt ja noch das zweite Thumbnail für die Listenansicht mit 40px/40px. Würde man hier umstellen auf jpg wäre das sicherlich deutlich geringer (eher 3-7kb pro Thumbnail nach meinen Tests), dann muss man jedoch auch den Previewer bzw. die Aufrufende Klasse anpassen, kein Hexenwerk aber man bewegt sich nicht mehr am Standard und muss es mit jedem neuen Release nachziehen. Um dieses ungünstige Verhältnis etwas zu verringern habe ich mich entschlossen wenigstens auf die zwei verschiedenen Größen für Thumbnails zu verzichten, dazu muss man einfach die Werte in der SeedDMS Konfiguration (conf/settings.xml) für „previewWidthList“ und „previewWidthDetail“ auf den gleichen Wert setzen.
  • Der Nutzen eines Thumbnails ist bei den meisten Formaten eher gering (ausser bei Bildsammlungen natürlich) da ich jedoch eher PDFs archiviere ist das für mich eher nebensächlich, muss man selbst entscheiden wie viel einem der Mehrverbrauch an Speicher wert ist, relevant wird es natürlich erst ab ein paar 10-Tausend Dateien im DMS, dann geht aber auch das ein oder anderer Giagbyte nur für die Thumbnails hops.

Optional: Wer Wert darauf legt auch TIF-Unterstützung in imagemagick zu haben, wird mit der Version 6.6.1-5 die mit den Standard-Einstellungen von ipkg installiert wird, nicht glücklich werden. Um eine neuere Version (6.6.9-1) zu installieren, muss vor dem Ausführen des install Befehls die Quellenliste von ipkg angepasst werden, dazu in der Datei „/share/CACHEDEV1_DATA/.qpkg/Optware/etc/ipkg.conf“ z.B. den Kommentar (das #-Zeichen) beim ersten src Eintrag entfernen. Aus

 wird dann

Anschließend muss die Paketliste von ipkg aktualisiert werden:

In kann nicht beurteilen wie verlässlich die o.g. Quelle für Pakete ist, sie ist jedoch im Standard config file von QNAP bereits enthalten, somit sollte es nicht der letzte Murks sein….bleibt zumindest zu hoffen. Generell sollte man ggf. nach der Installation von imagemagick die Zeile wieder auskommentieren und erneute ein ipkg update ausführen.

Damit Thumbnails generiert werden können von den einzelnen Dokumenten muss nun also ImageMagick installiert sein, dies kann man mit folgendem Aufruf installieren (hier werden dann ein paar mehr Abhängigkeiten direkt mit installiert für die verschiedenen Bildformate):

Auch hier wieder darauf achten, dass am Ende „Successfully terminated.“ steht.

Mit „/opt/bin/convert -version“ kann dann die Version von ImageMagick geprüft werden.

Aber das Generieren von Thumbnails für diverse Bildformate (jpg, gif, png, bmp) klappt damit schonmal, sofern 6.6.9 installiert wurde, sollte auch TIFF unterstützt werden.

Ghostscript

Wünscht man auch von PDFs Thumbnails zu erstellen, so muss hier noch ghostscript zu installiert werden.

Also noch ghostscript installieren mittels:

Der geneigte Leser weiss schon welcher Verweis jetzt kommt: Auch hier gilt, am Ende muss „Successfully terminated.“ in der Konsole stehen.

Damit hat man zumindest alles um auf der Kommandozeile mittels eines Kommandos wie „convert -resize 200×200 test.pdf[0] test.png“ die erste Seite eines PDF-Dokuments in ein PNG umzuwandeln und auf die Größe 200 x 200 Pixel einzupassen. Je nach Umgebung kann es sein das hier noch eine Warnung ausgegeben wird, es zählt aber nur das Ergebnis, sofern die PNG-Datei erstellt wurde und tatsächlich auch ein Thumbnail der ersten Seite des PDF darstellt, sollte es ok sein.

Wenn das Ganze dennoch im SeedDMS später nicht klappt, so lies sich das in meinem Fall dadurch beheben, dass in der php.ini höhere Werte für die Laufzeit von Scripten und speziell wohl auch eine Erhöhung des maximal von PHP nutzbaren Speichers erfolgte.

Die php.ini kann über die Admin-Oberfläche vom QNAP bequem editiert und gespeichert werden (unter „Systemsteuerung“ -> „Anwendungen“ -> „Webserver“ -> runter scrollen und im Bereich „php.ini bearbeiten“ auf den Button „Bearbeiten“ klicken. Dann die folgenden Werte anpassen:

Nach dem nun alle notwendigen Abhängigkeiten instaliert sind, kann man sich an die eigentliche Installation von SeedDMS machen

Sendmail konfigurieren für den E-Mail-Versand von SeedDMS

SeedDMS kann zu verschiedenen Events E-Mails versenden um einen Benutzer oder eine Gruppe von Benutzern zu benachrichtigen.

SeedDMS 4.x nutzt dazu die mail-Funktion von PHP, diese wiederum nutzt das lokale sendmail zum versenden von E-Mails. Also muss sendmail auf dem QNAP korrekt konfiguriert werden, was zum Glück sehr einfach über die Weboberfläche getan werden kann.

In den Systemeinstellungen muss dazu nur unter „Benachrichtigungen“ der SMTP-Server konfiguriert werden.

Man benötigt also die Daten zu einem externen, korrekt konfigurieren Mail-Server (kann auch Gmail, Yahoo oder sonst etwas sein).

Es muss also der Hostname unter „SMTP-Server“ eingetragen werden, sowie Port, E-Mail Adresse (Absender), Benutzername und Passwort eingetragen werden. Dann sollte man eine Testmail versenden, erst wenn das geklappt hat (beim ) und man die Testmail erhalten hat, ist der Mailversand und damit sendmail korrekt konfiguriert.

MySQL Datenbank für SeedDMS vorbereiten

SeedDMS speichert seinen Daten in einer SQL Datenbank. Da auf dem QNAP MySQL bereits vorinstalliert ist, sollten wir das auch nutzen. Dazu muss jedoch zuerst eine neue Datenbank angelegt werden sowie ein user für SeedDMS.

Da zu Begin ja bereits phpMyAdmin instaliert wurde, sollte man die neue Datenbank und den User darüber anlegen, es kann einfach im App Center aufgerufen werden. In der Standardkonfiguration ist der Benutzer „root“ und das Password „admin“.

Nachdem man sich im webinterface in phpMyAdmin angemeldet hat, klickt man auf den Reiter „Benutzer“. Auf der folgenden Seite dann auf „Benutzer hinzufügen“. In dem folgenden Formular tipt man in das Feld „Benutzername“ den neuen Namen „seeddms“. Unter „Host“ wählt man in der Dropdown-Liste „Lokal“. Und das Passwort lässt man am besten generieren mit einem Klick auf den Button „Generieren“. Das generierte Passwort notiert/kopiert man sich nun, es wird später in der settings.xml eingetragen.

Dann im Abschnitt „Datenbank für Benutzer“ noch den Haken setzen bei „

Nun ganz unten auf der Seite auf „Ok“ klicken. Die Datenbank und der Benutzer sollten nun angelegt sein.

Was den genauen Ablauf zum Anlegen von Datenbanken und Benutzern angeht, so verweise ich hier für weitere Fragen auf die Dokumentation von PhpMyAdmin.

Schritt 2: SeedDMS herunterladen und installieren

SeedDMS wird gehostet auf Sourceforge, ich beschreibe aktuelle die Installation von SeedDMS in der letzten Version des Major Relases 4, der Version 4.3.13. Die Version 5 ist zum Zeitpunkt noch in einem Pre-Release Stadium und daher für mich nicht interessant, da mir die Erhaltung meiner Daten wichtiger sind als die neusten Features des DMS 🙂

Ich installiere seedDMS im Verzeichnis /share/Web/seeddms damit beziehen sich alle folgenden Schritte auf dieses Verzeichnis, wenn es woanders installiert werden soll, müssen die Pfade entsprechend angepasst werden.

Mann hat zwei Möglichkeiten SeedDMS herunter zu laden, einmal in vier einzelnen Paketen oder als „quickstart“-Paket.

Ich habe mich in diesem Post zum Download des Quickstart Paketes entschlossen, was etwas komfortabler ist im Setup-Prozess.

Mittels wget kann man das Paket direkt auf das NAS von der Konsole aus hertunterladen, dazu legen wir zuerst das Verzeichnis „share/Web/seeddms“ an und laden dann das Archiv herunter:

Nun wird das Archiv im seeddms Verzeichnis entpackt:

Der Inhalt wird dann in ein Unterverzeichnis „seeddms43x“ entpackt, diese Untverzeichnis sollte dann wie folgt aussehen:

Das eigentliche, im Webserver öffentlich zugreifbare Verzeichnis ist das „www“ Verzeichnis (ist auch nur ein symbolische Link auf der Ordner „seeddms-4.3.13“.

Da nun die Verzeichnis-Struktur recht verschachtelt ist (wir befinden uns ja quais im Pfad „/share/Web/seeddms/seeddms43x/www“ wenn wir von dem für den Apache Server relvanten INhalten sprechen) habe ich mich entschieden ein weiteren symbolischen Link auf das www Verzeichnis direkt im http-root Verzeichnis des Webservers (/share/Web) anzulegen:

Damit haben wir also das www Verzichnis direkt im webserver root unter „dms“ erreichbar gemacht. Das heisst wir können das DMS später einfach mit der URL „https://<nas ip>:8081/dms“ aufrufen (anstelle des etwas unschönen Pfades „https://<nas ip>:8081/seeddms/seeddms43x/www“.

Einige der Dateien von SeedDMS sind scheinbar unter Windows erstellt worden und die Zeilenumbrüche sind auch noch Windows Zeilenumbrüche, ich habe daher rekursiv auf alle PHP dateien den Befehl dos2unix ausgeführt um alle Umbrüche zu konvertieren:

Zuletzt noch einmal alle Dateirechte setzen auf den neuen Dateien und Verzeichnisse, damit Dateien von SeedDMS auch geschrieben werden können (mein Ansatz ist vermutlich etwas radikal alles auf 755 zu setzen, aber ich wollte nicht mit trial und error rausfinden welche Rechte jeweils auf den einzelnen Ordnern und Dateien notwendig sind, rein theoretisch sollte es ja sogar reichen 700er Rechter zu sezten für den httpdusr mit dem Apache läuft):

Zuletzt würde ich noch das Verzeichnis /share/Web/seeddms (und dessen Unterverzeichnisse) vor Zugriffen über das Web schützen, dazu eine Datei mit dem Namen „.htaccess“ (Wichtig: vor dem Punkt darf nichts stehen, die Datei wird von Apache genau mit diesem Namen erwartet in der Standard Konfiguration) in eben diesem Ordner erstellen mit folgendem Inhalt:

Nun muss die Konfiguration von SeedDMS noch angepast werden, dazu sind zwei Dateien zu editieren.

Anpassung der zentralen settings.xml Datei

Die settings.xml ist, wenn obiger Anleitung befolgt wurde, unter /share/Web/dms/conf/settings.xml zu finden.

Dies ist die zentrale Konfigurationsdatei von SeedDMS. Hier müssen nun die Pfade angepasst werden damit SeedDMS weiss wo es Dateien, Suchdaten, Thumbnails und uploads findet und wo es selbst installiert ist.

  1. Dazu sind alle Vorkommen (es sollten 5 sein) von „/home/www-data/seeddms43x“ zu ersetzen durch „/share/Web/seeddms/seeddms43x„.
    Der Wert des Attributs httpRoot=“/seeddms/“ muss geändert werden in httpRoot=“/dms/“.
    Die betreffenden Zeilen in der Konfiguration sollten nun wie folgt aussehen (die Zeilenumbrüche können natürlich auch wegggelassen werden):



    Hinweis: Bitte unbedingt prüfen ob auch alle Pfade die oben eingetragen wurden auch exisieren. Ein paar Kommentare zeigten, das nicht immer alle Verzeichnisse existierten und es dann zu Fehlern kommt.
  2. Die Werte von dbPass, dbUser und dbDatabase sind anzupassen an die gewählten Werte der Datenbank also z.B. dbuser=“seeddms“ dbDatabase=“seeddms“ und das Passwort welches beim einrichten des Datenbankusers gewäht wurde in dbPass=“…“ eintragen. Als dbDriver wird mysql gewählt: dbDriver=“mysql“.
    Die betreffende Zeile in der Konfiguration sollte dann wie folgt aussehen (wobei bei dbPass natürlich das von euch gewählte Passwort für den MySQL Benutzers „seeddms“ eingetragen werden muss):
  3. Nun sind noch die Pfade auf die einzelnen converter einzutragen (die zum extrahieren des Textes aus Dokumenten benötigt werden). Ein Problem bei der QNAP Firmware scheint zu sein, dass Pakete die nachträglich per ipkg installiert wurden, noch nicht im Pfad des httpdusr liegen beim starten des Apache Dienstes. Somit reichen die in der Konfiguration aufgeführten converter Kommandos nicht aus, da sie keinen absoluten Pfad beinhalten. Zudem wird anstelle des Befehls „ssconvert“ der neu installierte Befehl „xls2csv“ für die Extrahierung von Text aus Excel-Tabellen konfiguriert. Von einem Leser bekam ich zudem noch den wertvollen Tip, dass SeedDMS offenbar keine Texte indiziert die nicht UTF-8 kodiert sind, daher muss bei den einzelnen Konvertern jeweils noch der UTF-8 Flag gesetzt werden.
    Der Bereich der Konverter sollte nach der Anpassung wie folgt aussehen:

    Die beiden Zeilen der Konverter für audio/mp3 und audio/mpeg kann man im übrigen einfach löschen, das Tool id3 ist auf dem QNAP nicht verfügbar und wird daher eh nicht ausgeführt werden (bzw. es wird immer einen Fehler geben). Ob jemand wirklich id3-tags aus MP3 indizieren möchte für die Suche, muss jeder selbst wissen. Mann kann z.B. mp3info installieren und dazu nutzen:

    Die Zeile für den converter sollte dann wie folgt aussehen:
  4. wer möchte kann noch den Wert language=“en_GB“ ändern in language=“de_DE“ um Deutsch als Standard-Sprache zu wählen.
  5. Zuletzt sollte man nur noch die Absenderadresse für den E-Mail Versand anpassen. Dazu den Wert von smtpSendFrom=“…“ auf eine valide, existierende E-Mail Adresse ändern. Die Werte für smtpServer und smtpPort sollten so belassen werden.

Anpassung des Preview Scripts:

Im Preview Script wird ebenfalls noch ein Aufruf auf den converter von imagemagick ausgeführt, dieser muss auch noch durch den abosluten Pfad ersetzt werden auf die converter binary.

Dazu die Datei „/share/Web/seeddms/seeddms43x/pear/SeedDMS/Preview/Previewer.php“ bearbeiten und alle vorkommen von „convert“ ersetzen durch „/opt/bin/convert“. Am einfachsten geht das mit sed in der Kommandozeile (kann in einem beliebigen Verzeichnis ausgeführt werden, da die zu ändernde Datei absolut referenziert wird in der Befehlszeile, bitte dennoch anschließend in der Datei noch einmal prüfen ob wirklich alle Vorkommen von „convert“ ersetzt wurden durch „/opt/bin/convert“):

Wer Thumbnails für Bitmap Dateien (.bmp) hinzufügen möchte, ergänzt unter der Zeile

noch die folgende Zeile ein:

Wer imagemagick in der neueren Version 6.6.9 installiert hat, kann nun noch Tiff Dateien hinzufügen zur Liste der Dateien für die ein Thumbnail generiert werden soll durch einfügen einer weiteren Zeile:

Anpassung der Upload Scripte in SeedDMS:

Beim Upload von Dateien gibt es in SeedDMS noch eine Unzulänglichkeit was die Bestimmung von MIME-Types angeht. SeedDMS vertraut hier auf den MIME-Type den der Browser des Benutzers übergibt, diese ist aber nicht unbedingt korrekt. Bei meinen Tests mit Firefox gab dieser z.B. für PDFs nie den korrekten MIME-Type „application/pdf“ an, dies führte dazu, das SeedDMS bei dem versuch den Text zu extrahieren für die Suche, keinen passenden converter fand und somit PDFs die mit dem Firefox hochgeladen wurden, nicht indiziert wurden.

Der folgende kleine Patch „überredet“ SeedDMS doch besser selbst den MIME-Type von neuen Dokumenten zu bestimmen und nicht dem Browser zu vertrauen (kann auch wieder an beliebiger Stelle im Filesystem ausgeführt werden):

Das wars, nun sollte SeedDMS fertig sein für das finale Setup, das Anlegen der Datenbanktabellen.

Damit man nun den Installer von SeedDMS starten kann, muss eine Dummy Datei mit dem Namen „ENABLE_INSTALL_TOOL“ im Verzeichnis „/share/Web/dms/conf“ angelegt werden, der Inhalt ist egal, die Datei muss nur da sein.

Ein einfacher touch Befehl reicht:

Dann ruft man im Browser die Url zu dem Installationsscript auf, die jedoch variiert je nachdem auf welchen Ports euer Webser läuft und ob https aktiv ist.

https://<eure nas-ip>:8081/dms/install/index.php

Nun sollte man die Startseite des installationsscriptes sehen, die zuerst prüft ob die Abhängigkeiten vorhanden sind ung ggf. Warnungen ausgibt. Wenn jedoch die obigen Schritte alls ausgeführt wurden, sollte keine Warnung kommen und auch nichts geändert werden müssen.

In meinem Fall sieht die Meldung wie folgt aus:

install_screen_1_seeddms

Wenn nun alles stimmt, muss man noch den Haken setzen bei „Create database tables“ (bzw. Datenbank Tabellen anlegen) um die Datenbank Tabellen initial anlegen zu lassen und dann auf Apply /  klicken.

Dann arbeitet das NAS einen kurzen Moment und es sollte folgende Meldung zu sehen sein:

install_screen_2_seeddms

Nun muss nur noch die zuvor erstelle Datei „ENABLE_INSTALL_TOOL“ gelöscht werden, dies kann direkt durch den Link „Lösche ENABLE_INSTALL_TOOL wenn möglich“ erledigt werden, wenn die Datei-Rechte wie oben beschrieben gesetzt wurden. Andernfalls muss man die Datei eben von Hand löschen.

Dann kann man sich mit Benutzer „admin“ und Password „admin“ am DMS anmelden über den Link der in der Abschlussmeldung zu sehen ist.

Das Admin Passwort sollte man natürlich zuerst mal ändern in etwas sichereres. Zudem sollte man die E-Mail Adresse des Administrators ändern auf eine existierende Adresse, damit Benachrichtigungen an den Administrator erfolgreich gesendet werden können. Zum ändern von Passwort und E-Mail Adresse einfach in SeedDMS oben recht im Drop-Down Menu auf „Mein Profil“ klicken, dann Passwort und E-Mail Adresse ändern und speichern.

Stopword Liste für Lucene anlegen

Wenn nun alles läuft sollte man noch eine stopword-Liste anlegen. Eine solche Liste enthält alle Wörter die von Lucene (der „search engine“ / die Suche die SeedDMS nutzt) NICHT indiziert werden sollen, weil sie so oder so in so gut wie jedem Dokument vorkommen und somit in einem Suchindex nur Platz verbrauchen aber wenig nutzen haben. Wann sucht man z.B. schon mal alle Dokumente in denen das Wort „und“ auftaucht? Eben, normalerweise nie.

Als Basis-Liste für eine deutsche Stopword-Liste könnte man folgende nehmen:

Die Stopwords schreibt man einfach in eine Text-Datei (pro Zeile ein Wort) und kopiert diese auf das NAS, z.b. unter ein neues Verzeichnis „/share/Web/seeddms/stopwords/“ die Datei habe ich „stopwords_de.txt“ benannt, ist aber eigentlich egal. Natürlich kann man sich auch weitaus umfangreichere Stopwords-Dateien aus dem Internet ziehen, wichtig ist nur das jedes Wort in eine Zeile steht (Komma-Separierte Listen gehen z.B. nicht) und das das Character Encoding stimmt.

Nun muss man in der Konfiguration (settings.xml) nur noch auf diese Datei verweisen (natürlich ist der Pfad und Name entsprechend der von euch gewählten Nomenklatur anzupassen) im bestehenden Knoten „edition“ muss dazu das Attribut „stopWordsFile“ angepasst/hnizugefügt werden mit dem konkreten Pfad auf eurer Stopwords-Datei:

Um zu prüfen ob die Liste gezogen wird, einfach den Volltext-Index neu bauen über die Admin Maske von SeedDMS (Vorsicht: dauert bei vielen Daten im DMS laaaange) und dann die Volltext-Index Info Seite in SeedDMS aufrufen. In der Liste sollten nun keine Zeilen auftauchen die mit „content:“ beginnen und dann ein Stopwort anzeigen. Natürlich muss für einen sinnvollen Test mindestens eine Datei im DMS liegen in der die Wörter auch enthalten sind und die inidziert werden kann.

Kleiner TIP noch wenn man nur leere Seiten im Browser angezeigt bekommt:

Ich hatte anfangs das Problem das manche Seiten bei SeedDMS einfach weiss blieben, Ursache war ein PHP Fehler im Script der bei der Standardeinstellung des Webserver bzw. der PHP Installation auf dem QNAPdazu führt das die Seite im zweifelsfrei komplett leer bleibt. Damit man wenigstens die Ursache des Fehlers sieht, sollte man in der php.ini Datei das Anzeigen von Fehlern aktivieren, dazu ist die Zeile

zu ändern in

Virtuellen Host einrichten im Apache

diese Schritt ist optional und kann auch genauso weg gelassen werden. Ich fand die URL zum Aufruf des DMS im Browser recht unschön, daher habe ich im Apache einen virtuellen Host konfiguriert.

Das ganze kann über die Web-Oberfläche vom QNAP gemacht werden. Dazu unter „Anwendungen“ -> „Webserver“ auf den Reiter „Virtueller Host“ klicken. Hier den Haken bei „Virtuelle Host aktivieren“ setzen. Anschließend auf „Einen virtuellen Host erstellen“ klicken. In der Maske dann einen Hostnamen vergeben z.B. „dms“ in der Liste der Ordnernamen dann den Ordner „dms“ auswählen. Als Protokoll würde ich „https“ empfehlen, kostet nix und macht die ganze Kiste etwas sicherer. Beim Port muss man überlegen was ggf. mit Firewalls die im Firmennetz im einsatz sind kollidieren könnte. Die Ports 443, 8080 und 8081 sind schon belegt von den QNAP  Standardeinstellungen. Ich habe mal port 8000 gewählt. Nachdem man die Einstellungen gespeichert hat, lauscht also der Apache auf den virtuellen Host auf Port 8000 mit SSL Verschlüsselung, dessen Basisverzeichnis unter „/share/Web/dms/“ liegt.

Bitte beachten: „dms“ ist der symlink auf das eigentliche Installationsverzeichnis den ich zuvor gesetzt habe.

Nun muss noch die Konfiguration des http-root von SeedDMS angepasst werden, da er sonst immer falsche URLs zusammenbauen würde.

Aktuell ist der Wert im Standard noch auf „/dms/“. Dieser muss nun geändert werden in „/“.

Das Ganze kann man einfach in der settings.xml machen, hierzu den Wert von „httpRoot“ ändern in „/“ (vorher  „/dms/“).

Nun kann man im Browser das DMS direkt unter der Adresse:

https://<hier nas ip oder hostname einsetzen>:8000

aufrufen. Der Aufruf über den vorherigen URL (also ohne den virtuellen Host) funktioniert dann nicht mehr, weil das SeedDms dann alle absoluten Link-Pfade immer nur mit dem Präfix „/“ aufbauen würde und unter diesem Pfad die Dateien nicht existieren im Web-Root des Standard Apache Hosts.

Idealerweuse trägt man nun im Netzinternen DNS-Server die IP Adresse des NAS unter dem hostnamen „dms“ ein. Dann kann man das dms auch über „https://dms:8000“ direkt aufrufen.

Schritt 3: Testen der Installation

Nachdem nun all obigen Schritte erledigt sind, sollte man eigentlich ein komplett funktionierendes SeedDMS haben.

Sowohl die Thumbnail-Generierung als auch die Volltext-Indizierung von Text, PDF, XLS und DOC Dokumenten sollte funktionieren, ebenso wie der Versand von E-Mail-Benachritigungen.

Um all dies zu testen, sollte man folgende Schritte durchspielen:

  1. Upload jeweils eines JPEG, GIF und einer PNG Datei um zu testen ob die Thumbnail-Generierung klappt
  2. Upload einer PDF Datei und anschliessendes anstarten der Indizierung (in SeedDMS: „Administration“ -> „Aktualisiere Volltextindex“) und anschließender Prüfung ob Wörter aus dem PDF im Volltext Index auftauchen („Administration“ -> „Volltext-Index Info“ -> hier sollte man nun einen Abschnitt „content“ sehen, in dem die Inidzierten Wörter aus dem PDF auftauchen müssen. Gibt es keinen Abschnitt „content“ so wurde auch kein Inhalt aus den Dokumenten extrahiert. Natürlich muss das PDF auch texte enthalten haben und nicht nur Grafiken.
  3. Nun sollte man den E-Mail-Versand testen, dazu in der Ordner-Ansicht auf den Link „Benachrichtigungen bearbeiten“ klicken und dann den Admnistrator Benutzer wählen und auf „Anlegen“ klicken. Wichtig ist natürlich, das vorher die E-Mail Adresse im Administrator Profil korrekt gesetzt wurde (siehe oben). Nun kann maan eine neue Datei in diesen Ordner hochladen und sollte daraufhin eine E-Mail Benachrichtigung erhalten.
  4. Die WebDAV Funktion von SeedDMS müsste nun auch laufen, jedoch sollte man hierzu beachten das die WebDAV Implementierung bei manchen Betriebssystemen nicht ganz so rund läuft, es kommt also Client-Seitig zu Problemen. Ich nutze daher z.B. unter Windows den kostenfreien Bitkinex Client, damit klappt auch eine WebDAv Verbindung über https ohne Probleme. Die URL für den WebDAV Zugriff auf SeedDMS lautet einfach „https://<ip adresse vom nas>:8081/dms/webdav“ (bzw. wenn man den virtuellen host wie oben beschrieben eingerichtet hat: „https://dms:8000/webdav“). In Bitkinex trägz man bei den Verbindungseinstellungen unter „Server“ dann als „Server address“ die IP (bzw. den DNS Namen) und den Port getrennt durch einen Doppelpunkt ein (ohne das Protokoll https://). Bei „Security“ wählt man „SSL“. Als user z.B. „admin“ oder einen anderen gültigen Benutzernamen von SeedDMS und dessen aktuelles Passwort. In dem Unterpunkt „Site Map“ trägt legt man nun einen neuen Pfad an, dazu als Path „/dms/webdav/index.php“ eintragen (bzw. beim virtuellen Host Ansatz „/webdav/index.php“) und als „Type“ wählt man „Directory (WebDAV-compliant). Klicken auf „add“ und dann auf „OK“ um das zu speichern. Damit sollte man nun Dateien hochladen und löschen können, sowie neue Verzeichnisse anlegen in SeedDMS.

das war’s! Glückwunsch, ihr SeedDMS läuft nun 🙂

64 comments

  • Locke

    Hallo!

    Schon nach der „alten“ Anleitung konnte ich seeddms auf meinem QNAP 439 Pro II+ zum Laufen bewegen. Vielen Dank dafür! Mit der Volltexterkennung hat es nur ab und zu funktioniert (zuletzt samt Icon-Erstellung nicht mehr).

    Eine Neuinstallation nach der aktuellen Anleitung hat zu einem vollen Erfolg geführt. Sogar die alten Datenbestände konnte ich übernehmen. Leider werden nur 8 Dateien für die Volltexterkennung erkannt. Kann ich irgendwie die restlichen über 100 Dokumente wieder der Volltextsuche zuführen? Mit den „hauseigenen“ Werkzeugen von seeddms klappt es leider nicht…

    Locke

    • admin

      Hallo Locke, hast du versucht den index ganz neu zu bauen?
      Hast du mal in den Logs geschaut von seeddms und dem Apache Server?
      Ggf kannst du versuchen die maximale scriptlaufzeit und den maximalen Speicher für php Scripte in der php.ini hochzusetzen.

      Werden denn neue PDF Dateien beim hochladen indiziert?

  • Locke

    Mit den seeddms internen Funktionen klappt der Neuaufbau nur für 7 Dokumente (sie werden mit „document added“ in der Volltextaktualisierung erwähnt). Sechs davon stammen aus der „alten“ Datenbank, eine ist neu hinzugefügt. 160 Dokumente der „alten“ Daten werden einfach ignoriert. In der „Ordner- und Dokumentenübersicht“ sind alle Dateien aufgelistet (Keine Beschränkung)

    Die Skriptlaufzeit ist bereits auf einem sehr hohen Wert und höher als die Empfehlung von Dir. Hast Du einen Trick, mit welchem man den Scanprozess „von außen“ völlig neu starten kann (zB durch entleeren einer Tabelle)? Ich habe keine SQL Tabelle oder Datei gefunden, die mir weiterhelfen könnte – kenne mich aber auch nur durchschnittlich aus…

    • admin

      Hallo Locke,
      mit SQL Datenbanken kommst du im bereich der Suche nciht weiter, der Such Index wird ja in der Suchengine (Lucene) aufgebaut und nicht ind er SQL Datenbank.
      Man kann sicher über die API von Lucene Dokumente indizieren, aber das ist im Zusammenspiel mit seeddms dann sicher nicht so einfach, da bei einer Indizierung ja auch immer bestimmte Felder definiert werden müssen wo im Index die Wert hingeschrieben werden und eine Verknüpfung (ID, URL etc,) zu dem Indizierten Dokument muss auch erstellt werden. Ich habe mir das noch nicht so im Detail anegschaut, das wäre sicher etwas aufwändiger. Ich würde empfehlen hier einmal das SeedDMS Forum und den Entwickler von SeedDMS anzusprechen.
      Viele Grüße
      Paul

  • Locke

    GELÖST: in den Einstellungen gibt es auf der Seite „Erweitert“ die Angabe über die „Max. Anzahl Unterverzeichnisse“. Dieser Wert stand auf 0 anstelle der Grundeinstellung von 32700. Die Dokumente waren schon auf 3 Ebenen vergraben und wurden daher nicht mehr berücksichtigt. Jetzt sind alle in der Volltexterkennung als „updated“ enthalten. Super!

  • Matthias

    Hallo,
    danke für diese tolle Anleitung.
    Leider habe ich noch ein kleines Problem, ich konnte alles lt Anleitung durchführen, wenn ich mich nun allerdings am dms anmelden möchte, kommt eine leere Seite, daraufhin habe ich dann in der php.ini die Errors anzeigen lassen. Nun erhalte ich folgende Fehlermeldung, mit der ich leider nichts anfangen kann:

    Parse error: syntax error, unexpected ‚=‘, expecting T_VARIABLE or ‚$‘ in /share/CACHEDEV1_DATA/Web/seeddms/seeddms43x/pear/SeedDMS/Preview/Previewer.php on line 102

    hast du eventuell einen Tip?
    danke

    • admin

      Hallo Matthias,
      danke für dein Feedback.
      Du hast vermutlich einfach beim Bearbeiten/Patchen der Previewer Datei das „$“ Zeichen vergessen vor dem Variablennamen. Passiert gerne bei Copy&Paste von Variablennamen
      Schau dir den Teil nochmal an.

      Viele Grüße
      paul

  • Benjamin

    Ich bekomme aktuell noch folgenden Fehler. Hat jemand ein Erklärung dazu?!

    SeedDMS Installation for version 4.3.17

    Error
    **settings_pear_log** : **settings_notfound**
    => **settings_install_pear_package_log**

    Warning
    **settings_pear_webdav** : **settings_notfound**
    => **settings_install_pear_package_webdav**

    Warning
    **settings_zendframework** : **settings_notfound**
    => **settings_install_zendframework**

    Apache version: Apache
    PHP version: 5.3.29
    PHP include path: .:/etc/config/php

    **refresh** – **version_info**

    • admin

      Hallo Benjamin,

      ich kann auch nur raten, aber dein php inlude path sieht etwas unvollständig aus, hast du ggf. vergessen den path anzupassen so dass auch die pear pakete gefunden werden können?
      Siehe dazu Abschnitt: Anpassung der zentralen settings.xml Datei

  • Kathrin

    Hi
    Finde deine Anleitung super cool, . Ich konnte als nicht-Linuxer die Installation fast durchführen. Leider nur fast, ich hänge nämlich mit folgender Fehlermeldung fest, wenn ich die Installation ausführen möchte (https://meinNAS:8081/dms/install/install.php):
    **************
    Error
    **settings_rootDir** : **settings_notfound**
    => **settings_currentvalue** : /share/Web/seddms/seeddms43x/www/
    => **settings_suggestionvalue** : /share/CACHEDEV1_DATA/Web/seeddms/seeddms43x/seeddms-4.3.13/
    *****************
    Der Rest sah exakt aus wie von dir beschrieben / bebildert.
    Habe alle Schritte ausser die Thumbs durchgeführt.
    Zudem verstehe ich auch nicht ganz, wo ich die stopwords einbauen muss 😉
    Vielen Dank für die Anleitung und deine Hilfe.
    (TS-451, Firmware 4.1.3)
    Grüsse
    Kathrin

    • admin

      Hallo Kathrin.

      es scheint auf den ersten Blick als der Pfad zum RootDir nicht korrekt gesetzt ist bei dir.
      Im Abschnitt „Anpassung der zentralen settings.xml Datei“ sind die Werte genannt.
      Bitte prüfe einmal ob zu allen Pfaden dir dort eingtragen sind wirklich die Verzeichnisse auch existieren.

      Obige Meldung suggeriert, dass bei dir das Verzeichnis „/share/Web/seddms/seeddms43x/www/“ nicht existiert.
      Prüfe das mal ob es da ist und ob da Daten drin liegen.

      Wenn es nicht existiert, setze mal einen symbolischen Link mit diesem Befehl:
      ln -s /share/Web/seeddms/seeddms43x/seeddms-4.3.13 /share/Web/seeddms/seeddms43x/www

      (hier sollte kein Fehler kommen in der Console, danach nochmal schauen ob nun unter „/share/Web/seddms/seeddms43x/www/“ Dateien zu sehen sind)

  • Hugo Snellen

    As I can read and understand German, I hope you can do the same in English!
    I really appreciate your extensive installation instruction which I have followed exactly.
    All seems in place BUT after the seeddms login screen I get a blanc page on:
    http://192.168.88.96:48080/seeddms4.3/out/out.ViewFolder.php
    Do you have any idea what the cause may be?
    I cannot find the way to register php errors in the QNAP log files.
    I am stuck ..
    Please advise !
    kind regards,
    Hugo Snellen

    • admin

      Hi Hugo, thanks for your comment.
      php errors can be enabled in the php.ini file, which you can edit in the Administration Interface of your qnap in the webbrowser section.
      When editing the php.ini file search for display_errors
      Change the line to „display_errors = On“, save and restart the webserver.

      That should to the trick and display the cause of your problem in the browser, hopefully 🙂

      • Hugo Snellen

        Hello and thank you!
        Will this enable the pear log to catch the errors? Or are they caught in standard php error files?
        What is the use off pear log module?
        Any way we can discuss directly? I am very focused on getting seeddms operational..
        hugosnel@gmail.com

      • Hugo Snellen

        Hello again,

        I got seeddms working with help ofo your detailed explanation.
        I am , however having problems with the full text recognition of .doc documents.
        The contents are full of (veyr!) special characters.
        In your explanation you tell how to test xpdf but it would be good to have a tstset for catdoc.
        Can you add such a test please?

        • admin

          Hi Hugo,

          when talking about .doc we need to seperate clearly between old Word Documents (.doc extension) and the new Word Document format (.docx extensions).
          Catdoc is only good for the old format.
          If you try to extract content from a new one it indeed might only output unusable characters.

          To test the catdoc output on the console/shell simply type this command:

          /opt/bin/catdoc -u8

          The „-u8“ is needed for utf-8 format, but you can also test without this flag.
          If the command works, you should see all the contents of the word document as clear text in the console.
          Give it a try with an „old“ word document (.doc) and a new one (.docx) to see the difference. The .docx will only output probably some unusable data or catdoc might exit with an error.

          As for docx format, I am not aware of an easy solution right now. You might try installing open office / libre office somehow and use its command line functions to convert docx documents into a suitable format to posprocess with catdoc or xpdf.

  • Hugo Snellen

    I have the following error message in my blanc php page:
    Warning: require_once(SeedDMS/Preview.php) [function.require-once]: failed to open stream: No such file or directory in /share/HDD_DATA/Web/seeddms/seeddms4.3/out/out.ViewFolder.php on line 31

    Fatal error: require_once() [function.require]: Failed opening required ‚SeedDMS/Preview.php‘ (include_path=’/home/www-data/seeddms43x/pear/:.:/etc/config/php:/share/HDD_DATA/.qpkg/Optware/share/pear‘) in /share/HDD_DATA/Web/seeddms/seeddms4.3/out/out.ViewFolder.php on line 31
    I also found a discussion on seeddms discussing this error, but I still find no way to resolve it!
    http://sourceforge.net/p/seeddms/discussion/general/thread/ebd222ba/

    • admin

      The script tries to include the Preview.php file situated in a folder SeedDMS, you need to check if you have any folder on the include path (should be in the pear folder though) that has this nane and contains the file Preview.php

      I have no access to my SeedDMS installation right now, but I think the Preview.php might be in a different folder and you would need to create a symlink.

      Just check in which folder the Preview.php file resides and if it is not named SeedDMS just create a symlink to the folder.
      Use „find -name Preview.php “ from within „/share/Web/seeddms“ folder to find the Preview.php file.

  • ITEric

    Hallo
    echt super Anleitung. Mit ein wenig Linux Kenntnissen absolut durchführbar. Ich habe gleich mal die neuere Version 4.3.19 von SeedDMS angewendet. Laufen tut es, jedoch funktioniert das mit dem Indexing noch nicht…Kann das was mit der Version von SeedDMS zu tun haben?
    Da sich ja OPKG als Nachfolger für IPKG behauptet, habe ich Software (xpdf und catdoc) welche schon Verfügbar waren, über OPKG herunter geladen. Ich denke jedoch nicht das dies mein Problem sein wird, da catdoc (über IPKG) genau so wenig Infos auswirft.

    Grüße ITE

    • admin

      Hallo Eric,
      schwer zu sagen woran es liegt das der Indexer nicht funktioniert. Es gibt da leider einige mögliche Ursachen.
      Du solltest einfach mal mit diversen Dokument-Typen tests machen. Erstmal mit Plain Text Dateien (.txt), dafür wird ja kein 3rd party Extractor benötigt, wenn du damit jedoch schon keine Ergebnisse erziehlst im Index, dann liegt es wohl nicht an den Tools wie xpdf und catdoc (diese werden ja nur für Office Dokumente benötigt).

  • Syrina

    Hallo,

    das ist ein super Guide. Den habe ich auf meinem Qnap TS219P II ausprobiert und läuft wunderbar.
    Jetzt hab ich aber doch noch eine Frage. Und zwar möchte ich die Daten noch sichern mittels Backup.
    Welche Daten des DMS müssen gesichert werden? Und die noch viel wichtigere Frage: Wie sichere ich mit mysql automatisch (z. B. wöchentlich) die Datenbank auf ein externes Laufwerk? Ich bin im Internet mehrmals über mysqldump gestolpert aber kann leider nichts damit anfangen. (Angeblich ist es bei mysql dabei. Der Befehl wird bei mir aber nicht erkannt)

    Können Sie mir da helfen?

    Vielen Dank,
    Syrina

    • admin

      Hallo Syrina,

      ich hätte nun auch spontan mysqldump (https://dev.mysql.com/doc/refman/5.1/en/mysqldump.html) gesagt zum sichern der DB.
      Einfach einen Crontab eintrag machen der mysqldump dann zu dem gewünschten Zeitpunkt aufruft.
      Ich kann gerade nicht testen wo die binary dazu liegt, da ich keinen Zugriff habe auf den QNAP im moment, aber du kannst ja einfach mal in der Shell im Root Verzeichnis danach suchen mit:
      find -name mysqldump
      normalerweise ist das in einem Order mit namen „bin“ im mysql Installationsverzeichnis oder im standrd bin Verzeichnis, sowas wie:
      /usr/local/bin/mysqldump
      /usr/local/mysql/bin/mysqldump
      /usr/mysql/bin/mysqldump
      /usr/bin/mysqldump

      Neben der Datenbank musst du natürlich auch das Repository mit den eigenelichen Dateien sichern, in der Datenbank stehen ja nur die Meta-Daten zu den Dateien, nicht aber die Dateien selbst.
      Also einfach das ganze Verzeichnis welches du in der Settings.xml konfiguriert hast unter:
      contentDir=“/share/Web/seeddms/seeddms43x/data/“
      Da ist dann aber auch der Lucene Index mit drin, wenn du das nicht willst, musst du halt nur die entsprechenden Unterverzeichnisse sichern.

      • Syrina

        Super. Damit konnte ich mich den ganzen Tag beschäftigen 😀
        Kurz für alle anderen die auch damit Probleme haben:

        Zuerst habe ich wie vorgeschlagen folgenden Befehl verwendet:
        Find -name mysqldump
        Dann wurde mir angezeigt wo die Datei liegt.
        Diese habe ich dann mit folgendem Befehl kopiert: (Mein Problem war, dass er den Befehl nicht kannte, als ich versuchte es auszuführen)
        cp /Pfad/zur/Datei/mysql/bin/mysqldump /usr/bin
        Damit ging dann ENDLICH auch der Befehl!
        Anschließend bin ich in die Crontab:
        crontab -e
        (Normalerweise sollte hier eine Abfrage nach einem Editor kommen, habe sie aber nicht erhalten. http://wiki.ubuntuusers.de/CRON)
        ganz unten habe ich dann folgende Zeile eingefügt:
        10 1 * * 0 mysqldump -u USERNAME -pPASSWORD DATENBANK > /Pfad/Zum/Ziel/seeddms.sql

        Ich hoffe dass es damit jetzt geht. Wenn ich den Befehl normal ausführe speichert er mir zumindest was rein 🙂
        Jetzt muss es nur noch automatisiert gehen!

        Vielen Dank!

        • admin

          Schön das es nun klappt, allerdings die Datei für diese Aufgabe woanders hin zu kopieren ist sicher möglich, aber nicht so der eleganteste Weg. Du hättest sie ja auch im Crontab mit dem vollen Pfad aufrufen können oder eben den Pfad in die Path Umgebungsvariable aufnehmen (in der Benutzer „~/.profile“ Datei):
          export PATH=$PATH:/path/to/mysqldump/dir

          • Syrina

            Danke für die Rückmeldung. Klar ist das nicht die schönste Version. Leider hat es mit der Gesamtangabe des Pfades komischerweise auch nicht funktioniert. Mehrmals getestet… 🙁
            Damit gings dann endlich. Hab Stunden rumgesucht.

      • Syrina

        Noch eine Frage an den Fachmann: Ist es möglich direkt nach dem Upload die Dokumente in die Volltextsuche aufzunehmen ohne den Index manuell zu updaten?

        Bei mir werden die Dokumente erst indiziert, sobald ich das Knöpfchen drücke.

        • admin

          Der indexer sollte eigentlich wenn alles stimmt, jedes neue Dokument automatisch indizieren.
          Ist leider schwer zu debuggen woran das liegt, da musst du wohl mal die logfiles von PHP / Apache durchschauen, ob da was auftaucht wenn du eine neue Datei ins CMS hochlädst.

          • Syrina

            Verdammt. Das ist nicht gut. 🙁
            Jetzt hab ich mich schon so gefreut.

            Mir ist grad auch aufgefallen der Button „Folder/Document Check“ be imir nicht funktioniert… Vielleicht setz ichs nochmal neu auf… 🙁

            Das frustet gerade ein wenig.
            Ich finde auch die richtigen Logs nicht.

          • Syrina

            Also ich habe jetzt die aktuelle Version (4.3.19) drüber gebügelt. Zumindest der Documents/File-Check geht nun.

            Mir ist aufgefallen, dass die Dokumente, nachdem ich sie hochgeladen habe über die Suche auffindbar sind. Allerdings nicht über die Volltextsuche. (Also der Titel des Dokuments taucht auf. Inhalte davon nicht)

            Dazu habe ich folgende Threads gefunden:
            http://sourceforge.net/p/seeddms/discussion/general/thread/5921974c/
            und
            http://sourceforge.net/p/seeddms/discussion/general/thread/63c62997/?limit=25#bd2a

            Offenbar gibt es die direkte Indizierung für die Volltextsuche nicht? Leider kann ich das auch nicht über „php indexer.php“ ausführen, da er meine Config-Datei auch nicht findet… Selbst wenn ich die Config-Datei per Hand angeben möchte.

            Noch Ideen? 🙁

            PS: Zur Info QNAP TS219P II mit Firmware 4.3.19

          • admin

            Von Hand habe ich den indexer noch nie gestartet, eigentlich sollte das auch nicht notwendig sein.
            Das die Indizierung für neue Dokumente nicht automatisch klappt dürfte eigentlich nicht stimmen, wenn alles korrekt konfiguriert ist sollte er das schon machen direkt nach dem Upload.
            Ein einfachsten immer mit normalen Plain text Files testbar (.txt) dazu braucht man keinen speziellen Parser/Extractor installieren und man kann direkt prüfen ob Begriffe daraus im Index auftauchen.
            Natürlich sollte die Textdatei nicht nur Stopwords enthalten 🙂

          • Syrina

            Das hatte ich getestet. Der Inhalt aus einer normalen .txt taucht nicht auf. Erst nachdem ichs per Knopfdruck angestoßen habe. 🙁
            Leider finde ich auch nicht die richtigen Logs um in php/apache nachzusehen.
            Ich hab schon in einigen rumgesucht aber nie irgendwas zur indizierung gefunden.

  • ITEric

    Hallo nochmal,
    danke für den Tipp bzgl. des plain Text files… wurde sofort indiziert, ohne den Button zu betätigen.
    Jedoch funktionieren die 3rd Party Tools catdoc und xpdf nicht wirklich. Zu meinen Daten ob ich vielleicht hier etwas falsch gemacht habe:
    QNAP ist TS569 Pro mit Intel CPU
    IPKG für TS509 installiert
    SeedDMS, 4.3.19
    IPKG list_installed spuckt folgende Pakete aus:
    catdoc – 0.94.2-1 – catdoc can extract text from Microsoft word files, and xls2csv does roughly same for Excel files.
    e2fslibs – 1.41.14-1 – Ext2 Filesystem Libraries
    glib – 2.20.4-1 – The GLib library of C routines.
    libstdc++ – 6.0.9-6 – Standard C++ library, needed for dynamically linked C++ programs
    mc – 4.7.5.5-1 – Midnight Commander File Manager
    mp3info – 0.8.5a-1 – A little utility used to read and modify the ID3 tags of MP3 files.
    ncurses – 5.7-3 – NCurses libraries
    slang – 2.2.3-2 – S-Lang is a multi-platform library designed to allow a developer to create robust multi-platform software.
    xpdf – 3.02-1 – Various PDF tools (no support for X11 compiled in)

    Habe ich nocht was vergessen? Oder sollte ich mich nun wirklich auf die Suche nach ner anderen QNAP machen?

    • admin

      Also an deinem QNAP liegt es wohl nicht 😉 das sollte schon klappen.
      Hats du mal versucht ob du auf der kommandozeile z.b. Mit catdoc aus einem deiner word Dokumente extrahieren kannst?
      Dann siehst du ja ob es grundsätzlich richtig installiert ist.
      Wenn das geht prüfe mal die Pfade in seeddms die dort für z.b. Catdoc konfiguriert sind im Parser Modul.
      Die müssen natürlich auch stimmen zusammen mit den ganzen Parametern.

  • Hugo Snellen

    Hello,
    I am working on a seeddms installation.
    Now I want t install the converter from msword .doc documents to text: catdoc
    I understand that Optware was replaced by qnapware.
    Can someone tell me where to find catdoc or an equivalent that can be installed.

    QNAP 421 4.1.4

  • ITEric

    Hallo nochmal,
    war in der letzten Woche etwas mit Arbeit zugehäuft worden so konnte ich mich nicht wirklich um meine privaten Probleme kümmern 😉
    catdoc wie auch pdftotext funktionieren in der Console ohne Probleme. Hier nochmal der Configpfad auszug:
    /opt/bin/pdftotext -enc UTF-8 -nopgbrk %s – | sed -e ’s/ [a-zA-Z0-9.]\{1\} / /g‘ -e ’s/[0-9.]//g‘
    /opt/bin/catdoc -u8 %s
    Und wenn wir es gerade eh schon davon haben, gibt es da eine Empfehlung für DOCX Dokumente? Gerade was die CPU der QNAP nicht auf hochtouren bringt?

  • Dom

    Hallo,

    habe das gleiche Problem wie ITEric!
    Ich habe die 3rd Party Software aber über „opkg“ installiert, da „ipkg“ nicht mehr unterstützt wird bzw. aus dem App Center entfernt wurde.
    leider ist in der Liste von opkg nur „xpdf“ verfügbar leider keine „catdoc“.

    In der Konsole funktioniert xpdf aber auch tadelos, leider nicht in seeddms.
    Der Pfad ist auch derselbe wie bei ITEric.

    Seeddms macht sinnvollerweise nur Sinn, wenn die Volltextsuche funktioniert, leider funktionieren die Thumbnails auch nicht, obowhl imagemagick installiert wurde.
    Über Hilfe wäre ich sehr dankbar.

    Vielen Dank im Voraus.

  • grummel

    Hallo,

    vielleicht bin ich ja zu blöd, der schon beim ersten Befehl: ipkg install xpdf
    bekomme ich die Fehlermeldung: -sh: /usr/bin/ipkg: Permission denied

    Ich nutze die Firmware 4.2.0 und eine TS-639.

    Auch ein
    „Als Paketmanager kommt bei QNAP Optware IPKG zum Einsatz.
    Dieser kann sehr einfach in der Web-Oberfläche des QNAP im App Center installiert werden, einfach in der Suche des App Centers “IPKG” eingeben und dann auf “Zu QTS hin… +” klicken.“
    funktioniert so nicht. Da wird nichts gefunden bei den Apps… 🙁

    Viele Grüße und danke

  • Alex

    Hello,

    I’m expericing the same issues as Bejamin above.
    I receive the folowing message:
    Error
    **settings_pear_log** : **settings_notfound**
    => **settings_install_pear_package_log**
    Warning
    **settings_pear_webdav** : **settings_notfound**
    => **settings_install_pear_package_webdav**
    Warning
    **settings_zendframework** : **settings_notfound**
    => **settings_install_zendframework**

    PHP version: 5.3.28
    PHP include path: /usr/lib/php:.:

    Kind regards,
    Alex

  • Mee

    Nur eine kurze Frage: Ich habe mein NAS auf FW 4.2.0. 20160119 aktualisiert und jetzt geht webdav nicht mehr – wie sieht es bei euch aus? Unter 4.1.4. hat alles noch prima funktioniert…

  • Lars

    Hallo,

    ich kann’s nicht finden. Wie in der Anleitung beschrieben will ich den Paketmanager installieren.
    QNAP TS-870
    Firmware: QTS 4.2.0
    Im QNAP-Downloadcenter konnte ich es nicht finden. Angebl. wird ipkg nicht mehr unterstützt.
    Meine Fragen:
    1. Welches ist die aktuelle, unterstützte Paketmananger-Software?
    2. Wo finde ich den aktuellen, zugehörigen Download?
    3. Wo finde ich die aktuelle, zugehörige Installationsanleitung?
    4. Gibt es eine aktuelle Version der SeedDMS inkl. Installationsanleitung?

    Vielen Dank für die Hilfe.

    Mit freundlichem Gruß

    Lars

  • knippin ict

    Hello,

    I’m expericing the same issues as Bejamin and Alex above. .

    Error
    **settings_pear_log** : **settings_notfound**
    => **settings_install_pear_package_log**
    Warning
    **settings_pear_webdav** : **settings_notfound**
    => **settings_install_pear_package_webdav**
    Warning
    **settings_zendframework** : **settings_notfound**
    => **settings_install_zendframework**

    You can resolve this matter with:

    eeddms/seeddms43x/seeddms-4.3.13/conf/setting.xml

    Change line 163 into

    and you schould be fine.

  • David Isler

    Hallo
    Ich habe alles nach Anleitung mal gemacht. Halt einfach mit der Aktuellen Version 5.0.5 auf meinem QNAP TS670pro. Die Installation war nie einen Fehler auf. Bis zum Punkt „Nun muss nur noch die zuvor erstelle Datei “ENABLE_INSTALL_TOOL” gelöscht werden, dies kann direkt durch den Link “Lösche ENABLE_INSTALL_TOOL wenn möglich” erledigt werden, wenn die Datei-Rechte wie oben beschrieben gesetzt wurden. Andernfalls muss man die Datei eben von Hand löschen.“ bin ich gekommen. Entferne ich nun die Datei, wirft er mir nur noch ein HTTP Error 500 entgegen. Der Rest der Webseite, der ausserhalb es Verzeichnis DMS noch läuft, ist kein Problem. Datenbank wurde aus meiner Sicht sauber erstellt. Bin gerade etwas ratlos. Jemand eine Idee?
    Gruss aus der Schweiz

  • Martin

    Hi,
    ich wollte mich nun auch einmal an die Installation wagen…
    Nun scheint Optware IPKG nicht mehr im AppCenter verfügbar zu sein.
    Gibt es eine Alternative?

  • Peter

    Hallo,
    zunächst möchte ich mich für die Anleitung bedanken. Die Installation des seeddms konnte ich gut nachvollziehen, bis auf einen Punkt:
    Im Abschnitt „Stopword Liste für Lucene anlegen“ ist ein 4-zeiliges Script angegeben, mit der man in der Konfiguration auf die Stopwords-Datei verweisen soll.
    Meine Frage: wie und an welcher Stelle ist dieses Script einzufügen oder zu platzieren?
    Über eine Antwort würde ich mich sehr freuen.

    Beste Grüße
    Peter

    • admin

      Hallo Peter,

      es muss dazu nur ein Attribut in dem bestehenden Knoten in der server konfigurations xml datei hinzugefügt werden, nicht etwa die ganze Zeile.
      Ich habe die Dokumentation entsprechend angepasst damit es deutlicher ist.

      Viele Grüße
      Paul

  • Sebastian

    Hallo,
    mir wird unter dem Menüpunkt „aus Dateisystem importieren“ die Meldung:
    „Ihr persönlicher Ablageordner auf dem Server existiert nicht! Kontaktieren Sie den Administrator, um in anlegen zu lassen.“
    angezeigt.

    Wo muss ich diesen denn anlegen?

    Mit freundlichen Grüßen
    Sebastian

  • Mathias

    Ähnlich wie vorher schon von David beschrieben.
    Habe ich Probleme mit der aktuellen SeedDMS Version v5.0.x.x.
    Die Installation läuft einwandfrei durch, danach erhalte ich aber nur noch ein HTTP Error 500 Bad request ERROR.
    Hat jemand eine Idee?

    • admin

      Gibt es weitere Details zu dem Fehler? Ggf. mal im error log von PHP schauen, da sollte eigentlich stehen wo genau der Fehler geworfen wird.

      Es sollte auch mal gechaut werden ob in der php.ini das error reporting eingeschaltet ist:
      display_errors = On
      Wenn das nicht der Fall ist, dann wird es schwer einen Fehler zu finden.
      (die php.ini kann im Admin interface von QNAP bearbeitet werden unter: Anwendungen -> Webserver -> runter scrollen und auf den Button „php.ini bearbeiten“ klicken

  • Mathias

    Danke für den Hinweis mit Display Error = ON 😉
    Ein falscher Pfad zu pear in der settings.xml war das Problem. Obwohl diese Einstellung während dem Setup keine Fehlermeldung ausgespuckt hat?!

    In der settings.xml Datei war jedenfalls ein falscher extraPath in ca. Zeile 147, nach der Korrektur läuft es Danke. Admin

  • plake

    Sorry funktioniert leider nicht. Bekomme den gleichen Fehler wie alle.
    **settings_pear_log** : **settings_notfound**
    => **settings_install_pear_package_log**

    Ich habe den absoluten Pfad angegeben, ich habe den relativen Pfad angegeben. Irgendwas stimmt da nicht.

  • Ronald

    Danke für die Anleitung.
    Ich habe nun SeedDMS auf einer Synology DS410 (e500v2) vollständig ans laufen bekommen, inkl. OCR mit tesseract (Danke an Ric und Florian Reichardt).
    Indexer und previews funktionieren soweit.
    Ich habe zudem noch einige Office Open XML-Formate in den Indexer aufgenommen.

    Ich habe das optware-ng verwendet, musste aber leider noch ein paar Tools von Hand kompilieren.

  • Alex

    Hallo,
    ich habe die Anleitung benutzt um eine SeedDMS_51x Quickstart Umgebung aufzusetzen. Eine 43x hatte nahezu ständig Fehler bei der Volltext-Indizierung.

    Die Administrationsumgebung funktioniert sehr gut. Es lassen sich Gruppen und Benutzer problemlos anlegen etc. , die Daten sind – per PhpMyAdmin verifiziert – auch in der Datenbank. Sobald ich aber auf die eigentliche Datenumgebung zugreifen will, bekomme ich die Fehlermeldung …

    Fatal error: Class ‚SeedDMS_Core_DatabaseAccess‘ not found in /share/MD0_DATA/Web/seeddms/seeddms51x/seeddms-5.1.2/inc/inc.DBInit.php on line 31

    Die Einstellungen der conf/settings.xml sind mehrfach geprüft. Ich sehr keinen Fehler.
    Hat jemand eine Idee? Bin recht ratlos.

  • Stefan

    Super Anleitung, die mir sehr weiter geholfen hat – auch für Synology. Danke.

    Am schwersten fiel der Teil mit den third party Paketen. Vorzuziehen sind eindeutig in DSM integrierte binaries. Leider sind ipkg und opkg auch nicht der Weisheit letzter Schluss. Daher habe ich etwas Zeit investiert, um das auf eine chroot Umgebung auszulagern. Es funktioniert nun reibungslos (nach etlichen Stunden Rumprobiererei ;-)) und ist wesentlich flexibler als ipkg/opkg da eine normale Paketverwaltung genutzt werden kann mit apt.

    Dokumentiert habe ich die Schritte leider nicht, aber hier trotzdem

    Also zunächst gilt es eine chroot Umgebung anzulegen und dort alle benötigten Pakete nachzuinstallieren.
    Nun dem http Benutzer spezifische sudo priviliges einräumen.

    # Configure privilege of http for seeddms
    http diskstation=NOPASSWD: /bin/chroot /usr/local/debian-chroot/var/chroottarget/ convert *, /bin/chroot /usr/local/debian-chroot/var/chroottarget/ xls2csv *, /bin/chroot /usr/local/debian-chroot/var/chroottarget/ catdoc *, /bin/chroot /usr/local/debian-chroot/var/chroottarget/ id3 *

    Und in der Previewer.php dann folgende Anpassung vornehmen, beispielsweise für pdf Vorschauen.
    ‚application/pdf‘ => „sudo /bin/chroot /usr/local/debian-chroot/var/chroottarget/ convert -density 100 -resize %wx ‚%f[0]‘ ‚%o'“,

    Im chroot dann noch ein neues mount einrichten, damit temporäre Dateien ausgetauscht werden können (wird benötigt, um Vorschauen zu generieren)
    /tmp on /volume1/@appstore/debian-chroot/var/chroottarget/tmp type tmpfs (rw,relatime)

    So, ich hoffe, das ist vielleicht von Interesse für den ein oder anderen und hilft ein wenig weiter.

    Gruß
    Stefan

    • admin

      Danke für deine Ergänzungen Stefan, schön zu sehen dass der Post dir generell geholfen hat und dass du noch etwas ergänzen konntest.
      Ich bin allerdings etwas skeptisch ob es wirklich notwendig ist aus php heraus Kommandos mit sudo zu starten auch wenn es in einer Chroot Umgebung ist. Dem http Prozess bzw php sudo Rechte zu geben ist ggf etwas gewagt (zumindest wenn dieser ALL rechte haben sollte) 🙂

  • Chris

    Super Anleitung, würde es gern auf meinem TS-453 umsetzen, nur leider gibt es kein „optware“ mehr für QNAP :-((

  • Klaus

    Hallo,
    ich habe die Anleitung gelesen und versucht, alle Schritte durchzugehen. Der erste Fehler kam beim Versuch das „catdoc“ Paket zu installieren. Eingabe: „opkg install catdoc“
    Fehlermeldung der Konsole: „Unknown package ‚catdoc‘.
    Collected errors:
    * opkg_install_cmd: Cannot install package catdoc.
    Wie mach ich jetzt weiter?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

This site uses Akismet to reduce spam. Learn how your comment data is processed.