ich bin ziemlich verzweifelt, da ich ein Problem beim Betrieb von CGI mit SSI habe, das ich nicht gelöst bekomme.
Und zwar habe ich eine Homepage auf einem Telekom (DT Web Services) Unix-Server. CGI-Skripte funktionieren auch ohne Probleme, allerdings schaffe ich es nicht, CGIs in SHTML-Dateien einzubinden - dort erscheint immer der Fehler „[an error occurred while processing this directive]“, obwohl SSI ansonsten auch klappt.
Die Sache ist folgende: der Server ist so aufgeteilt, dass die Seiten unter /pages/ und die Skripte unter /cgi-bin/ liegen (reale Pfade).
Im Internet selbst ist aber das CGI-Verzeichnis nur über http://cgi.domain.com/cgi-bin/skript.cgi erreichbar, die normalen Seiten logischerweise unter http://www.domain.com/seite.shtml.
Da man ja keine kompletten Pfade (http://…) bei der Einbindung von Dateien mittels SSI benutzen darf, weiß ich jetzt nicht, welchen Pfad ich angeben muss. Ich habe eigentlich alles probiert - von …/cgi-bin/ über /cgi-bin/ über die kompletten Pfade, alles, was mir einfiel.
Was kann ich machen? Das CGI-Skript selber funktioniert einwandfrei - ich habe es auf einem anderen Server getestet. Und ich habe jetzt die Seite so gemacht, dass sämtliche Kopf- und Fuß-Daten über CGI eingebunden werden.
Vielleicht hatte ja schon mal jemand das selbe Problem oder benutzt auch einen T-Mart-Webserver - ich würde mich über jeden noch so kleinen Tipp freuen!!!
Da man ja keine kompletten Pfade (http://…) bei der
Einbindung von Dateien mittels SSI benutzen darf, weiß ich
korrekt - es heißt ja auch Server Side Include und nicht http side include
jetzt nicht, welchen Pfad ich angeben muss. Ich habe
eigentlich alles probiert - von …/cgi-bin/ über /cgi-bin/
über die kompletten Pfade, alles, was mir einfiel.
vielen Dank für die prompte Antwort - leider hat dein Tipp auch nicht geholfen.
Ich habe jetzt mal versucht, eine ganz normale Text-Datei aus dem CGI-Verzeichnis einzufügen mittels include virtual… und das bringt diesselbe Fehlermeldung - könnte es sein, dass man da doch einen anderen Pfad auf dem Server angeben muss? Wie gesagt, die /pages und /cgi-bin/ - Pfade stehen auf dem Datenblatt…
Viele Grüße vom immer noch verzweifelten
THOMAS
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Ich habe jetzt mal versucht, eine ganz normale Text-Datei aus
dem CGI-Verzeichnis einzufügen mittels include virtual… und
das bringt diesselbe Fehlermeldung - könnte es sein, dass man
da doch einen anderen Pfad auf dem Server angeben muss? Wie
gesagt, die /pages und /cgi-bin/ - Pfade stehen auf dem
Datenblatt…
hmmm, im Moment fällt mir dazu auch nicht mehr ein - schonmal die FAQ des ISP durchgesehen, bzw. bei deren Support angefragt?
das ist ja genau das Problem: beim Support des T-Mart Webservice ist dieses Wochenende nur ein Mann, der keine Ahnung davon hat und ich soll warten bis Dienstag.
Ich bin mittlerweile zur Erkenntnis gekommen, dass das wahrscheinlich nur die falschen absoluten Pfade sind, die mir vorliegen - dass also vor /pages bzw. vor /cgi-bin/ noch was fehlt und das auch das eigentliche Problem ist.
Ich kann eine Text-datei z.B. einbinden, indem ich include virtual=…/text.txt eingebe, aber nicht, wenn ich include virtual=/text.txt benutze - obwohl sie sich im obersten Verzeichnis der HTML-Dateien liegt.
Aber noch nicht mal das konnte mir der Mann an der Hotline beantworten, obwohl das ja grundsätzlich nichts „fachliches“ ist.
Und die FAQs von der Telekom sind mehr als spärlich, die bringen mir gar nix.
Vielen Dank für deine Hilfe!
DANIEL
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Pfad über CGI bestimmen??
Gibt es nicht zufällig die Möglichkeit, den absoluten Pfad mit einem kleinen CGI-Skript herauszubekommen? Normale Skripte kann ich schließlich ausführen…!
vorliegen - dass also vor /pages bzw. vor /cgi-bin/ noch was
fehlt und das auch das eigentliche Problem ist.
Ich kann eine Text-datei z.B. einbinden, indem ich include
virtual=…/text.txt eingebe, aber nicht, wenn ich include
virtual=/text.txt benutze - obwohl sie sich im obersten
Verzeichnis der HTML-Dateien liegt.
Versuch doch mal den absoluten Server Pfad anzugeben (etas in der Art /home/yourdomain/www/text.txt) und wenn Du ihn nicht weißt, dann bekommst Du ihn mit folgemdem Script raus:
ich habe das Skript, wie du es geraten hast, hochgeladen, aber natürlich ist DOCUMENT_ROOT die einzige Variable, wo nichts angegeben ist…!
Hier ist eine Übersicht über die Variablen, die ausgegeben wurden:
Kannst du da was anfangen? Ich hatte mal versucht, das letzte (HTTP_PATH TRANSLATED) anzugeben bei der SSI-Anweisung, hat aber wieder nur den Error gebracht…
Ich verzweifle langsam wirklich. Es muss doch eine Möglichkeit geben, die Pfade herauszubekommen!!!
eben habe ich durch Zufall ein Skript aufgerufen, das nicht auf dem Server vorhanden ist.
Die Fehlermeldung hat mich doch einigermaßen überrascht.
Hier kannst du es dir angucken: http://cgi.hoehner.com/cgi-bin/test.cgi
Da steht, dass die irgendso einen Perl-Interpreter namens Sbox installiert haben (mit Link zu http://stein.cshl.org/~lstein/sbox/), wodurch sich wohl die Pfade ändern - kennst du dieses Programm oder kannst du aus der Meldung bzw. der Seite etwas mehr lesen als ich? Der Pfad, der unmittelbar in der Fehlermeldung erscheint (/export/1/1/5/0/15074/cgi-bin/script.cgi) lässt leider auch in der SSI-Anweisung den Error erscheinen…
(/export/1/1/5/0/15074/cgi-bin/script.cgi) lässt leider auch
tja, die Scripts laufen unter einem Wrapper, der verschiedene Sicherheitsmechanismen zur Verfügung stellt. Ohne Kenntnis der Konfiguration kommen wir da nicht weiter. Also nochmal, auch wenn’s schmerzt: Morgen den Support anrufen