PHP Errorlogging selektiv aktivieren

Insbesondere bei der Entwicklung ist es vorteilhaft, das Errorlogging von PHP zu aktivieren.
Auf reinen Entwicklungssystemen erfolgt die Ausgabe der Fehler zumeist direkt im Browserfenster.

Wenn man jedoch auf Produktivsystemen arbeitet und die Fehlermeldungen anderen Webseitenbesuchern nicht anzeigen lassen möchte, hat man die Möglichkeit, die Fehler auch in eine Datei umzulenken.

Mit den folgenden Einstellungen in der .htaccess-Datei werden auftretende PHP-Fehlermeldungen direkt in eine Datei auf dem Server geschrieben.

# Dem Nutzer keine Fehler anzeigen
  php_flag display_startup_errors off
  php_flag display_errors off
  php_flag html_errors off
# Die Fehler in eine Datei schreiben
  php_flag log_errors on
  php_value error_log /pfad/zum/phperror.log

Der /pfad/zum/phperror.log muss natürlich entsprechend angepasst werden.

Wichtig: Die Datei muss bereits existieren und beschreibbar sein!

HTTP Status- und Fehlercodes verstehen

Auf Anfragen an einen Server erhält man als Antwort stets auch einen Statuscode, der technisch über das Ergebnis der Anfrage informiert. Insbesondere im Fehlerfall können die Statuscodes hilfreiche Informationen liefern, um dem Problem auf die Spur zu kommen.

Folgend eine Liste der gängigsten HTTP-Statuscodes:

200er Statuscodes für Erfolgsmeldungen

Bei erfolgreichen Operationen erhält man einen 200er Statuscode zurück:

  • 200 OK
  • 201 Created
  • 202 Accepted
  • 203 Non-Authorative Information
  • 204 No Content
  • 205 Reset Content
  • 206 Partial Content

300er Statuscodes für Weiterleitungen

Für eine erfolgreiche Bearbeitung sind weitere Schritte seitens des Clients erforderlich, meist Verweise auf andere URLs:

  • 300 Multiple Choices
  • 301 Moved Permanently
  • 302 Moved Temporarily
  • 303 See Other
  • 304 Not Modified
  • 305 Use Proxy

400er Statuscodes für Client-Fehlermeldungen

Bei der Ausführung der Anfrage ist ein Fehler aufgetreten, den der anfragende Client verursacht hat:

  • 400 Bad Request
  • 401 Authorization Required
  • 402 Payment Required (not used yet)
  • 403 Forbidden
  • 404 Not Found
  • 405 Method Not Allowed
  • 406 Not Acceptable (encoding)
  • 407 Proxy Authentication Required
  • 408 Request Timed Out
  • 409 Conflicting Request
  • 410 Gone
  • 411 Content Length Required
  • 412 Precondition Failed
  • 413 Request Entity Too Long
  • 414 Request URI Too Long
  • 415 Unsupported Media Type

500er Statuscodes für Server-Fehlermeldungen

Der der Ausführung der Anfrage ist ein Fehler auf Serverseite aufgetreten:

  • 500 Internal Server Error
  • 501 Not Implemented
  • 502 Bad Gateway
  • 503 Service Unavailable
  • 504 Gateway Timeout
  • 505 HTTP Version Not Supported