Posts published on Januar 2014

Magento Compiler manuell deaktivieren

Allgemein, Magento, Magento-Performance, PHP

Ich hatte in den letzten Posts ein wenig über die Wichtigkeit des Compilers von Magento geschrieben. Beispielsweise wenn das Backend von Magento nicht mehr erreichbar ist, kann dies am Compiler liegen. Außerdem sollte man den Compiler deaktivieren, wenn man eine neue Extension installiert.

Hier eine kleine Ergänzung zum Thema Compiler manuell deaktivieren, was nämlich sehr einfach ist, wenn man folgende Schritte ausführt.

  1. Im Verzeichnis MagentoRoot/includes befindet sich die Datei: config.php
  2. Diese Datei enthält im Wesentlichen nur zwei Zeilen. Nachfolgend die Datei im Zustand „Compiler aktiviert“:
  3. Zum Deaktivieren vor die erste Zeile eine Raute setzen. Nachfolgend die Datei config.php für den Zustand „Compiler deaktiviert„:

Das war’s schon. Der Compiler ist nun deaktiviert, und falls das Backend vorher nicht erreichbar war, war die Datei includes/config.php vielleicht der Knackpunkt.

Man kann die Funktionalität der Datei includes/config.php auch mal testen, indem man im Backend den Compiler aktiviert bzw. deaktiviert und dann in die Datei schaut. Dann fällt die Veränderung sofort auf.

Magento-Backend nicht mehr erreichbar – Was ist zu tun?

Allgemein, Magento

Im Folgenden möchte ich kurz erläutern, welche Schritte einzuleiten sind, wenn das Backend und/oder der Magento-Shop selbst nicht mehr erreichbar ist. Diese Auflistung ist also als eine kleine Notfall-Anleitung gedacht. Natürlich wird sie nicht in 100 Prozent der Fällt helfen, dennoch schaffen diese Methoden Abhilfe bei häufig auftretenden Problem (insb. bei der Installation von neuen Magento-Extensions, siehe hierfür auch Punkt 3)

  1. Cache leeren (auf die manuelle Art und Weise). Hierfür gibt es zwei Möglichkeiten:
    – Manuelles Löschen aller Dateien und Ordner im Verzeichnis: Magento-Root/var/cache
    – Kopieren des folgenden Code-Snipplets in eine php-Datei, die beispielsweise in folgendem Pfad abgelegt wird:
    MagentoRoot/clearcache/clearcache.php 

    Dann mit dem Browser auf die Seite www.mein-magento-shop.de/clearcache/clearcache.php navigieren und schon wird der Cache geleert.
    Funktioniert der Shop immer noch nicht, dann weiter mit 2.
  2. Session-Ordner löschen: Löschen des gesamten Inhalts des Verzeichnisses:  Magento-Root/var/session
    Sollte das auch nicht helfen, liegt das Problem höchstwahrscheinlich an dem Compiler.
  3. Kompilierungsmodus deaktivieren (per SSH): Leider ist dieser Schritt nur per SSH möglich. D.h. SSH muss erstens auf dem Server aktiv sein (was bei einfachem Webspace nicht immer der Fall ist). Falls dem aber sei und man sich mit SSh anmelden kann, ist folgender Schritt durchzuführen:
    Compiler-Status prüfen: 

    Als Reusltat sollte dann etwas ähnlich erscheinen, wie:

    Danach einfach folgendes eingeben:

    Falls dann folgendes erscheint, ist alles richtig gemacht worden:

    Dann noch alle kompilierten Dateien löschen:

    Und fertig:
  4. Falls das Problem durch die vorigen Schritte nicht gelöst werden konnte und das Problem höchst-wahrscheinlich an einer Magento-Erweiterung liegt, die soeben installiert wurde, kann es sein, dass sich der Compiler und die neue Magento-Extension im Wege stehen. Hierfür sind folgende Schritte durchzuführen:4.1) Magento-Extension deinstallieren oder deaktivieren. Die Deinstallation funktioniert über: www.mein-magento-shop.de/downloader, also dort, wo die Erweiterung im Falle einer geführten Installation gestartet wurde. Zur Deaktivierung muss man ins Datei-System von Magento einsteigen. Hierfür habe ich einen separaten Blog-Post geschrieben, der hier zu lesen ist: Einfache Deaktivierung von Magento-Erweiterungen.
    Nach der Deaktivierung oder der Deinstallation sollte das Backend im Normalfall wieder erreichbar sein.

    4.2) Compiler-Modus deaktivieren. Hierfür muss man sich wieder im Backend einloggen. Dann in System –> Werkzeuge –> Compiler –> Compiler deaktivieren. (Siehe auch folgende Screenshots)

    4.3) Neu-Installation oder Aktivierung der Extension. Nun kann nach gewohnter Form die Erweiterung wieder aktiviert bzw. neu installiert werden.

    4.4) Starten des Kompilierungsprozess. Dies wird wieder unter System –> Werkzeuge –> Compiler vorgenommen. Die Aktivierung des Compilers nicht vor dem Kompilierungsprozess vornehmen!

Diese Vorgehensweise sollte in den meisten Fällen helfen. Es sei außerdem an zwei Punkte zu erinnern

  1. Aus Performance-Sicht ist es sowieso gut, den Cache hin und wieder zu leeren. (insb. nach Veränderungen am System).
  2. Vor Veränderungen (und der Installation von Magento-Erweiterungen) sollte immer der Compiler deaktiviert werden.

 

 

Magento-Extensions – Das sollten Sie bei der Installation beachten

Allgemein, Magento

Mit Magento-Extensions können Sie Ihren Online-Shop professionalisieren. Bei falscher Installation können Sie allerdings auch viel kaputt machen. Folgend eine kurze Erläuterung, was Sie bei der Installation von Magento-Erweiterungen beachten sollten.

Für technische Erläuterungen zum Thema Magento-Erweiterungen lesen Sie auch meinen letzten Post (Magento-Extensions – Das sollte man wissen.)

Vorgehensweise für die Installation von Magento-Erweiterungen:

Vor der Installation der Extension:

  1. Nehmen Sie die Installation möglichst zu einer Zeit vor, in der wenige Zugriffe auf die Shop-Website erfolgen. (Zugriffszahlen sind abhängig von Wochentagen und Uhrzeiten. Samstag-Abends kaufen weniger Menschen im Web ein als Montags- oder Dienstags-Abends.)
  2. Deaktivierung des Kompilierungsmodus. Wichtig, weil im aktivierten Kompilierungsstatus der Shop nach der Installation des neuen Moduls eventuell nicht mehr erreichbar sein kann. Gehen Sie hierfür im Backend auf:
    System –> Werkzeuge –> Compiler –> Compiler deaktivieren (siehe auch folgende Screenshots)
  3. Leeren und Deaktivierung des Caches. Dies ist eine reine Vorsichtsmaßnahme.
    System –> Cache-Verwaltung: Danach:
    Klick auf „Magento Cache leeren“, danach:
    Alle Cache-Arten in der Liste ankreuzen, im Drop-Down-Menu „Aktionen“ „Deaktivieren“ auswählen und auf „Ausführen“ klicken.
  4. Vor der Installation nochmals auf die Kompatibilität achten. Bei Extensions, die auf www.magentocommerce.com gelistet sind, sollte dies direkt neben dem Button „Install Now“ stehen (siehe Screenshot)
  5. Installieren der Extension über den Downloader.Nach der Installation der Extension:
  6. Starten der Kompilierung (zuerst den Kopilierungsprozess starten dann erst den Compiler aktivieren, nicht umgekehrt!):
    System –> Werkzeuge –> Compiler –> Kompilierungsprozess starten.
  7. Leeren und Aktivierung des Caches (analog zu Schritt 3)

Fertig!

Sollte es dennoch Probleme geben und kann man sich möglicherweise nicht ins Backend einloggen, um diese zu beseitigen, so kann ich nur auf meinen folgenden Post verweisen:
Was ist zu tun, wenn das Magento-Backend nicht mehr erreicht wird?

Magento-Extensions – Das sollte man wissen.

Allgemein

Das Shop-System von Magento ist reich an Erweiterungen (sog. Extensions, auch Module genannt).
Einige Module, die ich aus Erfahrung jedem Magento-Shop-Betreiber empfehlen würde, sind beispielsweise:

Natürlich gibt es noch viele weitere nützliche Erweiterungen. Auch wir haben eine Magento-Schnittstelle zu einem anderen Shop-System programmiert und haben dabei auf die Struktur der Magento-Erweiterungen zurückgegriffen. Im folgenden möchte ich kurz für jedermann verständlich erklären, wie Magento-Erweiterungen funktionieren und worauf man beim Installieren von Extensions beachten sollte.

Wie funktionieren Magento-Extensions aus technischer Sicht?

Eine Magento-Erweiterung enthält im Normalfall Dateien (php, xml, und phtml-Dateien), die in das Root-Verzeichnis des Magento-Shops kopiert werden. Diese Dateien sind an die Ordner-Struktur von Magento angepasst, d.h. sie sind beispielsweise in den Ordnern „app/code/…“ oder „app/design/ …“ zu finden.

Bei der Installation einer Erweiterung werden diese neuen Dateien hochgeladen und in die Ordner-Struktur von Magento integriert. Dabei werden keine Dateien von Magento selbst ersetzt, sondern lediglich neue hinzugefügt. Das Magento-System ist aber so intelligent, diese neuen Dateien zu erkennen und der Magento-Erweiterung zuzuordnen.

Was nun? Magento interpretiert die hochgeladenen Dateien als zur neuen Erweiterung zugehörig. Auf Seiten des Codes passiert folgendes: Verschiedene Klassen und Script-Funktionen werden nun nicht mehr aus dem sog. „Core-Code“ von Magento aufgerufen sondern aus dem neuem Modul. Oder: Verschiedene Programmcodes werden um Funktionen aus dem neuem Modul erweitert.

Ein Beispiel:

Zwar habe ich nicht die DHL-Intraship-Erweiterung programmiert, dennoch kann man dies als anschauliches Beispiel heranziehen:

  • Wenn ich in einem Magento-Shop ohne die DHL-Intraship-Extension in einer Bestellung auf „Senden“ klicke, so erscheint die normale Maske für das Anlegen eines Lieferscheins. Hinter dem Klick auf Senden steckt gewissermaßen eine Klasse und eine Anweisung, die diese normale Maske zur Lieferschein-Erstellung erscheinen lässt.
  • Wenn ich aber die DHL-Intraship-Extension installiert habe, so erscheint in der Maske ein zusätzliches Feld, in dem ich Eingaben für das Erstellen des DHL-Versandlabels vornehmen kann.

Was passiert hier? Magento ersetzt aufgrund des installierten (hochgeladenen Moduls) die normale Anweisung (Lieferschein erstellen) durch die neue abgeänderte Anweisung (Lieferschein mit DHL-Versandlabel erstellen).

Wieso ist das wichtig?

Durch fehlerhaft installierte Magento-Extensions kann man den eigenen Online-Shop kaputt machen. Dies sollte im Normalfall nicht passieren und oft lassen sich Probleme auch im Nachhinein noch beseitigen, dennoch sollte man bei der Installation auf einige Dinge Acht geben und hierfür ist es nicht schlecht, Bescheid zu wissen, wie eine Magento-Erweiterung aufgebaut ist.

Insbesondere ist es wichtig, vor der Installation einer neuen Erweiterung den Compiler zu deaktivieren. Denn durch den Kompilierungsprozess werden verschiedene Script-Funktionen und Anweisungen (wie oben im Beispiel) zur Performance-Verbesserung durchlaufen, noch bevor ein User diese Anweisungen ausführt. Passiert die Kompilierung nun vor der Installation eines neuen Moduls, so kommt Magento gewissermaßen mit alten (im Kompilierer gespeicherten) und neuen aus dem Modul stammenden Script-Anweisungen durcheinander. Resultat ist eine Fehlermeldung. Das Frontend und Backend des Shops ist nicht erreichbar, was sehr ärgerlich sein kann.

Lesen Sie in meinem nächsten Post, welche Schritte Sie für eine sichere Installation von Magento-Erweiterungen durchführen sollten.

Eine Magento-Erweiterung wurde installiert und der Shop bzw. das Backend ist nicht mehr erreichbar?

Sollte dieser Fall eingetreten sein, ist das Grundgebot: keine Panik und vorschnelle Schlüsse, wie beispielsweise das Zurücksetzen des gesamten Systems auf einen älteren Zustand! Sie können das Modul auf einfache Weise wieder deinstallieren. Lesen Sie in diesem Artikel, was Sie zu tun haben, sollte Ihr Magento-Backend bzw. -Frontend aufgrund einer installierten Erweiterung nicht mehr erreichbar sein.

Sie haben weitere Fragen?

Sie haben weitere Fragen zu nützlichen Magento-Erweiterungen, benötigen Hilfe bei der Installation dergleichen oder suchen professionelle Hilfe für Ihren Magento-Shop? Kontaktieren Sie uns.