In html-Dateien eingebundene CGI Scripts laufen nicht.

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

In html-Dateien eingebundene CGI Scripts laufen nicht.

Postby kugelpeter » 11. November 2004 10:04

Hi,

wer kann mir helfen. Auf meinem xampp-localhost
(ApacheFriends XAMPP (basic package) version 1.4.9 (win32)) mit mysql und MODE_PERL laufen inzwischen .pl Scripts und .cgi Scripts jeweils, wenn sie einzeln aufgerufen werden.
Wenn ich einen cgi-Script-Aufruf in einer html-Datei starte,

in der folgenden Form:

<html>
<head>
</head>
<body>

<!-- %%MENU START%% -->
<!--#exec cgi="c:/xampp/htdocs/ort/cgi-bin/menu.cgi" -->
<!-- %%MENU END%% -->

</body>
</html>


wird er nicht 'erledigt'.

In der eingebundenen menu.cgi ist der Aufruf von Perl in der ersten Zeile meines Erachtens richtig eingetragen:

#!c:/xampp/perl/bin/perl

(so klappts auch nicht: #! /perl/bin/perl

und MOD_PERL wird auch nach Apache-Start mit dem Aufruf von
'setup_xampp.bat' und der Eingabe der '1' richtig gestartet.

Es wird nur die leere Seite angezeigt (steht ja nichts weiter in der html-Datei), aber der Text, der über die menu.cgi eingebunden werden soll fehlt einfach.

Es erfolgen keine Fehlermeldungen in der error.log Datei

Habe ich noch irgendein .conf File nicht richtig konfiguriert?

kugelpeter
kugelpeter
 
Posts: 3
Joined: 11. November 2004 09:22

Postby Wiedmann » 11. November 2004 15:28

Hmm, das ganze sieht eigentlich eher nach SSI aus, als das es speziell etwas mit mod_perl zu tun hätte.

Aber um nochmal kurz bei Perl zu bleiben:
#!c:/xampp/perl/bin/perl
(so klappts auch nicht: #! /perl/bin/perl

Das erste stimmt schon: "#!C:\xampp\perl\bin\perl.exe"
(BTW: Gerade wenn mod_perl laufen würde, wäre der SheBang eigentlich egal --> ModPerl::Registry)

SSI:
<!--#exec cgi="c:/xampp/htdocs/ort/cgi-bin/menu.cgi" -->

Hier stimmt der Pfad nicht. Der muss hier genauso sein, wie wenn du das Script im Browser aufrufst (was natürlich gehen sollte):
Code: Select all
<!--#exec cgi="/cgi-bin/menu.cgi" -->

Wobei exec wohl nicht die ganz pasende Methode hier ist. Include passt hier glaub eher:
Code: Select all
<!--#include virtual="/cgi-bin/menu.cgi" -->
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby kugelpeter » 11. November 2004 17:15

hallo,

vielen Dank für Deine Antwort.
Habe Deine Vorschläge eingearbeitet, aber ohne Erfolg.
Ich muss gestehen, mein Wissen um Perl, CGI usw. oder gar SSI ist nur sehr rudimentär!
Deine Hinweise werfen aber Fragen auf, deren Beantwortung mir vielleicht weiterhelfen könnten...

Zunächst muss ich mich korrigieren:
Wenn ich im Test 'menu.cgi' direkt aus dem Browser aufrufe mit dem SheBang:
#!c:/xampp/perl/bin/perl

funktioniert das doch nicht (entgegen meiner ersten Mitteilung, ich muss meinen Browser immer erst offline stellen und dann aktualisieren, damit er neue Aufrufe richtig anzeigt..., hatte ich nicht beachtet).

Hingegen mit
#! /perl/bin/perl

wird 'menu.cgi' (das heißt der damit einzubindende Text) richtig im Browser angezeigt. Aber nach wie vor klappt es nicht, wenn ich dies aus einem Aufruf in einer html-Datei mache, auch nicht mit Deinen Tipps.

Ich habe inzwischen weitere 'Versuche' gemacht und festgestellt, dass ich zwar mit der

setup_xampp.bat

MOD_PERL starte, aber meine menu.cgi läuft auch ohne diesen Start!
Offensichtlich arbeite ich wohl 'direkt' mit perl oder wie oder was?

Ich hätte nichts dagegen (dann entfällt der separate Start von MOD_PERL), aber mit dieser neuen Erkenntnis, hast Du vielleich einen konkreten Hinweis, wo ich was falsch eingerichtet habe.
Vielleicht in der registry?
Dort hatte ich in einem schwachen Augenblick mal eingetragen
HKEY_LOCAL_MACHINE\SOFTWARE\ActiveState\ActivePerl\810 (keinen Wert eingetragen)
und
HKEY_LOCAL_MACHINE\SOFTWARE\ActiveState\PerlScript (auch ohne Wert)

weil bei perl irgendwo soetwas in einer Textdatei auftaucht.

Habe ich da Schwachsinn gemacht??

kugelpeter
kugelpeter
 
Posts: 3
Joined: 11. November 2004 09:22

Postby kugelpeter » 18. November 2004 09:52

Hallo,

inzwischen habe ich die Lösung und möchte sie hier mitteilen.

Ich hatte in der httpd.conf einen wichtigen Eintrag nicht vorgenommen.

So muss es aussehen (der ergänzte Eintrag ist kursiv dargestellt):

Options Indexes FollowSymLinks ExecCGI Includes
AddType text/html .shtml
AddHandler server-parsed .shtml .html
AddHandler cgi-script .cgi .pl

kp
kugelpeter
 
Posts: 3
Joined: 11. November 2004 09:22


Return to XAMPP für Windows

Who is online

Users browsing this forum: No registered users and 38 guests