Magento Error 500 / 503

Ursachen für Error 500 bei Magento

Der Error 500 oder 503 oder Fehler 500 bei Magento kann Kopf zerbrechen bereiten. Allgemein ist der Fehler 500 bei vielen PHP Anwendungen auf Scriptfehler zurückzuführen. Wer mit dem Magento eCommerce Shop arbeitet wird schnell mit dem mächtigen System an PHP Code konfrontiert, wo Extensions von Drittanbietern einiges komplizierter machen.

Sofern der HTTP Error Code 500 gleich nach einer Änderung oder Installation einer Erweiterung auftritt kann man fast glücklich sein, da der kausale Zusammenhang schneller einleuchtet.

Schwieriger dagegen, wenn die Ursache eine Mischung aus verschiedenen Bestandteilen der fragilen Server Shop Konfiguration entsteht und der Error 500 keinem Muster folgt.

Checkliste Logbücher

Der erste Weg führt zu den Logbüchern am Server. Je nach Geschmack und Ziel nehmen wir die Commands more, tail, zcat, less

tail -f -n 200 [magento-root]/var/log/system.log
tail -f -n 200 [magento-root]/var/log/exception.log
tail -f /var/log/apache2/error.log
tail -f /var/log/suexec.log

Für das Apache Server Log sollte die Direktrive auf LogLevel debug gesetzt werden. Für Magneto kann mit

https://www.atwix.com/magento/debugging-hints/

Kaskade der Ursachen

Bei der Beurteilung macht es Sinn in einer Kaskade zu denken. Im Prinzip kann der Grund fast in jeder Kaskade sein, jedoch sollte man immer erst das wahrscheinlichste Szenario annehmen und das ist fehlerhafter Code.

Tabelle Ursachen 500 - 503
Bereich Beschreibung Wahrscheinlichkeit
Server Hardware

Ursachen: Fehlerhaftes RAM, zu wenig RAM oder fehlende Festplattenkapazität können Fehler erzeugen. Daneben ist noch die CPU Auslastung ein Faktor weshalb der "Internal Server Error" oder "Service nicht verfügbar" ausgeworfen wird.

gering
Server System

Ursachen:Kompatibilität vom Serverystem und Software Komponenten wie PHP, Magento

mittel

Apache Server

Ursachen: Eventuell wurden Direktiven definiert oder die .htaccess Datei erzeugt den Fehler. Dann zeigt sich ein Error 503 service unavailable Nachricht mittel
PHP Version

Ursachen: Nach einem update von Magento mit einer veralteten PHP Version.

mittel
Magento Version

Ursachen: nach Update, Änderungen an der Core, Überschreiben von Klassen, fehlerhafter Code, fehlende Klammern oder abschließende Tag der XML Config Dateien.

hoch
Magento Extension Ursachen: Code Fehler, Code Fehler.... und noch mal Code Fehler. sehr hoch

 

Typische Gründe für Error 500

Folgende Gründe konnten in Projekte häufig beobachtet werden. Eine "Qual" können die zahlreichen "Caches" sein, wie APC Cache, Varnish Cache, Fullpage Cache. Bitte auch beachten, daß moderne Browser die Fehlerseite im Cache halten können, außer der HTTP Header Feld wird angepasst. Am besten dann über die Commanline per CURL einen HTTP Request machen.

FastCGI

  • Apache Direktrive fehlerhaft oder falscher Pfad
  • Datei php-cgi.conf versehentlich gelöscht

APC Cache

  • zu wenig Speicher
  • Cache löschen nach Magento Updates

mage Registry

  • es werden noch in alten Sitzungen key_names gehalten, die sich geändert haben oder fehlen, dann kommt ein Fehler im exception.log 
Mage registry key "_singleton/session" already exists"
  • Compiler nach Update nicht deaktiviert

Script Code

  • Syntax Fehler wie fehlende Klammer, Strichpunkt usw.
  • PHP Version veraltet oder inkompatibel mit Code

PHP

  • zu wenig Speicher
  • Konfigurationsfehler php.ini

Lösung

php_value memory_limit 512MB

Caches

  • Varnish Cache hält alten Magento Code nach Update / Upgrade
  • External Cache hält alten Magento Code nach Update / Upgrade
  • APC Cache hält alten Magento Code nach Update / Upgrade

Magento Root

  • .htaccess Datei fehlt oder fehlerhaft
  • Falsche Dateirechte
  • Fehlende Dateien in Modulen

Fazit

Der Fehler oder Error 500 oder Error 503 - "Service unavailable" sind lösbar - das ist die gute Nachricht. Bei Magento mag die Schwierigkeit darin liegen in einem sehr komplexen System mit hohem Funktionsumfang. Insgesamt kann man ein Problem sehen in vielen Drittanbieter Modulen sehen, welche oft weniger harmonisch zusammen arbeiten wir bei Drupal. Es sollte daher ein schlankes System bevorzugt werden.

Sollte ein Internal Server Error oder Service unavailable, auch bei anderen PHP System wie Piwik am gleichen System auftauchen, sollte das Serversystem kontrolliert werden weil nach meiner Erfahrung das am wahrscheinlichsten ist. Magento Commerce ist bekanntlich ein resourcen hungrige Webapplikation, deshalb sollte ein skalierbares Webhosting bevorzugt werden.

Weitere Infos

https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#Server_error_responses