LetoDms Dokumentenmanagementsystem für Synology

Status
Für weitere Antworten geschlossen.

DanielGr

Benutzer
Mitglied seit
19. Mrz 2013
Beiträge
23
Punkte für Reaktionen
0
Punkte
0
oh, das muss ich mal überprüfen. ist mir bisher nicht aufgefallen, dass es dort so was gibt.

Falls du das Config File immer mitgenommen hast (d.h. nie ersetzt bei den Updates) fehlen dir allenfalls die erweiterten Optionen welche die Definitionen für den Fulltext enthalten.
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
ne ich hab ja das aus dem quiickinstall genommen und dort nur die Pfade ersetzt...
Vielleicht muss ichs doch mal komplett neu machen... verstehts langsam echt nicht mehr. Aber es ging ja schon mal und popen funktioniert auch, also muss es an irgendwas anderem liegen.
 

DanielGr

Benutzer
Mitglied seit
19. Mrz 2013
Beiträge
23
Punkte für Reaktionen
0
Punkte
0
Ich meine in Erinnerung zu haben das du mal erwähnt hast wo du den den Include_Path für PHP setzt. Setzt du den in der globalen oder in der php-user? Allenfalls stolpert er dort ein wenig, ein Versuch wärs wohl sicher wert.

Ich kann dir meine php.ini ansonsten mal geben, kannst ev. mal mit der probieren. Die sollten ja von DS712 zu den anderen kompatibel sein.
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
ja schick mal :)
in der php.ini steht (bei mir eben) drin, dass der include_path nun in der user-php.ini eingestellt wird. ebenso wie der open-base-dir.
Eventuell liegt es wieder an sowas...
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
so, also ich habe jetzt in keiner Datei ein include_dir festgelegt. Das tolle ist, jetzt meint er wieder open_base_dir fehler machen zu müssen...

Warning: file_exists(): open_basedir restriction in effect. File(/usr/syno/php/lib/php/Log.php) is not within the allowed path(s): (/etc.defaults:/usr/bin/php:/usr/syno/synoman:/etc:/var/run:/tmp:/var/spool/php:/volume1/@tmp/php:/var/services/web:/var/services/photo:/var/services/blog:/var/services/homes) in /volume1/web/seeddms/www/inc/inc.ClassSettings.php on line 810 Warning: file_exists(): open_basedir restriction in effect. File(/usr/syno/php/lib/php/HTTP/WebDAV/Server.php) is not within the allowed path(s): (/etc.defaults:/usr/bin/php:/usr/syno/synoman:/etc:/var/run:/tmp:/var/spool/php:/volume1/@tmp/php:/var/services/web:/var/services/photo:/var/services/blog:/var/services/homes) in /volume1/web/seeddms/www/inc/inc.ClassSettings.php on line 810 Warning: file_exists(): open_basedir restriction in effect. File(/usr/syno/php/lib/php/Zend/Search/Lucene.php) is not within the allowed path(s): (/etc.defaults:/usr/bin/php:/usr/syno/synoman:/etc:/var/run:/tmp:/var/spool/php:/volume1/@tmp/php:/var/services/web:/var/services/photo:/var/services/blog:/var/services/homes) in /volume1/web/seeddms/www/inc/inc.ClassSettings.php on line 810

warum zum geier versucht er die Datei von /usr/syno/bin/Log.php zu laden ?????
ok wenn ich open_base_dir anpasse (ist momentan auf Standard, also nicht verändert) kommt exakt die selbe Meldung: er sucht Log.php in /usr/syno/bin/Log.php und nicht in /volume1/web/seeddms/pear/Log.php (ich habe /volume1/web/seeddms/pear/ zu open_base_dir hinzugefügt).

:mad:
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
sorry für die ständigen Posts...
habe jetzt oben_base_dir in den PHP-Einstellungen im DMS einfach auf nix gesetzt (alles gelöscht). Dann bekomme ich während der Installation wenigstens eine Fehlermeldungen mehr deswegen (habe immer beim quickinstall erst die Installation durchlaufen lassen).

pdftotext tut aber trotzdem nicht. eventuell muss ich das wieder mit dem ipkg testen. komisch ist halt, dass es auf der Konsole funktioniert. Das PDF wird als Pdf.txt angelegt mit dem entsprechenden Text.
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
Ich hab in der Config das drin für pdftotext:
Rich (BBCode):
 <converter mimeType="application/pdf">pdftotext -nopgbrk %s - | sed -e 's/ [a-zA-Z0-9.]\{1\} / /g' -e 's/[0-9.]//g'</converter>
In der pear/SeedDMS/Lucene/Indexec-Document.php steht für PDF das da:
Rich (BBCode):
pdftotext -enc UTF-8 -nopgbrk %s - |sed -e \'s/ [a-zA-Z0-9.]\{1\} / /g\' -e \'s/[0-9.]//g\'
Eventuell funktioniert auch diese Kombination mit sed nicht richtig auf der DS?

Edit: zumindest auf der Konsole funktioniert nur das da:
Rich (BBCode):
pdftotext -enc UTF-8 -nopgbrk 1.pdf - | sed -e 's/ [a-zA-Z0-9.]\{1\} / /g' -e 's/[0-9.]//g'

Edit 2:
der Aufruf von pdftotext klappt (bei mir) nicht:
Ich hab den indexprozess in der seeddms/pear/SeedDMS/Lucene/indexedDocument.php mal mit ein paar Echos cersehen und dann den indexprozesses per utils/seeddms.indexer-Skript gestartet.
Folgende Variablen werden dort (richtig!) gesetzt)

Code:
$path: /var/services/web/seeddms/data/1048576/3/1.pdf
$cmd: pdftotext -enc UTF-8 -nopgbrk /var/services/web/seeddms/data/1048576/3/1.pdf - |sed -e 's/ [a-zA-Z0-9.]\{1\} / /g' -e 's/[0-9.]//g'
also $cmd sieht doch ganz gut aus, oder :)

Diese Variablen werden dann hier verwendet:
Rich (BBCode):
$fp = popen($cmd, 'r');
                                if($fp) {
                                        $content = '';
                                        while(!feof($fp)) {
                                                $content .= fread($fp, 2048);
                                        }
                                        pclose($fp);
                                        }
Das Ergebnis ist aber:

Rich (BBCode):
sh: /usr/local/php/bin/pdftotext: not found

???
 
Zuletzt bearbeitet:

EL Duderino

Benutzer
Mitglied seit
02. Okt 2012
Beiträge
62
Punkte für Reaktionen
0
Punkte
0
Rich (BBCode):
sh: /usr/local/php/bin/pdftotext: not found
Hi atarifreak, das sieht doch danach aus, daß der Aufruf von popen nicht den vollen PATH hat, wäre als Benutzer nobody auch komisch. Evtl. klappt es mit dem vollen Pfad, also sowas wie /opt/bin/pdftotext, den richtigen Pfad bekommst Du mit which pdftotext heraus. Dann könnte es allerdings sein, daß PHPs safe_mode zuschlägt, was mich zu etwas anderem bringt:
Wie kommt popen auf /usr/local/php/bin? Kommt vielleicht von einer komischen php.ini. Wegen dem open_basedir: Das auf None zu setzen ist wie das Kind mit dem Bade auszuschütten. Hast Du mal geschaut was in /volume1/web/seeddms/www/inc/inc.ClassSettings.php on line 810 so vor sich geht?
Laß Dir auf jeden Fall mal die Ausgabe von phpinfo() anzeigen, am besten irgendwo in seeddms mit file_put_contents in eine Datei schreiben.
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
Danke!
Der vollen Pfad hab ich schon getestet (ok, den zum symlink in /usr/bin/pdftotext). Er hängt den Pfad dann einfach an /usr/local/php/ dran...
Hatte ja zuerst die pdftotext aus dem ipkg-paket entpackt und selber nach /usr/bin kopiert. Mittlerweile habe ich ipkg installiert und darüber xpdf installiert und wie DanielGr den symlink gesetzt.

safe-mode ist laut /usr/syno/php.ini aus...

die inc.CLass-Settings.php muss ich mir nochmal genau anschauen, um das open_base_dir Problem anzuschauen. Als Notlösung tut es ja :)

Was ich auch mal probiert hatte war, pdftotext in das gesuchte Verzeichnis (das es gar nicht gibt!). Leider funktionierte dann pdftotext nicht, wurde aber aufgerufen, was ja bis dahin nicht gelang.

seeddms konnte das mal selber anzeigen, mal schauen.
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
Danke. Die php-info sollte ich mir öfter mal ansehen ;-)
.
Dort war wieder: safe_mode_exec_dir = /usr/local/php/bin

aktiviert. Ich hatte vergessen diese Einstellung in der Webstation zu deaktivieren (hatte sie irgendwann mal auf Standard gestellt zum testen und da es damit genau so nicht ging...
Ok, nun muss ich rausfinden, wie das mit dem open-base-dir tut, ohne Badewanne :)
PHP:
	function findInIncPath($file) { /* {{{ */
$incarr = explode(':', ini_get('include_path'));
$found = '';
foreach($incarr as $path) {
if(file_exists($path.'/'.$file)) {
$found = $path;
}
}
return $found;
}
Das passiert in Zeile 810. Also wieder ein Problem mit dem $Path.

Übrigens funktioniert der Volltextindex nun folgendermaßen(nicht):

PHP openbase-dir ist auf / gestellt
safe_mode_exec_dir ist deaktiviert
pdftotext ist per ipkg in /opt/bin/ installiert
Symlink nach /usr/bin
SeedDMS 4.2.1
DSM 4.2 letzte Version auf DS 111

Den Index erstellen funktioniert nur über die Konsole als root Benutzer mit dem oben schon mal angesprochenen Shell-Skript (das das selbe PHP-Skript und funktionen aufruft wie per Webinterface). Dann werden alle PDFs indiziert und den Volltextindex kann ich benutzten.
Aus SeedDMS heraus passiert leider nichts!

Also hängt das mit dem Zugriffsrecht des PHP-prozesses zusammen? wenn der über nobody läuft kann er nie auf die $path zugreifen?
Ihc muss es dann nochmal mit dem vollständigen Pfad testen. Melde mich dann nochmal
 
Zuletzt bearbeitet:

DanielGr

Benutzer
Mitglied seit
19. Mrz 2013
Beiträge
23
Punkte für Reaktionen
0
Punkte
0
Kannst du mal die Rechte per Konsole überprüfen? Bei mir ist auch der Nobody drin und das passt mit dem Fulltext.

lucene.png

Welche Rechte haben die Verzeichnisse wo der Fulltext Index drin ist?

Edit: Habe Fulltext laufengelassen und den Prozess gesucht, der läuft als Nobody mit 3 ID's.

process.jpg
 
Zuletzt bearbeitet:

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
Das Fulltextindex-Verzeichnis hat bei mir nobody:nobody ...
Leider bringt auch das ändern des owners nichts...

bei mir sehe ich die selben Prozesse. Beim Abruf über Web vom benutzer nobody und beim Aufruf per SSH (seeddms-indexer) vom Benutzer root.

Habe gerade eine Neuinstallation der DS gemacht.

(Per Konsole tut es gerade auch nicht mehr, aber pdftotext funktioniert beim Aufruf über SSH. Habe allerdings IPKG noch nicht richtig laufen...)
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
tja. wüsste echt gerne, was bei mir anders ist...
ipkg hab ich nun laufen und dort pdftotext installiert
wenn ich in SeedDMS auf Volltextindex erstellen gehe, habe ich auch die selben Prozesse laufen wie du:
Rich (BBCode):
16734 nobody    2980 S    sh -c pdftotext -nopgbrk /volume1/web/seeddms/data/1048576/6/1.pdf - | sed -e 's/ [a-zA-Z0-9.]\{1\} / /g' -e 's/[0
16735 nobody    4232 R    pdftotext -nopgbrk /volume1/web/seeddms/data/1048576/6/1.pdf -
16736 nobody    2988 S    sed -e s/ [a-zA-Z0-9.]\{1\} / /g -e s/[0-9.]//g
Allerdings wird dann nur titel hinzugefügt, kein Content.

Wenn ich den seeddms-indexer per sh auf der Konsole starte, habe ich KEINEN pdftotext Prozess (Nur den php-Prozess mit indexer.php) und dann wird der content angelegt in seeddms.

Rich (BBCode):
17118 root      2980 S    /bin/sh ./seeddms-indexer
17119 root     31740 R    /usr/bin/php -f /volume1/web/seeddms/www/utils/indexer.php --
 

DanielGr

Benutzer
Mitglied seit
19. Mrz 2013
Beiträge
23
Punkte für Reaktionen
0
Punkte
0
Welche Berechtigungen hast du im Ordner wo die Dateien des Volltext Index abgelegt werden?

Bis auf die Verlinkung musste ich nichts ändern um den Indexer auch unter SeedDMS zum laufen zu bringen. Ich habe zur Installation das Quickstart Package verwendet, das funktioniert wunderbar.

Schreibt er immer noch Fehler wenn der Fulltext läuft?
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
meinst du den lucene Ordner?
der war auf 777 und gehörte zu letzt nobody:users
Habe ihn jetzt auf 766 und die Dateien darin auf 666. Aber es wird weiterhin aus SeedDMS kein Content angelegt.

Magst du mal alle Schritte deiner Installation schreiben?
Eventuell ist das Problem schon beim Entpacken der Datei? ich habe die zum Beispiel mit der Filestation entpackt und dann in den Web-Ordner kopiert. Dann gehörten Sie natürlich dem admin Benutzer (weil ich es als admin gemacht habe :)
Habe dann auf der Konsole alle Dateien zu nobody:users geändert.
 

DanielGr

Benutzer
Mitglied seit
19. Mrz 2013
Beiträge
23
Punkte für Reaktionen
0
Punkte
0
Gut, das mit dem entpacken auf diese Weise probiere ich mal aus, mal sehen ob's dann noch immer tut.

Ansonsten kann ich die Installation schon mal niederschreiben.
 

DanielGr

Benutzer
Mitglied seit
19. Mrz 2013
Beiträge
23
Punkte für Reaktionen
0
Punkte
0
Ich hab's jetzt auch mal so entpackt. 777 ist eigentlich nicht so falsch, da käme der User problemlos drauf.

Kannst du in der SeedDMS config überprüfen was du in der "maxExecutionTime" drin hast?
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
bei mir steht 30. habe daran allerdings nie etwas geändert. Das Ergebnis der Volltextindizierung (bzw. der nicht-content-indizierung) ist aber auch schon früher fertig.
 

DanielGr

Benutzer
Mitglied seit
19. Mrz 2013
Beiträge
23
Punkte für Reaktionen
0
Punkte
0
Das wären ja nur 30 Sekunden, danach würde er abbrechen, egal ob er fertig ist oder nicht.

Wieviele Dokumente hast du darin?

Testen wir doch erst mal ob PHP die benötigten Tools (catdoc und pdftotext) ansprechen kann. Dazu habe ich dir ein Archiv bereitgestellt. Darin enthalten sind ein Word (Standardvorlage aus Word 2010), ein PDF (Anleitung für einen MSI Router) sowie ein php file welches das entsprechende Tool aufruft. Kommentiere einfach die Zeile aus die gerade nicht eingesetzt wird.

Kopiere das ganze auf den Webordner (Unterverzeichnis frei wählbar) deiner Syno und rufe mit dem Browser das .php auf. Es sollte eine Datei output.txt generiert werden. Passiert das schon mal nicht wissen wir wenigstens wo wir suchen müssen.

Das File befindet sich hier: http://www.grutsch.ch/work/pdftest.zip
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
ich habe mal eins und mal 4 drin gehabt. Also daran kann es nicht liegen.
Das Archiv Teste ich gleich und berichte dann.

Edit:

Hab das Archiv per Filestation in web/seeddms (dort, wo auch das www, data etc. Verzeichnis von seeddms ist) entpackt.

Rich (BBCode):
-rwxrwxrwx    1 admin    users       132608 Nov 27  2012 1.doc
-rwxrwxrwx    1 admin    users      5661171 Nov 27  2012 1.pdf
-rw-r--r--    1 nobody   nobody       60254 May 29 23:08 output.txt
-rwxrwxrwx    1 admin    users          107 May 29 19:40 pdftester2.php

Also das tut.
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat