Nachfolgend meine Best-Practise-Methode für den Umzug eines Magento-Shops auf einen anderen Server
Quicksteps des How-to
- Magento-Verzeichnis per SSH komprimieren
- Datenbank sichern
- Datenbank transferieren und wieder einspielen
- Magento-Konfiguration in Datei und Datenbank anpassen
1. Die Ordner des Shops komprimieren
Fact: Ein Umzug per FTP dauert viel zu lange, da zu viele kleinere Dateien zugegriffen werden muss. SSH via Putty ermöglicht uns einen schnellen Komprimier und Download-Vorgang.
Die meisten Magento Shops laufen auf Managed-Servern oder Root-Servern. Auf vielen kann man auch per Admin-Panel beruhigt Ordner verschieben und komprimieren.
Mit SSH kann man per Tar-Befehl Ordner und Dateien komprimieren.
tar -parameter Quellordner Zieldatei tar -cvf magento magento.backup.tar.gz
2. Datenbank mit phpMyAdmin exportieren
Allgemein gibt hier zwei Fälle: zum einen wird die komplette Datenbank gesichert, zum anderen werden alle Dateien einer Datenbank gesichert. Falls man keinen direkten Zugriff auf den Datenbank-Server hat, sollte man lediglich die Tabellen exportieren.
Beim Export der Datenbank mit phpMyAdmin sollte man darauf achten, dass die Fremdschlüsselüberprüfung deaktiviert 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.
3. Datenbank und Magento auf den neuen Server hochladen
Per SSH ist ein direktes anfordern der Backup-Dateien vom Quellserver auf den Ziel-Server möglich.
wget www.quellserver.com/magento.backup.tar.gz
Mit SSH entpacken geht folgendermaßen:
tar -parameter Quelldatei Zielordner
tar -xfz magento.backup.tar.gz magento
4. Magento-Konfiguration anpassen
Datenbank-Zugang
Falls sich die Datenbank Zugangsdaten auf dem neuen Server geändert haben, muss man die Datei /app/etc/local.xml anpassen.
<connection> <host>db****.mydbserver.com</host> <username>p*****</username> <password>1******</password> <dbname>usr_p******_2</dbname> ... </connection>
Domain-Eintrag des Shops
In der Datenbank müssen ggf. anschließend noch zwei Werte zusätzlich angepasst 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.
Anschließend empfehle ich ein Login im Backend um den Magento-Cache zu leeren, welcher durch den gewöhnlichen Export nun auch in der aktuellen Datenbank vorhanden ist. Für den Fall, dass Du mit Subdomains gearbeitet hast, ist das Leeren des Caches der Schlüssel zum Erfolg.
Trouble-Shooting
- Beim switchen von Subdomain zu Subdomain reagiert der Shop scheinbar mit einer Weiterleitung auf die alte Domain. Magento bezieht in diesem Fall Seiten aus dem Magento-Seiten-Cache. -> Cache leeren.
- Bei Problemen mit einer Shop-Kopie auf einer Subdomain in System > Configuration > Web > Url Options > Auto-redirect to Base URL deaktivieren .Dann Magento-Cache leeren über Admin oder den Inhalt vom Verzeichnis var löschen.
- Forget to change your theme through ”System->Configuration->Design”, you dont have to do that!
I guess no one is looking at ”System->Design” its in the system dropdown menu between ”Web Services” and ”Import/Export”, now goto there.
If you still have the good configuration you should see the values are default/default, press that row and you can change your package name in the dropdown on that page, save it, clear cache and VOILA!
If you do the Step System > Configuration > Design dont do System->design, its the one or the other not both…