Magento Backend-Performance verbessern

Backend-Dashboard

Leider kann es durch falsch programmierte Extensions vorkommen, dass diese die Performance beeinträchtigen. Eine Lösung für das Problem zu finden kann recht komplex sein. Mit ein paar Hilfsmittel kann man aber etwas Abhilfe schaffen.

Als ich auf mein Problem gestoßen bin, bin ich mit Hilfe einer „Profiler“-Extension auf Spurensuche gegangen. Für den Anwendungsfall bietet sich die Extension AOE-Profiler wirklich gut an, was ich im nächsten Abschnitt zeigen möchte.

AOE Profiler

Installation und Benutzung

Der AOE-Profiler kann über das Repository auf Github heruntergeladen und installiert werden (Dateien in das Projekt kopieren). Nach der Installation müssen noch ein paar kleinere Einstellungen vorgenommen werden, damit die Extension funktioniert.

folgende Datei muss hierzu zuerst umbenannt und dann bearbeitet werden.

#var/aoe_profiler.xml

die XML ist die Konfigurationsdatei für die Extension und es kann mit dieser festgelegt werden wann der Profiler ein Log aufzeichnet. Damit nicht bei jeder Anfrage ein Log erstellt wird, kann man den sogenannten „Trigger“ auf den Wert „parameter“ setzen.

Dies bedeutet, dass man mittels einer GET-Variable („?profile=1“) das Profiling, für die jeweilige URL, auslösen kann. Dies verhindert, dass bei jedem Seitenaufruf ein neues Profile-Log erstellt wird.

Man kann in der Konfigurationsdatei noch weitere Filter einstellen und damit bestimmte URLs ausschließen. Die Konfigurationsdatei ist hierfür gut dokumentiert.

Auswertung

Nachdem man nun die langsame Seite ausfindet gemacht hat und den Parameter gefunden hat, kann man sich das Log anschauen. Dies findet sich im Backend unter „System -> AOE Profiler“ wieder. Das Log wird in Form eines Baumes dargestellt.

Im nun dargestellten Baum kann man gut die Zeit und den Speicher auswerten und sich gezielt in den langsamen Bereich rein klicken und dort auf Spurensuche gehen.

Langsame Extensions ausfindig machen

Ich konnte mit dieser Methode zwei Extensions ausfindet machen, die bei jedem Aufruf auf Updates geprüft haben, was die Ladezeiten deutlich verringert hat. Nach dem Deaktivieren und Patchen der Extensions wurde die Ladezeit im Backend um 2 – 3 Sekunden schneller, was einen deutlichen Unterschied ausgemacht hat.

Magento – Statischer Block verschwindet im CMS nach Update auf 1.9.2.2

Ich bin eben auf ein ärgerliches Problem gestoßen nachdem ich das Update auf Magento 1.9.2.2 durchgeführt habe. Nach dem Update wurden die Blocks, die in den CMS-Seiten eingebettet waren, nicht mehr angezeigt.

Dies war durchaus ärgerlich, da es sich hier um die AGB und Widerrufsbelehrung gehandelt hat. Wenn man mal den Ansatz gefunden hat kann man das Problem recht schnell beheben. Man muss hier unter in der neuen Version neue Rechte für die CMS-Blöcke setze:

System -> Berechtigungen -> Blocks

einen neuen Eintrag einfügen. Dieser muss den Namen „cms/block“ haben und auf „Allowed“ gesetzt werden. Schon funktioniert das einbetten von statischen Blöcken wieder.

magent_patch_1_9_2_2

Ich hoffe hier gibt es nicht noch mehr Überraschungen.

Aktualisierung 18.02.16

Ok es gab doch noch ein paar Überraschungen. Es gibt noch weitere Felder, die hier mit in die Berechtigungen aufgenommen werden müssen.

magesetup/imprint_content
magesetup/imprint_field

Hie müssen analog die selben “Blockberechtigungen” eingerichtet werden.

Magento Sicherheitslücken beheben

Immer wieder kommt es bei Magento, wie aber auch anderen System zu Sicherheitslücken. Diese sollten schnellstmöglich, sofern vorhanden, durch einen Patch behoben werden. Leider kommt dies meist viel zu kurz oder die Systeme sind gar nicht mehr update fähig. Sehr oft hört man auch die Aussage

Es ist ja bisher auch nichts passiert!

Oder:

Meine Seite ist doch viel zu klein!

Meistens kommen solche Angriffe übrigens, die meisten auf mittelständische Unternehmen, auch nicht angemeldet und treffen einen genau dann wenn man es überhaupt nicht gebrauchen kann. Hier sollte auf jeden fall mehr Sorgfalt an den Tag gelegt werden. Meistens sind die Konsequenzen weitreichend und sehr nervig zu beheben. Ist ein Shop erstmal kompromittiert ist es ohne Backup oder Versions-Kontrolle fast unmöglich diesen wieder einwandfrei herzustellen, geschweige denn ist die Sicherheitslücke. Man müsste hier in fast jeder Datei mit Schadcode rechnen.

Zudem sollte man hier auch beachten, dass die meisten Angreifer hier automatisierte Systeme haben, welche das Web durchsuchen und die Shops auf Sicherheitsprobleme testen und diese direkt ausnutzen.

Ihr Magento-System sollte daher regelmäßig auf Updates geprüft werden. Dies kann man recht einfach im Update-Manager durchführt werden. Diesen Findet man im Backend unter dem Punkt:

System -> Connect Manager -> Magento Connect Manager

Magento Connect Manager

Wenn man alles updaten will kann man hier den Punkt Mage_All_Latest verwenden, welcher alle Pakete updated. Wie man hier an den gelben Balken sehen kannst habe ich mein Testsystem schon etwas länger nicht mehr geupdated, wo diese Funktion sehr hilfreich ist.

Message-Center (Posteingang)

Im Magento Message-Center werden auch schon wichtige Informationen zu wichtigen Updates angezeigt. Diese sollten wirklich ernst genommen werden und schnellstmöglich installiert werden.

Magento Message Center


Einzelne Patches können hier weiter unten auf der Seite runtergeladen und mit Hilfe von „patch“ eingespielt werden.

Als Beispiel:

patch –p0 < patch_file_name.patch

Hierfür wird natürlich der Patch-Befehl benötigt.