Shell-Skripte/ausführbare Dateien im cgi-bin-Bereich

Irgendwelche Probleme mit XAMPP für Linux? Dann ist hier genau der richtige Ort um nachzufragen.

Shell-Skripte/ausführbare Dateien im cgi-bin-Bereich

Postby thomiko » 01. September 2005 15:50

Hallo miteinander,

ich habe ein Problem mit dem Aufruf von Shell-Skripten/ausführbaren Dateien (application/x-executable) aus Perl-Skripten im cgi-bin-Bereich und hoffe, dass mir jemand weiterhelfen kann.

Grob das Szenario: in einem htdocs-Unterverzeichnis ist eine Flash-Datei, die ein Perl-Skript in einem cgi-bin-Unterverzeichnis aufruft. Das klappt soweit.
Nun ruft aber das Perl-Skript über eine Pipe einen POS-Tagger namens Treetagger auf
http://www.ims.uni-stuttgart.de/projekte/corplex/TreeTagger/DecisionTreeTagger.html. Das Perl-Skript ist in einem direkten Unterverzeichnis von cgi-bin, der Tagger in einem anderen direkten Unterverzeichnis von cgi-bin.

Kurze Erklärung: Ein POS (part of speech)-Tagger ist ein Wortartenerkenner. Für einen eingegebenen Text gibt der Tagger für jedes Wort die wahrscheinlichste Wortart an, z.B. das ARTIKEL grüne ADJEKTIV Haus SUBSTANTIV

Zurück zum Problem: Der Treetagger arbeitet mit Shell-Skripten und ausführbaren Dateien. Wenn ich nun den Treetagger im cgi-bin-Bereich installiere und das (später von Flash aufgerufene) Perl-Skript testweise von der Kommandozeile aus aufrufe, funktioniert alles normal.

Hier der Code-Ausschnitt:

Code: Select all
open(AUS, "| ../treetagger/cmd/tree-tagger-french > french2.out");
   print AUS $input;
close (AUS);


Wird aber nun das Perl-Skript von Flash aus dem htdocs-Bereich aufgerufen, so springt der Tagger nicht an. Die Ausgabe-Datei (french2.out) wird angelegt, weiter passiert aber nichts.

In Nicht-XAMPP-Umgebungen läuft das problemlos. Kann ich irgendwie die Einstellungen von XAMPP ändern, so dass der Tagger bei dieser Konstellation funktioniert? Oder funktioniert es, wenn ich den Tagger an einer anderen Stelle in XAMPP installiere?

Vielen Dank schon mal fürs Lesen und die Mühe,

Thomas
thomiko
 
Posts: 3
Joined: 01. September 2005 01:02

Postby Wiedmann » 01. September 2005 16:20

open(AUS, "| ../treetagger/cmd/tree-tagger-french > french2.out");

Hast du mod_perl an? da hab ich auch schon Überraschungen mit relativen Pfaden erlebt.
Wechsel doch mal am Anfang des Scriptes testweise direkt in das Scriptverzeichnis:
Code: Select all
use File::Basename;
chdir(dirname($ENV{'SCRIPT_FILENAME'}));
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby thomiko » 01. September 2005 16:52

Danke schon mal fuer die rasche Antwort!

Mal bloed gefragt: wie weiss ich, ob mod_perl an ist? Laut Status weiss ich nur, dass Perl aktiviert ist. Laesst sich mod_perl ausschalten oder ganz deaktivieren (ich brauche es momentan sowieso nicht)?

Danke,

Thomas
thomiko
 
Posts: 3
Joined: 01. September 2005 01:02

Postby thomiko » 01. September 2005 17:04

Unter den ENV-Variablen meines Perl-Skripts gibt es keine, die 'SCRIPT_FILENAME' oder so aehnlich heisst ...

Thomas
thomiko
 
Posts: 3
Joined: 01. September 2005 01:02


Return to XAMPP für Linux

Who is online

Users browsing this forum: No registered users and 6 guests