Eine harte Nuss: Typo3 Website spiegeln

Das hatte ich mir einfacher vorgestellt! Eine Typo3-Website, die online ist, sollte auf einem anderen Computer gespiegelt werden.

Ein Grund dafür war, daß mir immer etwas unwohl war bei dem Gedanken daran, wie schwer oder wie einfach es wohl wäre, nach Störungen aus einem Backup die Website wiederherzustellen. Mir kam es sicherer vor, die gleiche Webpräsenz auf meinem lokalen Computer vorrätig zu haben.

Ein weiterer Grund war, daß ich immer etwas Scheu hatte, einige Dinge direkt auf dem Originalrechner auszuprobieren. Mir erschien es sicherer, für Experimente zunächt nur das lokale Spiegelbild zu verwenden.

Im Prinzip geht das ganze eigentlich ganz einfach: Der lokale Rechner  arbeitet – wie der Server im Web – unter Debian Linux etch, verwendet die gleiche Version von Apache2, PHP und MySQL. Mittels mysqldump sollte die Datenbank auf dem Server im Web gespeichert und dann auf dem lokalen Rechner wieder hergestellt werden. Außerdem waren die entsprechenden Verzeichnisse 1:1 auf den lokalen Rechner zu übertragen.

Gesagt, getan. Die Arbeit wurde dadurch erleichtert, daß ich auf dem Quellrechner auch Administratorrechte habe. Andererseits wollte ich so wenig wie möglich den laufenden Betrieb des Webservers und seine Sicherheitskonfiguration stören.

Das erste Problem hatte seine Ursache darin, daß es aus Sicherheitsgründen nicht möglich ist, sich direkt als Root in den Quellserver einzuloggen. Zunächst war das noch nicht als Problem erkennbar, denn sobald ich per ssh als normaler User eingeloggt war, konnte ich per su ganz schnell Root werden.

Ich habe dann per

mysqlshow -u root -p -h localhost

und Eingabe des Passworts schnell den Namen der gewünschten Datenbank festgestellt. Dann konnte ich die nötigen Verzeichnisse in einen dem normalen User zugänglichen temporären Bereich kopieren.

Danach hatte ich vor, einfach per scp alles auf meinen lokalen Rechner zu schieben – da kam dann das Problem zutage: Ein scp vom Quellrechner aus war nicht möglich, denn der Zielrechner verfügt zum einen nicht über eine feste IP-Adresse und liegt zum anderen hinter einer Firewall in einem lokalen Netzwerk- wie hätte ich also den Zielrechner bezeichnen sollen? Ein scp aber vom Zielrechner aus war ebenfalls nicht möglich, denn dazu hätte ich mich auf dem Quellrechner im scp-Befehl als root einloggen müssen- und das ist wie oben schon gesagt nicht möglich. Vermutlich hätte es für gewiefte Linuxer doch irgendeinen Dreh gegeben,so gut bin ich aber in Linux nicht und mußte daher einen anderen, leider etwas komplexeren Weg gehen, der das Kopieren der Verzeichnisse als normaler User möglich macht.

Mein Weg war es,  alle betroffenen Verzeichnisse und Dateien auf dem Quellrechner zum Eigentum des Users und seiner Gruppe  zu machen. Das war ohne weiteres möglich, weil ich ja mit einer Kopie in einem temporären Userverzeichnis arbeitete. Danach konnte ich dann per scp als normaler User die kompletten Verzeichnisse auf den Zielrechner schieben. Der Haken an dieser Lösung ist es leider, daß danach alle Eigentumsverhältnisse und Rechte wieder auf den Ursprungswert gestellt werden müssen, was etwas Geduld erfordert hat.

Nachdem auf diese Weise gewissermassen das Bett vorbereitet war, konnte ich nun auf dem Quellrechner (als Root) den Datenbank-Dump erstellen:

mysqldump -u root -p –opt –databases Datenbankname > backup.sql

Das ging gottlob sehr schnell und hat den laufenden Zugriff auf die Typo3-Website sicher kaum behindert. Nach kopieren in den temporären User-Ordner und ändern der Eigentümerschaft war auch diese Datei schliesslich auf dem lokalen Rechner gelandet.

Zum Wiederherstellen der Datenbank habe ich dann eingegeben:

mysql -u root -p Datenbankname < backup.sql

Das Ergebnis war die Fehlermeldung

ERROR 1049 (42000): Unknown database ‚Datenbankname‘

Da wurde dann klar, daß zunächst einmal per mysql auf dem Zielrechner die Datenbank namens Datenbankname angelegt werden musste! Das war lösbar nach ein wenig MySQL-Lektüre und danach liess sich auch der obige mysql-Befehl  zum Füllen der erzeugten Datenbank ohne Fehlermeldung ausführen.

Bei einem versuchten Start der Benutzeroberfläche der jetzt kopierten Typo3-Website auf dem lokalen Rechner kam es allerdings wieder zu Fehlern. Der Grund lag darin, daß sich Passworte und Nutzernamen auf dem Quell- und dem Zielrechner unterschieden. Um auch dieses Hindernis noch auszuräumen ist es nötig die Datei localconf.php zu editieren und die entsprechenden Zeilen, die sich damit befassen zu verändern.

Außerdem habe ich mir eine Sache nicht so genau gemerkt: Beim versuchten Start der Typo3-Konfigurationsseite wird ein neues Passwort verlangt, welches auf der gleichen Seite unten dann in verschlüsselter Form zu sehen ist. Dieses verschlüsselte Passwort muß dann ebenfalls in die entsprechende Zeit der Datei localconf.php eingetragen werden.

Comments are closed.