HTTP 500 bei cgi scripten / formmailer
daniel
- webserver
hallo alle zusammen,
ich habe mal eine frage:
ich versuche seit geraumer zeit nun schon einen simplen formmailer zum funktionieren zu bringen.
aber egal welches script ich ausprobiere,
es will einfach nicht.
und immer der gleiche statuscode nach dem absenden:
HTTP 500 Interner Serverfehler
ich verstehe das nicht.
das cgi-verzeichnis müßte eigentlich korrekt eingreichtet sein,
da ich auf dem server (apache) noch eine andere site laufen habe,
und die auch noch cgi'nutzt.
beide virtuelle hosts sind dabei gleich konfiguriert.
die rechte habe ich auch korrekt gesetzt (755 für das cgi).
ich verstehs nicht.
gibt es vielleicht irgendwas ganz generelles, essentielles, was ich vergssen haben könnte?
grüße,
daniel
achja, meine plattform ist ein apache unter linux, falls das wichtig sein könnte ;-)
Hi,
Hast du auf den Übertragungsmodus geachtet??? CGI-Dateien müssen immmer Text-Modus übertragen.
Gruss
x-VieW
hi,
ich habe das zip-file direkt aus dem netz auf meinen kleinen server gezogen und da entpackt, also nichts übertragen o.ä. ?
denke mal , daran kann es eigentlich nicht liegen, oder?
grüße,
daniel
Hi daniel,
ich habe das zip-file direkt aus dem netz auf meinen kleinen server gezogen und da entpackt, also nichts übertragen o.ä. ?
denke mal , daran kann es eigentlich nicht liegen, oder?
klar kann es.
Denn Du hast während der Übertragung die Zeilenbegrenzer eben _nicht_ den Anforderungen des Ziel-Betriebssystems anpassen lassen (das wäre bei einer Übertragung im ASCII-Modus geschehen), sondern Dich darauf verlassen, daß schon alles stimmen wird.
Viele Grüße
Michael
Hi,
und immer der gleiche statuscode nach dem absenden:
HTTP 500 Interner Serverfehler
das _einzig_ sinnvolle, was Du hierbei machen kannst, ist ins Error-Log des Servers zu gucken.
Cheatah
hi,
eigentlich keine schlechte idee, auf die hätte ich zugegebebermaßen auch selber kommen können ;-)
[Fri Feb 14 14:46:22 2003] [error] (2)No such file or directory: exec of /www/www_intern/intradev/cgi-bin/formmail2.cgi failed
[Fri Feb 14 14:46:22 2003] [error] [client 10.215.8.50] Premature end of script headers: /www/www_intern/intradev/cgi-bin/formmail2.cgi
diese beiden meldungen wiederholen sich dauernd.
ich denke mal, der zweite fehler ist bedingt durch den ersten.
aber: woraus ich nicht schlau werde -> ich habe DEFINTIV so ein verzeichnis und auch die datei darin ist vorhanden.
ausschnitt:
intraserv1:/www/www_intern/intradev/cgi-bin # ls
. .. formmail2.cgi
entweder habe ich tomaten auf den augen...??
und auch am formularkopf sehe ich nichts , was nicht stimmen könnte??
<form action="/cgi-bin/formmail2.cgi" method="POST">
ich verstehs nicht ??
grüße,
daniel
Hi,
[Fri Feb 14 14:46:22 2003] [error] (2)No such file or directory: exec of /www/www_intern/intradev/cgi-bin/formmail2.cgi failed
aber: woraus ich nicht schlau werde -> ich habe DEFINTIV so ein verzeichnis und auch die datei darin ist vorhanden.
üblicherweise heißt die Meldung dann zwar anders; aber ein Perl-Script ist nichts ohne einen Perl-Interpreter, dessen Pfad Du in der Shebang (erste Zeile) des Scripts angegeben hast. Stimmt dieser mit der Realität überein? Und: Stimmen die Zugriffsrechte der Dateien und Verzeichnisse?
Cheatah
Hi Cheatah,
[Fri Feb 14 14:46:22 2003] [error] (2)No such file or directory: exec of /www/www_intern/intradev/cgi-bin/formmail2.cgi failed
üblicherweise heißt die Meldung dann zwar anders; aber ein Perl-Script ist nichts ohne einen Perl-Interpreter, dessen Pfad Du in der Shebang (erste Zeile) des Scripts angegeben hast. Stimmt dieser mit der Realität überein? Und: Stimmen die Zugriffsrechte der Dateien und Verzeichnisse?
ergänzend: Enthält der Aufruf dieses Interpreters irgendwelche Parameter ("/usr/bin/perl -w" wäre so ein Beispiel)?
Meine Kristallkugel sagt mir "nein" - dies dann noch kombiniert mit falschen Zeilentrennern würde reichen, um die Fehlermeldung zu erklären.
Viele Grüße
Michael
es will einfach nicht.
Hi,
hast du das script vielleicht in 'nem Extra-Ordner?Der muß dann auf 777
LG LadyMary
hi,
ich habe beide ordner , also den CGI und den ordner mit dem formular auf 777 stehen.
klappt aber trotzdem nicht.
intressant vielleicht noch:
wenn ich dsa script ohne server teste, also auf der shell ein
perl formmail2.cgi
eingebe, funktioniert es?
grüße,
daniel
klappt aber trotzdem nicht.
Mhm, dann weiß ich auch net recht weiter.Kannsts höchstens bei <Form action> mal mit der kompletten URL versuchen.
Hast ja geschrieben, daß andere Cgi's laufen, sonst hätt ich gesagt, probiers mal, indem du das Script in .pl umbenennst.
Gruß mary
Hi daniel,
intressant vielleicht noch:
wenn ich dsa script ohne server teste, also auf der shell einperl formmail2.cgi
eingebe
auf demselben Server, wo es auch als CGI-Skript laufen soll?
(Ein Test auf Deinem lokalen PC hätte nicht dieselbe Aussagekraft.)
funktioniert es?
Das Problem liegt dann also anscheinend nicht an der Logik des Perl-Skripts, sondern an der Art und Weise, wie der Apache es über die CGI-Schnittstelle zu aktivieren versucht.
Probiere mal "formmail2.cgi" (ohne "perl" davor) - dann machst Du genau das, was Apache auch versucht. In diesem Falle nutzt Du nämlich die Information von Zeile 1 des Skriptes, während Du bisher mit dem expliziten Aufruf von "perl" einen ganz anderen Mechanismus verwendet hast, um den Perl-Interpreter zu lokalisieren (nämlich $PATH Deiner Shell).
Viele Grüße
Michael