Magento-Installation spiegeln
Beitrag vom: 23.08.2011, 16:27:51
Manchmal ist es nützlich, ein System wie Magento auf dem Live-Server zu spiegeln, um gewisse Tests wie z.B. ein Upgrade auf eine neue Version durchzuführen. Da eine Magento-Installation aus den zwei Komponenten Dateisystem und Datenbank besteht, heißt Spiegeln hierbei für uns, dass wir natürlich beides so kopieren, dass das Original unberührt bleibt und bei einem Live-Shop ohne Unterbrechung weiterlaufen kann.
Wenn möglich, sollte der Shop während des Spiegelns natürlich trotzdem kurzzeitig in den Wartungsmodus versetzt werden, sicher ist sicher. Dazu muss einfach im root-Verzeichnis der Installation die Datei maintenance.flag erstellt werden. Die index.php prüft dann auf deren Existenz und leitet dementsprechend um.
Das Kopieren selbst sollte am besten über die Konsole erfolgen. Also per SSH einloggen und zum Kopieren der Magento-Dateien folgendes eingeben:
Optimalerweise ist dabei Magento im Unterordner magento installiert und nicht im root-Verzeichnis des htdoc-Ordners selbst. Der Befehl kopiert den vorhandenen Ordner in den neuen Test-Ordner.
Das Spiegeln der Datenbank ist ähnlich einfach. Wir wollen hierbei die Datenbank usr_pxxx_1 in die Datenbank usr_pxxx_2 kopieren. Dazu verwenden wir das Konsolentool mysqldump. Wenn nicht vorhanden, kann es bei einem guten Hoster im control panel aktiviert werden.
Der folgende Befehl führt die Spiegelung durch:
Dieser Schnipsel besteht eigentlich aus zwei Befehlen. mysqldump erstellt ein Backup vonusr_pxxx_1, der daraus resultierende Output landet über die Pipe (dem “|”-Zeichen) direkt in mysql, dem Konsolen-Tool von MySQL.
Die mysqldump- und mysql-Parameter im Einzelnen (bei beiden identisch):
cp -R /pfad/magento /pfad/magento-TEST
mysqldump -u xxx -pxxxxx -hdbxxx.mydbserver.com usr_pxxx_1 | mysql -u xxx -pxxxxx -hdbxxx.mydbserver.com usr_pxxx_2
- -u der Benutzername für die Datenbank
- -p das Passwort, wobei zu beachten ist, dass das Passwort ohne Leerzeichen direkt an -p angehängt wird
- -h bei einigen Hostern muss der Datenbank-Host mit angegeben werden, auch hier kein Leerzeichen zwischen Parameter und Wert
- als letztes folgt die Datenbank als eigener Parameter