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.
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