Antworten auf Ihre häufigsten Fragen

Wie lauten gängige Skript-Fehlermeldungen im Error-Log?

Sollten Ihre Skripte einmal nicht wie erwartet funktionieren, haben Sie über den Punkt "Produktverwaltung - Ihr Produktbereich - Konfigurieren - Logfiles" Zugriff auf die Error-Logs Ihres Webservers. Immer, wenn unerwartete Fehler auftreten, sollten Sie diese Logfiles kontrollieren. In diesem Artikel geben wir Ihnen Tipps zur Fehlerbebung Ihrer  Skripte anhand gängiger Fehlermeldungen. Alle diese Fehlermeldungen haben einen Antwort-Status "500 Internal Server Error" zur Folge und führen zu einer Host Europe Fehlerseite mit dem Hinweis "Das Skript konnte nicht fehlerfrei ausgeführt werden".

Fehlermeldungen, die auf .htaccess-Dateien zurückgehen

*DATEIPFAD*/.htaccess: php_value not allowed here
*DATEIPFAD*/.htaccess: Options not allowed here

Die angegebene .htaccess-Datei enthält Zeilen mit php_value oder Options Befehlen, die von Ihrem Produkt nicht unterstützt werden. Diese Meldung tritt nur in einem WebPack M 4 beziehungsweise WebHosting Basic (bestellt vor dem 13.04.2018) auf, ab einem WebPack L 4 beziehungsweise WebHosting Basic (2018) werden auch diese Befehle unterstützt.

*DATEIPFAD*/.htaccess: Invalid command 'foobar', perhaps misspelled or defined by a module not included in the server configuration

Die angegebene .htaccess-Datei enthält einen Befehl, den der Webserver nicht kennt. Eventuell liegt hier ein Tippfehler vor.

*DATEIPFAD*/.htaccess: Invalid command '\xef\xbb\xbf', perhaps misspelled or defined by a module not included in the server configuration

Die .htaccess-Datei wurde als UTF-8 mit einem BOM (Byte-Order-Mark) abgespeichert. Der BOM hat die Form von 3 unsichtbaren Zeichen am Beginn der Datei, die vom Webserver nicht interpretiert werden können.

Request exceeded the limit of 10 internal redirects due to probable configuration error.

Hier wird der Aufruf einer Seite im Kreis umgeleitet, meist durch einen Fehler bei der Konfiguration des mod_rewrite. Sie sollten Ihre RewriteCond, RewriteRule und insbesondere RewriteBase Zeilen in der .htaccess-Datei auf Fehler prüfen.

Fehlermeldungen von PHP-Skripten

PHP Warning:  Cannot modify header information - headers already sent by (output started at *DATEIPFAD*:1)

Dieser Fehler entsteht meist, wenn eine PHP-Anwendung vor dem Senden eines Cookies schon anderen Inhalt ausgegeben hat. Dies kann z.B. passieren, wenn   Konfigurationsdateien vor dem öffnenden PHP Tag (<?php) ein Leerzeichen oder eine Leerzeile befindet. Eine weitere Ursache kann eine als UTF-8 mit BOM (Byte-Order-Mark) gespeicherte PHP Datei sein (siehe .htaccess Fehler).

PHP Fatal error: Call to undefined function *FUNKTIONSNAME* in *DATEIPFAD*:19

Die angegebene PHP-Funktion wurde aufgerufen aber nicht definiert. Bei vorgefertigten Webanwendungen kann dies z.B. passieren, wenn die Anwendung nicht vollständig hochgeladen wurde.

PHP Warning: fopen("file.txt","r+") - No such file or directory

Es wurde versucht, eine Datei zu öffnen, die nicht exitiert.

PHP Warning: fopen(http://www.example.com/) [function.fopen]: failed to open stream

Hier wurde versucht, eine entfernte URL über fopen() zu öffnen, ohne dass zuvor die Einstellung PHP-allow_url_fopen aktiviert wurde. Diese Einstellung finden Sie im KIS unter "Produktverwaltung - Ihr Produktbereich - Konfigurieren - Skripte & Datenbanken - Skript-Einstellungen".

PHP Warning: fopen("file.txt","r+") [function.fopen]: failed to open stream: Permission denied

Hier versucht das Skript in eine Datei zu schreiben, ohne die Rechte dafür zu haben.

PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 84 bytes)

Hier versuchen Ihre Skripte mehr Speicher zu nutzen, als in dem Paket vorhanden ist. Falls Sie bei einer PHP-Anwendung trotz eines Serverfehlers keinen Eintrag im Error-Log finden, kann das PHP-Logging-Level erhöht werden. Dies können Sie unter "Produktverwaltung - Ihr Produktbereich - Konfigurieren - Skripte & Datenbanken - Skript-Einstellungen" einstellen. Nach ca. 15 Minuten wird diese Einstellung aktiv. Damit erhalten Sie weitere Meldungen zur Fehlersuche im Error-Log. Nach Beheben des Fehlers sollten Sie diese Einstellung jedoch wieder zurücksetzen, da je nach Logging Level das Error-Log durch zusätzliche Hinweise des PHP-Interpreters sehr groß werden kann.

Fehlermeldungen von CGI-Skripten

Wenn Sie Skripte in Perl, Python oder Ruby einsetzen, werden diese als sogenannte CGI-Skripte ausgeführt. Falls die Ausführung eines CGI-Skript fehlschlägt, gibt es im Error-Log den Eintrag

Premature end of script headers

Sollte es keinen weiteren Eintrag geben, prüfen Sie bitte, ob Sie die Skriptdatei im ASCII-Modus hochgeladen haben. Dies ist wichtig, damit die Datei keine Windows-Zeilenumbrüche enthält. Prüfen Sie bitte auch, ob Ihr Skript einen CGI-konformen Header sendet. Bevor einen CGI-Skript Webinhalte ausliefern kann, muss es mindestens einen Content-Type-Header gesendet haben sowie zum Abschluss der Header zwei Zeilenumbrüche. Zusätzlich zu obigem Fehler kann es zu weiteren Einträgen kommen:

Permission denied: exec of '*DATEIPFAD*' failed

Das CGI-Skript ist nicht ausführbar. Im allgemeinen sollten die Dateirechte 750 lauten, bzw. die Datei muss als ausführbar markiert sein.

Exec format error: exec of '*DATEIPFAD*' failed

CGI-Skripte müssen als erste Zeile immer eine sogenannte Shebang enthalten, die angibt, welcher Interpreter für die Ausführung des Skripts zuständig ist.

Eine Liste der zuständigen Interpreter finden Sie unter Wie lauten die Pfade zu den Skriptinterpretern?

Die Fehlermeldung taucht ebenfalls auf, wenn das Skript in UTF-8 mit einem BOM (Byte-Order-Mark) abgespeichert wurde. Der BOM hat die Form von 3 unsichtbaren Zeichen am Beginn der Datei, welche die Shebang unbrauchbar machen.


otto.friedrich@hosteurope.de xanthippe.ypsilante@hosteurope.de hercules.ikarus@hosteurope.de