06027 - 308 341 interesse@g4w.de

Es gibt mehrere verschiedene Ursachen für diesen „Internal Server Error“ (Error 500) und folglich auch verschiedene Lösungsansätze, die einer nach dem anderen durchgearbeitet werden müssen, um den Fehler zu beseitigen.

1. Wenn das Skript sich nicht im Ordner cgi-bin befindet, sollten Sie im Confixx die Option CGI/Perl außerhalb cgi-bin aktivieren. Diesen Punkt finden Sie in der Confixx-Übersicht.

2. Scheidet diese erste Möglichkeit aus, sollten Sie die Rechte des Skriptes überprüfen. Diese sollten sowohl für das Verzeichnis (meistens cgi-bin), als auch für das Skript selbst 755 sein. Es ist darauf zu achten, dass die Dateien per FTP-Programm im Binärmodus auf den Server geladen werden.

3. Ist auch das nicht die Ursache, kommt ein Problem mit den Zeilenenden in Frage. Sie müssen wissen, dass Windows anders als Unix Zeilenenden in Textdateien anders abspeichert. Windows verwendet dazu einen CarriageReturn (Wagenrücklauf) und ein NewLine (neue Zeile). Unix lediglich ein NewLine. In der Regel sieht die erste Zeile eines CGI-Skripts in etwa so aus:

#!/usr/bin/perl

Da Windows nun noch den Wagenrücklauf einfügt, „sieht“ Unix diesen Pfad nun so:

#!/usr/bin/perl\CR

Diesen Intepreter gibt es jedoch nicht, die Shell gibt „Bad Interpreter“ zurück, ohne einen Content-Type zu senden. Der Apache quittiert das dann mit einem „Premature end of script headers“, im Browser sieht man dann die besagte Fehlermeldung. Man kann das in diesem Beispiel verhindern, indem man einen unkritischen Parameter hinter den Interpreterpfad schreibt. Bei Perl ist das bspw. -X, um die Warnungen abzuschalten. Die erste Zeile sollte also folgendermaßen aussehen:

#!/usr/bin/perl -X

4. Ein Error500 kann jedoch auch andere Ursachen haben. Es könnte beispielsweise auch sein, dass tatsächlich irgendwelche Limits erreicht bzw. überschritten wurden, z.B. Prozesslimits. Dies kann über viele Wege erzeugt werden. Zum Beispiel könnten sich Prozesse aufgehängt haben, weil sie fehlerhaft programmiert wurden. CMS-Plugins sind sehr anfällig hierfür. Das eigentliche CMS (wie WordPress, Joomla, etc.) ist zwar super, aber den Plugins wird meist zu wenig Aufmerksamkeit gewidmet.

Solche fehlerhaften Prozesse können Sie übrigens auch selbst löschen. Und zwar per Terminal bzw. SSH (SSH muss dann natürlich für Ihren Account freigeschaltet sein, fragen Sie gegebenenfalls unser Support-Team). Loggen Sie sich einfach ein:

ssh web***@webbox***.server-home.org

und geben Sie dann folgenden Befehl ein:

killall -9 php-cgi

Der Server wird dann vermutlich kurz meckern, weil Sie damit wirklich alle PHP Prozesse löschen. Es kann daher sein, dass Sie dies nochmal kurz bestätigen müssen. Und dann war es das schon. Ihre Webseite sollt nun wieder normal funktionieren.

5. Es könnte auch viele andere Ursachen haben wie beispielsweise unauthentifizierter Email-Versand. Lesen Sie hierzu auch folgenden Artikel:

https://www.g4w.de/HILFE-FAQ/ich-kann-ueber-meine-webseite-keine-mails-mehr-versenden/

Sie sehen: Ein solcher Error 500 ist sehr vielfältig und sollte keinesfalls auf die leichte Schulter genommen werden. Aber bitte meckern Sie nun nicht über G4W. Denn in erster Linie ist es Ihre Webseite, die nicht richtig programmiert wurde und die Fehler erzeugt (bzw. die eingesetzten Scripte). Und hierfür sind Sie selbst verantwortlich. Wir stellen Ihnen lediglich die Infrastruktur zur Verfügung, mit welcher Sie Ihre Webseite betreiben können.