Magento auf einen neuen Server umziehen – Typische Fehler

Eine Website von einem Server auf einen anderen umzuziehen ist nicht einfach, deutlich schwieriger wird das ganze aber nochmal wenn die Website ein Shop ist. Da ich schon einige Magento Shops umgezogen haben, wollte ich meine Vorgehensweise vorstellen und die typischen Probleme bei einem Magento Umzug mit der entsprechenden Lösung auflisten.

Bewährte Vorgehensweise

  • Shopsystem auf dem Server zu einer .zip Datei zusammenfassen
    Die meisten Magento Shops dürften auf Managed-Servern oder Root-Servern laufen. Sowohl auf Root als auch auf Managed Servern sollte man die Möglichkeit haben den Shop zu zippen.
    Da Magento aus extrem vielen kleinen Dateien besteht, dauert der Transfer der Dateien ohne das zippen deutlich länger.
  • Datenbank mit phpMyAdmin exportieren
    Beim Export der Datenbank sollte man darauf achten, dass die Option Fremdschlüsselüberprüfung deaktivieren aktiviert ist. Da Magento, wie alle größeren Shop Systeme, in der Datenbankstruktur viele Foreign Keys verwendet, kann es sonst zu Problemen beim Import führen. Am Ende der exportierten Datei wird die Fremdschlüsselüberprüfung von phpMyAdmin automatisch wieder aktiviert.
  • Datenbank und Magento auf den neuen Server hochladen
    Die Datenbank kann man im komprimierten Zustand auch per FTP Client hochladen. Magento selbst sollte, um Zeit zu sparen, direkt von dem alten Server auf neuen Server hochgeladen werden werden.
  • Magento entpacken
  • Die Datenbank mit mysqldump oder bigdump einlesen.
  • Datenbank Zugangsdaten ändern
    Falls sich die Datenbank Zugangsdaten auf dem neuen Server geändert haben, muss man diese in der Datei /app/etc/local.xml auch anpassen.
  • In der Datenbank müssen anschließend noch zwei Werte modifiziert werden. Beide Einträge befinden sich in der Tabelle core_config_data. Der erste Eintrag ist web/unsecure/base_url, welcher die neue URL des Shops bekommen sollte. Der zweite Eintrag ist web/secure/base_url, welcher die HTTPS URL des neuen Shops beinhalten sollte.
    Falls der Shop nur auf einen neuen Server umgezogen wird, ohne dass dabei ein URL Wechsel vollzogen wird, kann dieser Schritt übersprungen werden

Nachdem man die Schritte alle ausgeführt hat, sollte der Shop wieder problemlos auf dem neuen Server funktionieren. Da aber trotzdem immer wieder Probleme dabei auftreten, habe ich hier eine Liste über Typische Probleme angehängt.

USING BTREE

Fehlermeldung
ERROR 1064 (42000) at line 382: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘USING BTREE,
KEY `FK_ATTRIBUTE_VARCHAR_ENTITY` (`entity_id`),
KEY `FK_CATALO’ at line 9

Problem & Lösung
Ältere MySQL Versionen können mit USING BTREE hinter der Liste der Unique Keys nichts anfangen. Daher muss man in dem Datenbank Dump folgende Zeile suchen:

UNIQUE KEY `IDX_BASE` (`entity_type_id`,`entity_id`,`attribute_id`,`store_id`) USING BTREE,

und mit folgender Zeile austauschen:

UNIQUE KEY `IDX_BASE`  USING BTREE (`entity_type_id`,`entity_id`,`attribute_id`,`store_id`),

Falls das einspielen des Dumps danach immer noch nicht funktioniert, wird in verschiedenen Blogs geraten das USING BTREE einfach herauszulöschen. Ich konnte die Dumps bisher nach der Umstellung immer einspielen und würde daher von solchen Modifikationen abraten.

Store Zusammenhänge

Fehlermeldung
Undefined index: 0 in /app/code/core/Mage/Core/Model/Mysql4/Config.php on line 92

Problem & Lösung
Beim Umzug von Magento kann es vorkommen, dass Indexe erhöht werden und anschließend die interne Zuordnung von Stores zu Websites nicht mehr funktioniert. Ich hatte das Problem bei älteren Versionen mehrmals, bei 1.4.x ist es mir allerdings noch nicht untergekommen.

Im Internet kursieren dazu verschiedene Lösungen, die meistens das manuelle Editieren der betroffenen Einträge zur Folge haben. Das manuelle editieren in Datenbanken sollte man allerdings Fachleute machen lassen, da man hier schnell Datensätze kaputt machen kann.

setWebsite() must be an Instance…

Fehlermeldung
Recoverable Error: Argument 1 passed to Mage_Core_Model_Store::setWebsite() must be an instance of Mage_Core_Model_Website, null given, called in /path/app/code/core/Mage/Core/Model/App.php on line 427 and defined in /path/app/code/core/Mage/Core/Model/Store.php on line 279

Lösung
Um das Problem zu lösen, muss man die Datei /app/etc/use_cache.ser löschen.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Notify me of followup comments via e-mail. You can also subscribe without commenting.