DMS für oder mit einem NAS?

Status
Für weitere Antworten geschlossen.

Tscheggi

Benutzer
Mitglied seit
16. Okt 2009
Beiträge
108
Punkte für Reaktionen
2
Punkte
18
Das ist jetzt ne sehr gute Frage ? :)

Es wird zuerst die Datei geöffnet -> $fp = popen($cmd, 'r');
Anschliessend wird geprüft, ob das öffnen geklappt hat -> if($fp) {
Und dann wird das geöffnete File gelesen, solange bis das Dateiende erreicht ist : $content .= fread($fp, 2048);

Ich hab mal die $content ausgeben lassen und auch nen Zähler eingebaut.
Die Anzeige der Variable ist leer und der Zähler ist immer bei allen Dateien auf 1.
Das heisst er kann die Datei nicht lesen :-(
Aber wieso geht dann der Open auf die Datei durch ?

Das kann ich mir nicht ganz erklären :-(
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
was steht denn in $cmd drin? also was will er öffnen? eventuelle funktioniert auch einfach das popen nicht richtig?
Das sind dann aber leider php-kenntnisse, die ich nicht habe :-(
 

Tscheggi

Benutzer
Mitglied seit
16. Okt 2009
Beiträge
108
Punkte für Reaktionen
2
Punkte
18
In der $cmd, steht der Befehl mit dem pdftotext.

Nächster Schritt :
Im PHP-Manual steht zum Befehl "popen" folgender Hinweis :
Wenn das auszuführende Kommando nicht gefunden werden konnte, wird eine gültige Ressource zurückgegeben. Das mag seltsam erscheinen, macht aber Sinn. Es ermöglicht Ihnen, auf von der Shell zurückgegebene Fehlermeldungen zuzugreifen:

Das erklärt, weshalb der popen durchgeht und er in die Schleife zum Lesen reinläuft.
Mit der dort beschriebenen Ausgabe des Fehlers bin ich jedoch auch nicht weitergekommen. Kommt auch nichts zurück :-(

Also, ich bin jetzt soweit wie Du, die Ausführung des pdftotext klappt nicht :-(
 

Tscheggi

Benutzer
Mitglied seit
16. Okt 2009
Beiträge
108
Punkte für Reaktionen
2
Punkte
18
So, ich hab jetzt mal Synology angeschrieben.
Mal abwarten, was die dazu meinen ;-)
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
Hast du schon mit der open_basedir Einstellung was probiert? leider hilft das bei mir auch nicht.
Wo hast du pdftotext hinkopiert? vielleicht kann man es auch einfach in den selben Ordner wie die .php-Datei kopieren und dann läufts durch?
 

Tscheggi

Benutzer
Mitglied seit
16. Okt 2009
Beiträge
108
Punkte für Reaktionen
2
Punkte
18
ich werds heut abend mal versuchen, wenn ich direkt vor der Box sitze ...
 

Tscheggi

Benutzer
Mitglied seit
16. Okt 2009
Beiträge
108
Punkte für Reaktionen
2
Punkte
18
Also, hab ein bisschen probiert, Ergebniss sieht schlecht aus :-(

Ich denke, daß ein wegkopieren der Datei nichts bringt, da ja der "Befehl" pdftotext direkt mit dem pdftotext im Verzeichniss "/opt/bin/pdftotext" verknüpft ist.
Sprich, egal wo Du es hinkopierst, wird beim Aufruf immer auf das Verzeichniss zugegriffen.
Ich hab mal das "safe_mode_exec_dir" auf das Verzeichniss gelegt, aber leider kann er die Dateien immer noch nicht lesen.

Ich hab mal ein paar Bekannte angeschrieben, die evtl. ein bisschen mehr Ahnung haben.
Mal sehen was die meinen.

Vom Synology-Support hab ich auch noch nichts gehört :-(
 

Tscheggi

Benutzer
Mitglied seit
16. Okt 2009
Beiträge
108
Punkte für Reaktionen
2
Punkte
18
Antwort vom Synology-Support und jetzt kommt ein bisschen Licht ins dunkel :)

vielen Dank für Ihre Anfrage und Ihr Interesse an unseren Geräten. Aus Sicherheitsgründen haben wir die Funktion "popen" auf unseren Systemen deaktiviert. Sie können diese manuell in der php.ini aktivieren indem Sie die entsprechenden Einträge dort löschen
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
na toll... bei mir steht in der /usr/syno/etc/php.ini
Rich (BBCode):
disable_functions =
und danach nichts...
 

Tscheggi

Benutzer
Mitglied seit
16. Okt 2009
Beiträge
108
Punkte für Reaktionen
2
Punkte
18
sieht bei mir gleich aus :-(
Hab auch schon mit Synology gemailt und es kam dann der Hinweis auf safe_mode_exec_dir.
So muss es gehen, ansonsten können Sie nicht weiterhelfen, da es Software eines Drittanbieters ist :-(

Hast Du eigentlich mal die Apache-Logs kontrolliert was da drinsteht ?
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
die sind ja lustig. Haben sie nun popen irgendwo deaktiviert oder nicht?
und Safe_mode_exec_dir sollte doch nur dann gültigkeit haben , wenn Safe_mode aktiviert ist, oder?

Hast Du eigentlich mal die Apache-Logs kontrolliert was da drinsteht ?

ne. muss erst mal schauen, wo die sind...

so langsam nervt es mich... aber es muss doch gehen. vielleicht muss man statt popen exec oder so nehmen?
 
Zuletzt bearbeitet:

Tscheggi

Benutzer
Mitglied seit
16. Okt 2009
Beiträge
108
Punkte für Reaktionen
2
Punkte
18
Antwort 1 auf meine Frage :
vielen Dank für Ihre Anfrage und Ihr Interesse an unseren Geräten. Aus Sicherheitsgründen haben wir die Funktion "popen" auf unseren Systemen deaktiviert. Sie können diese manuell in der php.ini aktivieren indem Sie die entsprechenden Einträge dort löschen.

Frage : bei mir gibt es keine Einträge bezgl. "popen" in der php.ini
Antwort :
ich habe das auf einem Referenzgerät mal mit einem selbstgeschriebenem PHP-Script geprüft. Tatsächlich ist es ausreichend wenn Sie in der DSM-Systemsteuerung in den Webdiensten die PHP safe_mode_exec_dir Beschränkung deaktivieren. Intern wird dann das safe_mode_exec_dir auf "/" gesetzt, womit alle auf dem System befindlichen Programme ausgeführt werden können.

Frage:ich hab den safe_mode bereits ausprobiert und hatte keinen Erfolg
Antwort :
scheinbar handelt es sich hier um ein Problem mit Ihrer Anwendung, die wir natürlich nicht supporten können. Ein Aufruf von popen() ist möglich wenn Sie wie beschrieben die safe_mode_exec_dir Funktion in der Weboberfläche deaktivieren.

Weiteren Support kann ich Ihnen hier leider nicht anbieten, da es sich nicht um eine Beeinträchtigung unseres Systemes handelt. Auch möchte ich kurz darauf hinweisen, daß Synology keinen Support für Geräte anbieten kann, auf die Programme von Dritten installiert wurden.

Ich hab mal mit einem Bekannten gesprochen, der sich besser mit Linux, Apache und php auskennt.
Wir werden das mal am Donnerstag abend zusammen anschauen ...
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
Auch die 2. Antwort ist falsch. safE_mode_exec_dir wird nicht auf / gesetzt, sondern auch [ nix ] ... probier ich gleich mal mit dem /
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
hmm. ich weiß nicht warum, aber ich habe nochmal die Beschränkung aktiviert (in Webdiensten) dann übernehmen geklickt, dann nochmal raus genommen, wieder übernehmen und dann Volltextindex erzeugen gemacht. Diesmal hat es ewig gedauert (es sind zwar nur wenige PDF, aber mit viel Text drin) und jetzt hat es funktioniert...
WARUM ???

Änderungen: nur in der user-setting.ini wurd statt dem Pfad einfach nix angegeben... Das kann doch nicht war sein, dass das plötzlich geht. Hoffentlich hast du auch Glück. Vielleicht wars auch einfach ein neustart???
 
Zuletzt bearbeitet:

Tscheggi

Benutzer
Mitglied seit
16. Okt 2009
Beiträge
108
Punkte für Reaktionen
2
Punkte
18
wie sehen denn jetzt die Einstellungen in der php.ini und der usersetting.ini aus ?
Ich kann bei mir gerade nichts testen, da meine DS sich aufgehängt hat und ich erst heute abend wieder zu Hause bin :-(
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
also in der php.ini hab ich nur noch die disable_functions auskommentiert.
in der user-setting.ini steht der safe_mode_exec_dir mit einem = und dann nichts mehr, drin.
 

Tscheggi

Benutzer
Mitglied seit
16. Okt 2009
Beiträge
108
Punkte für Reaktionen
2
Punkte
18
So, wie angekündigt hatte ich gestern ein wenig Unterstützung und jetzt läuft die Volltextsuche bei mir.
und zwar mit einem leeren safe_mode_exec_dir !

Wir haben ausserdem folgendes versucht, aber es hat nicht funktioniert :
a) Symbolischer Link von "/usr/syno/bin" auf die pdftotext im "/opt/bin/pdftottext"
b) im "Lucene/IndexedDocument.php" haben wir den Aufruf um den "usr/syno/bin" erweitert
c) safe_mode_exec_dir steht aktuell auf "/usr/syno/bin", sprich der Haken in den Webdiensten ist gesetzt

Ganz grosser Fehler von mir war, daß ich pdfs hatte, bei denen kein Text dahinterlag.
Sprich, die pdfs gingen beim Scannen nicht über die OCR-Erkennung und somit beinhalteten sie nur ein "Bild" des Textes, der für pdftotext natürlich nicht auswertbar war
Um dies nachträglich bei pdfs zu machen haben wir pdfsandwich (Hier ne Beschreibung und Download http://www.tobias-elze.de/pdfsandwich/index.html) installiert und über meine Dokumente laufen lassen

Nun habe ich meinen Volltext :) und weiss auch was bezgl. der pdfs zu beachten ist

Evtl. bekomme ich es hin nen kleinen Beitrag fürs Wiki zu schreiben, damit es andere bei der Installation ein wenig einfacher haben :)
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
Cool dass es auch bei dir geht. meine PDFs hatten alle immer Text drin (habe das ja mit pdftotext auf der ds getestet. Er hat jede Menge Text ausgegeben). Nun ja. vielleicht hat infach ein Neustart gefehlt, um die änderungen in den php-Einstellungen zu übernehmen. Ich werde das jetzt auf meiner anderen DS mal komplett neu probieren, screenshots machen, so dass wir eine Grundlage für dne Wiki-Artikel haben :)

hast du pdfsandwich für die Syno DS ?
 

atarifreak

Benutzer
Mitglied seit
01. Apr 2009
Beiträge
261
Punkte für Reaktionen
0
Punkte
22
bis zum Installer-Skript habe ich das nun durchgespielt. Sogar mit DSM 4.2-Beta. zumindest bis dahin funktioniert es :)
 
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