[Kobv-opus-tester] rewrite map
Thoralf Klein
thoralf.klein at zib.de
Don Apr 21 20:29:42 MEST 2011
Hallo Herr Schnasse,
On Thursday 21 April 2011 11:04:07 Jan Schnasse wrote:
> Hallo zusammen,
>
> ich möchte kurz von einem Problem mit $OPUS_HOME/apacheconf/opus4
> berichten, dass hier nach der Installation von Opus-4.0.3 auf
> SLES/Opensuse auftrat und das mich hier einige Stunden gekostet hat und
> immer noch nicht vollständig gelöst ist.
wie haben Sie die Version installiert? Per Tarball? Gab es beim
Ausführen der Scripte irgendwelche Fehlermeldungen, die für uns
hilfreich sein könnten?
> 1.
> Der Userwechsel nach wwwrun in
> $OPUS_HOME/opus4/scripts/opus-apache-rewritemap-caller-secure.sh
> funktioniert mit der SUSE/Apache-Standardkonfiguration nicht. Weder mit
> SU noch mit SUDO.
> Seltsam ist, dass ein Aufruf mit vorangestelltem ./ auf der Konsole
> funktioniert, im Apache dann aber scheinbar nicht.
>
> Derzeitige Lösung: Zeilen auskommentieren und nur die while-Schleife
> drin lassen
Mangels SuSE kann ich das Problem leider nicht reproduzieren. Die
Zeilen sollen eigentlich verhindern, dass das Rewrite-Script als "root"
läuft. Könnten Sie mit einem "ps aux" nachsehen, unter welchem Nutzer
das Rewrite-Script aktuell läuft?
> 2.
> Die Rewrite Rule so wie sie ist, lenkt Anfragen auf den Root des auf
> 127.0.0.1 befindlichen Webserver um. Aus einer Anfrage
> 127.0.0.1/documents/2110/doc.pdf wird in der Standardconfig
> 127.0.0.1/workspace/files/2110/doc.pdf
> Dieser Pfad existiert aber doch nicht!? Oder sollte man da in
> $OPUS_HOME/opus4/public einen link setzen? Wofür ist dann der
> alias /opus4-files gebildet worden?
Schritt-für-Schritt sieht das so aus:
* Zugriff auf /opus4-matheon/frontdoor/index/index/docId/786
* Anfrage an http://opus4.kobv.de/opus4-matheon/files/786/ch.pdf
* Rewrite/Proxy nach http://127.0.0.1/opus4-matheon-files/786/ch.pdf
* /opus4-matheon-files/ ist ein Alias auf workspace/files
Mal ein Test-Aufruf von mir:
$ ./opus-apache-rewritemap-caller-secure.sh
786/ch.pdf COOKIES=
/opus4-matheon-files/786/ch.pdf
Meine Config dazu:
deliver.target.prefix = /opus4-matheon-files
Und ja, sie haben Recht: Der Pfad existiert nicht, denn er wird per
Alias in der Apache-Config intern umgeleitet. Das heißt, der Schlüssel
in Ihrer OPUS4-Config und der Apache-Config müssen übereinstimmen.
Ich hoffe, das half weiter?
> Derzeitige Lösung:
> a.) Die Rule umschreiben nach:
>
> RewriteRule ^/documents/(.*)$
> http://127.0.0.1/opus4-files/${opus4deliver:$1\ %{REMOTE_ADDR}\
> COOKIES=%{HTTP_COOKIE}} [P]
>
> b.) Die Ausgabe von $OPUS_HOME/opus4/scripts/opus-apache-rewritemap.php
> entsprechend anpassen, so dass nur noch ID/FilePath zurückgegeben wird
> (ohne workspace/files)
> Aus einer Anfrage 127.0.0.1/documents/2110/doc.pdf wird dann
> 127.0.0.1/opus4-files/2110/doc.pdf
Ich frage mich, wie bei Ihnen das "/documents" in den Pfad gerutscht
ist. Können Sie mir die dazugehörige Config sagen, d.h. deliver.url.*?
Wir schauen uns unsere Default-Config nochmal an und werden ggf.
> 3. In $OPUS_HOME/opus4/library/RewriteMap/Apache.php findet mein
> Interpreter den Ausdruck mb_strlen in Zeile 130 und 131 nicht.
> Derzeitige Lösung:
> Zeile 130- 135 auskommentieren.
Das weißt darauf hin, dass Ihr PHP nicht mit Multibyte-Support compiled
wurde. Vermutlich müssen Sie das entsprechende Paket nur per Hand
installieren, können Sie mal suchen ob ein Paket existiert, das
"php-mbstring"
oder ähnlich heißt? Wenn Sie es installiert haben, wäre wir über eine
kurze Rückmeldung sehr dankbar.
Viele Grüße,
--
Thoralf Klein <thoralf.klein at zib.de>
Telefon: +49 (30) 841 85-216, Raum: 3011