Zwei Magento-Systeme abgleichen

Wie bekommt man das lokale Magento-System auf einen Webserver und wie hält man beide Installationen aktuell? Insbesondere Updates sollten auch nicht auf dem Live-System durchgeführt werden, sondern immer erst lokal getestet werden. Hier gibt es deshalb eine Anleitung ein bestehendes Magento-Shopsystem auf einen anderen Server zu übertragen.

Es gibt bereits einen Wiki-Eintrag zu diesem Thema auf der Magento-Seite. Aber bei mir sind trotzdem noch einige Punkte übrig geblieben die dort nicht stehen.

Die Richtung der Übertragung ist eigentlich egal. Zunächst wird man natürlich sein lokales System auf einen neuen Webserver bringen wollen. Im laufenden Betrieb ist aber auch der umgekehrte Weg möglich, um Lokal mit den aktuellsten Einstellungen zu arbeiten.

Alle Pfadangaben beziehen sich auf das Rootverzeichnis von Magento. Die Anleitung setzt Linux-Grundkenntnisse im Umgang mit der Konsole voraus. Benötigte Zugansdaten für MySql habe ich weggelassen.

1. MySQL-Dump der Datenbank erstellen

$ mysqldump meinshop > meinshop.sql

2. Daten der Quelle in ein Tar-Archiv packen.

Wenn Quelle und Ziel bereits mit identischen Magento-Version laufen, müssen nur die folgende Ordner kopiert werden:

app/design/frontend/
skin/frontend/
media/

$ tar -czvf meinshop.tar.gz app/design/frontend/ skin/frontend/ media/

Ansonsten wird das komplette Magento Verzeichnis mit allen Dateien und Verzeichnissen in ein Archiv kopiert.

3. Datenbank importieren

Bevor die Datenbank eingespielt wird müssen in der Tabelle core_config_data die Werte zur Base-Url angepasst werden. Einmal der normale Link (web/unsecure/base_url) und dann der für die sichere Verbindung (web/secure/base_url).

Man sollte die Änderung im Quelltext des Dumps VOR dem Einspielen in MySql erledigen. Hat man das vergessen, kann man aber auch per phpMyAdmin die Spalten ändern:

SELECT * FROM `core_config_data` WHERE `path` LIKE ‚%base_url%‘;

Wenn man unterschiedliche Datenbanknamen verwendet, muss man per Suchen/Ersetzen dieses in dem Dump ebenfalls anpassen.

Jetzt kann man aber wirklich die Datenbank importieren:

$ mysql meinshop < meinshop.sql

4. Tar-Archiv installieren

Je nachdem ob man das komplette Shopsystem oder nur Teile kopiert hat (siehe Punkt 2) werden zunächst auf dem Zielsystem die entsprechenden Ordner gelöscht und dann das TAR-Archiv extrahiert. Hier als Beispiel für eine Teilkopie, wenn beide Systeme bereits mit gleicher Magento-Version laufen:

$ rm -rf app/design/frontend/
$ rm -rf skin/frontend/
$ rm -rf media/
$ tar -xzvf meinshop.tar.gz

Bei einer Komplettkopie löscht man eben das komplette Verzeichnis und spielt dann das Tar-Archiv ein. Hierbei muss eventuell noch die Datenbank-Konfiguration in der Datei app/etc/local.xml angepasst werden.

5. Konfigurationen und Cache-Direktorys löschen

Um veraltete Konfigurationen und Cache-Einträge zu löschen:

$ rm downloader/pearlib/pear.ini
$ rm -rf var/cache/* var/session/* var/report/*
$ rm -rf downloader/pearlib/cache/* downloader/pearlib/download/*

6. Dateirechte anpassen

Magento muss Schreibrechte für app/etc und media haben. Aus Sicherheitsgründen sollte das pear Verzeichnis lediglich Leserechte haben.

$ find . -type f -exec chmod 644 {} \;
$ find . -type d -exec chmod 755 {} \;
$ chmod o+w var var/.htaccess app/etc
$ chmod 550 pear
$ chmod -R o+w media

7. Installer System

Damit Magento einige Pfade korrigiert und zum Beispiel die eben gelöschte pear.ini wieder anlegt muss man das Setup aufrufen. Sonst funktioniert Magento-Connect nicht mehr richtig.

$./pear mage-setup

Nun sollte der Shop auf dem Zielsystem starten.
Hier noch ein paar Dinge die man nach der Übertragung überprüfen sollte:

  • Cache Einstellungen
  • Search index aktualisieren (rebuild)
  • Sitemap Erstellung
  • Google Analytics auf dem Developer-System deaktivieren

Wenn alles schief gelaufen ist und zum Beispiel Magento-Connect nicht funktioniert, kann man das aktuellste Core-System einspielen:

$ ./pear install magento-core/Mage_All_Latest

5 Responses to Zwei Magento-Systeme abgleichen

  1. Super, das ist mir neu. Danke für den Hinweis! Dafür liebe ich das Internet, dass man fix auf solche coolen Tipps stößt :-). Danke nochmal und schöne Grüße, Ferdinandus Uhl

  2. Ich bin kompletter Laie was die Shopsoftware Magento angeht. Vorher habe ich hauptsächlich als Suchmaschinenoptimierer gearbeitet. Bzw komme gerade aus dem Studium und kannte Magento nur vom hören sehen. Aber ich denke, es ist notwendig sich in diese Software einzulesen/einzuarbeiten. Viele Kunden wünschen sich einen guten Shop, der Funktionalität mit Usability vereint. Bisher läuft meine Einarbeitung gut, auch durch die Hilfe meiner Kollegen. Für mich ist die Intuitive Menüführung leicht zu erlernen, wie damals WordPress. Wenn man erstmal weiß wie es geht, mag man die Software nicht mehr hergeben. Weiter so!

  3. magmuss sagt:

    Funktioniert das denn auch bei einem Ugrade von 1.4.0 auf 1.6.2?
    Was passisiert, wenn die Datenbanktabellen nicht identisch sind? Kann ich das im Vorfeld prüfen?
    Ich möchte verhindern, dass ich mir alles zerschieße.

  4. […] grundsätzliche Vorgehen habe ich schon im Artikel “Zwei Magento-Systeme abgleichen” beschrieben. Der Artikel war jedoch für Magento 1.4 und danach haben sich ein paar […]

    • Websolutions sagt:

      In diesem Artikel geht es nicht um ein Update des Magento-Systems, sondern wie man es von einem lokalen Testsystem auf den finalen Serverplatz bekommt. Ein Update ist immer eine heikle Sache und sollte erst auf einem Testsystem durchgeführt und ausgiebig getestet werden. Wenn dann alles läuft, kann man das aktualisierte System mit der hier beschriebenen Methode auf den finalen Server kopieren und installieren. Allerdings sollte dabei das komplette Magento-Verzeichnis kopiert werden, nicht nur einzelne Ordner. Hier noch ein aktualisierter Artikel für Magento ab Version 1.5.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: