Backup, Klon und Duplikat von Magento erstellen

Backup, Klon und Duplikat von Magento erstellen

Backup von Magento erstellen - Magento Commerce klonen. Um Magento zu klonen oder ein funktionierende Backup zu erstellen müssen einige Besonderheiten beachtet werden.

Bevor man startet und einen Projektplan erstellt sollten folgende Bereiche beachtet werden um

Ordner in Magento Funktionen Plug-ins, Extensions

var/cache

var/session

var/locks

Compiler deaktivieren

Caches deaktivieren

Fullpage Cache deaktivieren

Andere Caches oder Cache Erweiterungen deaktivieren

Piwik Logprocessing

GoogleAnalytics

Integraton Online Dienste

Vorarbeiten

Im Admin Bereich von Magento folgendes ausführen.

  • Magento > Admin > Konfiguration > Cache > Deaktiveren
  • Magento > Admin > Konfiguration > Compiler > Aus
  • Magento > Admin > Konfiguration >
  • Magento > Admin > Abmelden

Das abmelden ist sinnvoll um die Sitzung zu beenden. Bei den Caches ist es wichtig alle Caches zu deaktivieren und zu leeren. Andernfalls gibt es oft Probleme mit einer "Blank Page" oder der Admin Login funktioniert nicht. Der Magento Compiler kann auch per Command Line geprüft werden.

php -f shell/compiler.php -- state
php -f shell/compiler.php -- disable
php -f shell/compiler.php -- clear

Magento kann viele veraltete Sessions noch halten im Ordner var/session Das folgende Command löscht alte Sitzungen von Magento

find magento-root/var/session -name 'sess_*' -type f -mtime +30 -exec rm {} \;

Das löschen der Cache Dateien kann wie folgt per Command Line erfolgen

rm -R magento-root/var/cache/*

Die Inhalte der Ordner cache und session stellen oft ein Problem dar, wenn man Magento in einer neuen Umgebung starten will. Werden die session im Server Memory gehalten sollte dieser leer sein.

 

Backup Magento v1

Es müssen 2 Bereiche als Backup gemacht werden.

  1. Datenbank (Tabellen)
  2. Magento Root Verzeichnis

Backup der Magento Datenbank

Je nach Auslastung vom Magento eCommerce Shop kann es erforderlich sein den Shop in den eCommcerce Modus zu versetzen mit der Datei maintainance.flag

mysqldump -u 'mysql-benutzer' -p magento-db | gzip > /pfad/magento-db.sql.gz

* Seit MySQL 5.0.51 werden beim mysqldump command die foreign key checks ausgeschaltet. Ansonsten hier noch die Commands.

USE magento-db;
SET FOREIGN_KEY_CHECKS = 0;
Exit;

Nachdem aufgrund der Log Tables die Magento Datenbank sehr große werden kann, mag eine Backup ohne diese Tabellen eine Alternative sein.

mysqldump -u 'mysql-benutzer' -p magento-db \
--ignore-table=magento-db.log_url_info \
--ignore-table=magento-db.log_url \
--ignore-table=magento-db.log_visitor \
--ignore-table=magento-db.log_visitor_event | gzip > /pfad/magento-db.sql.gz

Backup Magento Root

cd magento-root/
tar czf /pfad/magento.bak.tgz *

Ergebnis

In dem Ordner / Verzeichnis "pfad" sollten nun 2 Dateien komprimiert liegen

magento-db.sql.gz
magento.bak.tgz

Magento Klone Duplikat erstellen

Meist wird ein Klone oder Duplikat erstellt um Magento Commerce zu testen oder als Entwicklungsumgebung zu nutzen. Das kann in dann lokal an einem Rechner geschehen oder gleich an der selben Serverumgebung (zu bevorzugen) mit einer Subdomain.

Datenbank anlegen

Unter MySQL eine Datenbank anlegen z. B. magento-db2 und das Backup einspielen

gunzip -c /pfad/magento-db.sql.gz | mysql -u 'mysql-benuter' -p magento-db2

Je nach Umfang kann das einige Minuten dauern. Bevor jedoch das Duplikat oder Klone gentutz werden kann sollte einige config Werte auf die neue Umgebung per MySQL angepast werden.

Magento Root Klone

Zuerst extrahiert man die komprimierte Datei in einem Zielpfad vom Webserver Verzeichnis (Apache Directory).

tar xvf magento.bak.tgz

Sofern die geklonte Magento Root schon per HTTP aufrufbar ist, sollte sofor die .htachess Datei angepasst werden um den Zugriff zu beschränken. Hier im Beispiel eine fiktive IP Adresse

order deny,allow
deny from all
allow from 1.1.1.1

Für Arbeitsgruppen ist ein Realm mit einem geteilten Passwort die einfachste Lösung. Die htpassword Datei kann hier erzeugt werden.

AuthType Basic
AuthName "Development"
AuthUserFile /pfad/.htpasswd
Require valid-user

Insgesamt vermeidet man, dass Suchmaschinen wie Google oder Bing die Subdomain der Testumgebung indexieren und eventuell abstrafen wegen Double-Content.