CGI / PERL script wird nicht mehr ausgeführt
roman lenz
- webserver
hi hi
ich habe eine lokalen Apachesever (1.3.12) der läuft und meine Seiten ausführt. Nur ein Script wird nicht mehr ausgeführt. Beim Aufrufen des Script dreht sich nur die eieruhr :-((
vor zwei tagen lief das Script noch.
In den Severlogdateien finde ich keinen Hinweis.
Die ersten Zeilen es script sehen auch vernünfig aus.
Wodran kann es liegen das das script nicht mehr ausgeführt wird?
besten dank und einen schönen Sonntag
bis bis roman
Ruf das Script auf der Kommandozeile selber auf.
Ausserdem was hasst Du am System geaendert, vieleicht hatte irgendetwas ene auswirkung auf dein system und den Apache.....
Leider ist Deine Frage nicht sonderlich umfangreich.
Wenn Dir jemand helfen soll, solltest Du konkreter Deine Umgebung beschreiben das config File Posten und auch das Script.
Ansonsten kann ich nnur raten.
Ich könnte Dich ja auch mal fragen, Du bei mir läuft seit 3 Tagen Jbuilder nicht mehr.
Woran könnte das liegen?!?
Gruss Matze
hi Matze
dank dir für die antwort.
ich habe nichts veränderet weder am System (xp) noch am apache und alle anderen scripte laufen ja. nur diese eine nicht und ich habe keinen anhaltspunkt wo ich suchen soll. das script hat über 1300 zeilen (ich glaube die will hier keiner sehen)
was mir helfen könnte wären tips was ich mal überprüfen sollte.
besten dank
bis bis roman
hallo roman,
ich habe nichts veränderet weder am System (xp) noch am apache und alle anderen scripte laufen ja.
Zwar gibt es den schönen Grundsatz, daß man ein laufendes System nicht ändern sollte, aber hast du dir schonmal überlegt, daß Apache 1.3.12 für WinXP denn doch ein bißchen zu alt sein könnte? Du solltest dir da mindestens den Apache 1.3.28 aufspielen, und für WinXP kann man auch 2.0.47 empfehlen.
nur diese eine nicht und ich habe keinen anhaltspunkt wo ich suchen soll.
Wir hier im Forum leider auch nicht.
das script hat über 1300 zeilen (ich glaube die will hier keiner sehen)
Nein, nicht alle. Aber so die ersten 20 könnten schon von Interesse sein. Vielleicht sprichst du ja irgendein Modul an, das es beim Apache 1.3.12 noch gar nicht gibt?
Grüße aus Berlin
Christoph S.
hi Christoph
dank dir für deine Antwort (ich arbeite demnächst mit Linux und dann auch mit dem Apache 2.????).
Ich hab den Fehler gefunden. Ich hatte in einer Sub ein einzelnes " und dieses verursacht bei mir das sich perl aufhängt.
Ich habe das mal in anderen Scripten ausprobiert und dort klappt das auch (ich glaube ich kann morgen eine Kollegen ärgern ;-) ).
Warum gibt PERL keine Warnug aus?
Klappt das auch mit neueren Perlversionen? oder mit anderen OS?
__CODE__
#!perl.exe -w
use strict;
use CGI::Carp qw(fatalsToBrowser);
" # <= Fehler!?
print "Content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Testausgabe</title>\n";
print "</head><body>\n";
my @test=("/tt/gg/tol.jpg",
"/tt/gg/tol.png",
"/tt/gg/tol.txt",
"/tt/gg/tol.gif");
print @test;
print "<br>""; # hier giibt es eine Warung aus
print "<br>";
map {/(^/.+?([^/.]+?.(jpg|png|gif)$))/ ? (
print "$2 ist eine Bilddatei. Der Path ist $1.<br>")
:-( # mal ein dummes gesicht machen :-)
print "war nichts<br>")} @test;
print "</body></html>\n";
__CODE__
bis bis roman
Servus,
dann mach doch mal lieber
#!c:/perl/bin/perl.exe
rein. Natürlich sinngemäss dort wo Deine Perl.exe eben tatsächlich liegt.
Unter umständen kan es auch bei Microsoft sein, dass du auf Path inhalte verzichten musst, weil sie in unterschieldichen Umgebungen nicht zwangsläufig auch vorhanden sind.
Ausserdem ist Perl im Path, dass Du direkt #!perl.exe eingetragen hast??
Gruss Matze
hi Matze
Ausserdem ist Perl im Path, dass Du direkt #!perl.exe eingetragen hast??
jeep perl steht im Path. Christoph hat mich mal angepfiffen weil ich früher immer d:\perl\perl.exe -w geschrieben habe und seit dem kein path mehr :-)
aber was ist mit dem " ????
läuft das script bei dir??
bis bis roman
hallo Roman,
jeep perl steht im Path.
Was zweitrangig ist, solange du dein Script über den Webserver aufrufst (ist aber wichtig, wenn du es von der Konsole aus aufrufen möchtest).
Christoph hat mich mal angepfiffen weil ich früher immer d:\perl\perl.exe -w geschrieben habe und seit dem kein path mehr :-)
Ups? Es kann allenfalls sein, daß ich dich mal auf die Verwendung von Slashes in der "shebang" aufmerksam gemacht habe. Auf einem Windows-System sieht meine shebang zum Beispiel immer so aus: #!D:/Perl/bin/perl.exe -w
aber was ist mit dem " ?
Genau das, was du vermutet hast. Es ist ein Fehler, der zum Scriptabbruch führt.
Grüße aus Berlin
Christoph S.
hi!
jeep perl steht im Path.
Was zweitrangig ist, solange du dein Script über den Webserver
aufrufst (ist aber wichtig, wenn du es von der Konsole aus aufrufen
möchtest).
Auf Windows höchstens andersum. Denn außer dem Apache unter bestimmten
Umständen interpretiert unter Windows meines Wissens kein Programm die
Shebang-Zeile -- und der Kommandozeileninterpreter von Windows schon
gleich gar nicht.
bye, Frank!
morgens Frank,
jeep perl steht im Path.
Was zweitrangig ist, solange du dein Script über den Webserver aufrufst (ist aber wichtig, wenn du es von der Konsole aus aufrufen möchtest).
außer dem Apache unter bestimmten Umständen
Du meinst, falls bei einem unter Windows aufgesetzten Apache die Direktive "ScriptInterpreterSource" _nicht_ gesetzt ist?
interpretiert unter Windows meines Wissens kein Programm die Shebang-Zeile
Richtig. Aber perl.exe gibt wenigstens eine Fehlermeldung aus, daß die shebang einen falschen Pfad enthält.
und der Kommandozeileninterpreter von Windows schon gleich gar nicht.
Wenn du hier unter "Kommandozeileninterpreter von Windows" die cmd.exe verstehst, ist das auch richtig - man würde es allerdings mit ein paar Eintragungen in der registry anders festlegen können.
Christoph S.