Umzug
Aus ShopleiterWiki
1.4.3 Domain- und Serverumzug
Gelegentlich kommt es vor, dass ein Magento-Shop auf einen anderen Webserver umzieht. Die Gründe hierfür sind oft vielfältiger Natur:
- Umziehen des Testsystems in die künftige Live-Umgebung
- Wechseln des Domainnamens oder des zugehörigen Webspaces
- Verlegen des Shops auf einen komplett neuen Webserver
Wer seinen Online-Shop auf einen neuen Webserver mit anderer Domain umziehen will, muss nur wenige Schritte befolgen. Für versierte Anwender, die sich einigermaßen gut mit FTP, PHP und MySQL auskennen, stellt dies kein Problem dar.
- Kopieren Sie alle Dateien auf den lokalen Rechner!
- Erstellen Sie mit dem SQL-Tool phpMyAdmin einen DB-Dump!
- Importieren Sie die dabei erstellte SQL-Datei in die neue Datenbank!
- Ändern Sie in der SQL-Tabelle „core_config_data“ den Domainnamen!
- Laden Sie alle heruntergeladenen Dateien auf den neuen Webserver hoch!
- Leeren (nicht löschen!) Sie alle im Verzeichnis /var/ befindlichen Ordner!
- Verändern Sie bei Bedarf in der .htaccess-Datei die Zeile mit RewriteBase!
- Tragen Sie in config.xml und local.xml die neuen DB-Zugangsdaten ein!
- Aktualisieren Sie in der Cache-Verwaltung den Rewrite-Index und den Cache!
Erstellen Sie auf dem aktuellen Webserver gleich zu Beginn mit mkdir /backup einen Backup-Ordner, in den Sie alle Daten für den Serverumzug ablegen. Dann fahren Sie fort mit dem Erstellen einer Dump-Datei der MySQL-Datenbank Ihres Shops. Abhängig von der Datenbank-Größe dauert dies wenige Sekunden bis einige Minuten.
Auch die Inhalte der Verzeichnisse /media/, /app/design/frontend/ und /skin/frontend/ archivieren Sie komprimiert als tar-Datei in den Backup-Ordner. Im media-Ordner befinden sich die Produkt- und Kategoriebilder. Die beiden anderen Verzeichnisse beinhalten das Webdesign Ihres Online-Shops, das so genannte Thema (engl. theme). Das Thema ist eine beliebige Kombination von Layout-, Template-, Locale- und Skin-Dateien, die das Aussehen Ihres Shops beeinflussen. Das Theme verteilt sich auf die beiden Verzeichnisse:
- /app/design/frontend/default/default/
In diesem Ordner liegen Layout-, Translation- (locale) und Template-Daten. - /skin/frontend/default/default/
Dieses Verzeichnis beinhaltet die Bilder, CSS-Dateien und Java-Skripte.
Etwas ungewöhnlich erscheint der doppelt vorkommende Ordnername /default/. Der jeweils erste Ordner (namens default) bestimmt den Interface-Namen, der zweite Ordner ist der Themen-Name. Lautet der von Ihnen verwendete Themen-Name mytheme und das zugehörige Interface myinterface, dann bearbeiten Sie das Aussehen Ihres Shops unter anderem im Verzeichnis /app/design/frontend/myinterface/mytheme/.
Haben Sie Änderungen an der .htaccess- und php.ini-Datei vorgenommen, müssen Sie auch diese im Backup-Ordner ablegen. Unbedingt mitnehmen sollten Sie die Konfigurationsdatei local.xml. Nach Ausführen aller Befehle in Listing 1.31 finden Sie im Backup-Ordner die sechs Dateien: app.tar, local.xml, media.tar, mydomain.sql, php.ini und skin.tar.
# Sichern einer einzelnen Datenbank namens DBNAME mysqldump --databases DBNAME -uDBUSER -pDBPASS –R > /backup/MYDOMAIN.sql # Sichern des Themas und aller Produkt- und Kategoriebilder cd /srv/www/vhosts/MYDOMAIN/httpdocs/ tar –cvf /backup/media.tar media/* tar –cvf /backup/app.tar app/[[Design]]/frontend/default/* tar –cvf /backup/skin.tar skin/frontend/default/* # Kopieren einiger [[Konfiguration]]sdateien cp php.ini app/etc/local.xml /backup/
Listing 1.31: Sichern der Datenbank, einiger Konfigurations- und Thema-Dateien
Mit Schritt 4 beginnt die Arbeit auf Ihrem neuen Webserver. Erstellen Sie dort zunächst eine lauffähige Standard-Installation von Magento, wie bereits unter Kapitel 1 beschrieben. Funktioniert Ihr Shop, dann loggen Sie sich als Webmaster mit administativen root-Rechten in Ihrem SSH-Client PuTTY ein und öffnen den gewünschten Installationspfad. Erstellen Sie hier ebenso einen Ordner namens /backup/, in den Sie alle Installationsdateien vom alten Rechner ablegen, die Sie mit dem Kommandozeilen-Programm wget holen.
Den Domainname domain.tld ersetzen Sie durch die neue IP-Adresse oder den Domainnamen Ihres alten Servers. Bitte bedenken Sie bei einem Domainumzug, wann Sie die Domain umziehen. Das Domain Name System (DNS) ist einer der wichtigsten Web-Dienste, dessen Aufgabe darin besteht, Anfragen zur Namensauflösung zu beantworten. Bei Anfrage mit einem Hostnamen (z. B.: Wallaby.de) liefert der DNS als Antwort die zugehörige IP-Adresse. Ist der DNS-Nameserver aufgrund des Domainumzugs bereits umgestellt, so funktioniert natürlich der wget-Befehl mit dem Domainnamen nicht mehr. In diesem Fall nutzen Sie statt des Domainnamens Ihre vorherige IP-Adresse.
Falls Sie noch keine leere MySQL-Datenbank konfiguriert haben, dann holen Sie dies nun nach. Achten Sie bei der Gelegenheit darauf, dass Sie den im Dump verwendeten Datenbanknamen nicht schon verwenden, sonst schlägt der Datenimport fehl mit dem Fehlerhinweis: „ERROR 1044 (42000) at line 22: Access denied for user 'DBUSER'@'%' to database 'DBNAME'“. Falls sich die Zugangsdaten der Datenbank ändern, dann müssen Sie noch die local.xml-Datei editieren. Als nächstes verschieben Sie die gesicherten Konfigurationsdateien sowie alle Medien- und Archivdaten an die korrekte Stelle.
# Wechseln ins Installationsverzeichnis cd /srv/www/vhosts/domain.tld/httpdocs/ mkdir backup cd backup # Dateien vom Remote Server abholen wget http://www.domain.tld/backup/MYDOMAIN.sql wget http://www.domain.tld/backup/app.tar wget http://www.domain.tld/backup/media.tar wget http://www.domain.tld/backup/skin.tar wget http://www.domain.tld/backup/local.xml wget http://www.domain.tld/backup/php.ini # Dump in MySQL-Datenbank einspielen mysql -h DBHOST -u DBUSER -pDBPASS DBNAME < backup/MYDOMAIN.sql # Verschieben und Entpacken der Konfigurations-, Medien- und Archivdateien cd app/design/frontend/default/ cp backup/app.tar app/design/frontend/default/ tar -xvf app.tar rm -rf app.tar cd ../../../../skin/frontend/default/ cp backup/skin.tar skin/frontend/default/ tar -xvf skin.tar rm -rf skin.tar cd ../../../media/ cp backup/media.tar media/ tar -xvf media.tar rm -rf media.tar cd .. mv backup/local.xml app/etc/ mv backup/php.ini /
Listing 1.32: Aufspielen der Shop-Daten auf den neuen Webserver
Falls erforderlich, so korrigieren Sie anschließend die beiden base_url-Einträge in der Datenbank-Tabelle core_config_data. Dies erledigen Sie relativ bequem mit phpMyAdmin, indem Sie den folgenden SQL-Befehl einsetzen: UPDATE core_config_data SET value = 'http://www.domain.tld/' WHERE path LIKE 'web/%/base_url'; Bei Bedarf können Sie auch die Datei MYDOMAIN.sql editieren und gleich richtig einspielen.
Jetzt leeren Sie die im Verzeichnis /var/ befindlichen Ordner. Achten Sie darauf, diese nicht zu löschen. Falls nötig, ändern Sie im Hauptverzeichnis die RewriteBase in der .htaccess-Datei. Zum Abschluß löschen und aktivieren Sie den Cache und aktualisieren die Indizes für Rewrite.

