Da ich dieses Problem gerade mal wieder hatte, dachte ich mir, ich schreibe mal die Arbeitsschritte nieder:
Die Grundsituation ist die Folgende: TYPO3 läuft auf einem Server und soll nun auf einen neuen Server umgezogen werden. Man könnte dies natürlich nun mittels FTP und phpMyAdmin bewerkstelligen – aber wir haben einen SSH-Zugang und nutzen diesen daher. Die Anleitung geht davon aus, dass wir Zugang zu einer Shell haben. Linux und Mac OS X haben diese bereits an Board – Windows User sollten auf PuTTY ausweichen (in diesem Fall sieht der erste Schritt anders aus – bitte die Doku kontaktieren):
- Als erstes müssen wir uns mittels SSH auf dem Server einloggen. Statt “loginname” geben wir das Login an, welches wir vom Serverbetreiber erhalten haben und statt “www.alter-domainname.de” geben wir natürlich unseren Domainnamen (von der Domain, die wir umziehen wollen) an.:
ssh -l loginname www.alter-domainname.de
- Nun wechseln wir in das “public_html”-Verzeichnis (also dem Verzeichnis, welches unsere “index.php” für den TYPO3-Betrieb enthält. Unter Umständen ist der SHH-Zugang so konzipiert, dass man nach dem einloggen direkt dort landet. Dieses Verzeichnis kann auch “html”, “web” oder ähnlich heissen).
cd pfad1/pfad2/public_html
- Nun fertigen wir ein Backup der Datenbank an. Genaugenommen müssten wir sicherstellen, dass keinerlei Schreibzugriffe mehr stattfinden, indem wir den Apache-Webserver stoppen.”HOSTNAME” ist der Name des Datenbankservers (ist oftmals “localhost”), “USERNAME” eben der Username und das Passwort muss direkt hinter “-p” geschrieben werden. Das Backup landet nun direkt in der Datei “backup.sql” in unserem “public_html”-Verzeichnis
mysqldump -h HOSTNAME -u USERNAME -pPASSWORT DATENBANKNAME > backup.sql
- Jetzt fertigen wir ein Backup aller Dateien an – dafür verwenden wir den Befehl “tar” an. Dieser packt alle Dateien in eine einzige Datei und komprimiert diese sogar anschließend noch. Durch “website.tar.gz” wird der Name der Datei festgelegt, der die ganzen gepackten Dateien aus dem public_html-Verzeichnis beinhalten soll. Die Angabe des Punktes “.” besagt, dass wir das Backup vom aktuellen Verzeichnis anfertigen wollen.
tar -czvf website.tar.gz .
- Nun loggen wir uns mit einer zweiten Shell in den neuen Server ebenfalls per SSH ein:
ssh -l loginname www.neuer-domainname.de
- Und wechsel bei diesem ebenfalls in das “public_html”-Verzeichnis
cd pfad1/pfad2/public_html
- Mittels “wget” übertragen wir nun das Backup direkt vom alten auf den neuen Server
wget www.alter-domainname.de/website.tar.gz
- Als nächsten entpacken wir das Tar-File auf dem neuen Server:
tar -xzvf website.tar.gz
- Nun müssen wir einfach nur eine neue Datenbank auf dem neuen Server mit dem Namen “NEUERDATENBANKNAME” (hier natürlich einen eigenen Namen wählen) anlegen – beispielsweise mittels Sysadmin-Tool wie Confixx, SysCP oder phpMyAdmin
- Und spielen das Datenbank-Backup wieder ein
mysql -h HOSTNAME -u USERNAME -pPASSWORT NEUERDATENBANKNAME < backup.sql
- Jetzt passen wir noch die Zugangsdaten für die Datenbank in der Datei “typo3conf/localconf.php” an – also Server, Datenbank, Username, Passwort)
- und voilá – wir sind ersteinmal fertig.
- Um nun dieses Setup zu testen, kann man in die Datei “hosts” (bei Mac OS X in /private/etc/) einen Eintrag in der folgenden Art hinterlegen – damit werden alle Anfragen an die Domain direkt an die neue IP-Adresse des Servers weitergeleitet und man kann die umgezogene TYPO3-Installation in Ruhe testen. Erst wenn alles zur Zufriedenheit läuft, kann man im DNS die entsprechenden Änderung vornehmen.
# IP-Adresse Domain
12.34.56.78 www.neuer-domainname.de
- Die Anleitung geht prinzipiell davon aus, dass sowohl alter, wie auch neuer Datenbankserver die selbe Kodierung für die Datenbank verwenden. Wenn dies nicht so sein sollte, wird der Workflow etwas komplizierter – dies werden wir in einem der nächsten Postings behandeln.



März 15th, 2009 at 7:17 pm
Hi
Ich mach das hier sehr ähnlich, aber statt wget schiebe ich die Daten direkt via scp auf den neuen Server. Aufruf in etwa so:
scp domain.tar.gz user@neuerserver:/pfad/zu/wo/ichs/haben/will
mit Enter bestätigen, Passwort eingeben (falls nötig) und gut ist. Vorteile die ich dabei sehe, ist die verschlüsselte Übertragung der Datei, und dass die gezippte Datei nie auf dem öffentlich zugänglichen WebRoot liegen muss.
Gruss,
Mario
März 16th, 2009 at 10:58 am
Hallo Mario,
super Tipp! Hast Recht – eine verschlüsselte Übertragung per “scp” ist immer der unverschlüsselten vorzuziehen – zumal die Datei mit Deiner Methode tatsächlich überall liegen kann und nicht (wie bei mir) im “document_root” liegen muss.
Gruss,
Patrick
März 17th, 2009 at 9:19 am
Besser konnte ich es auch nicht beschreiben. Wir machen es übrigens auch immer mit “scp”, zwecks Sicherheit.
Ein kleiner Tip noch, falls die Umlaute in der DB nach dem Importieren zerschossen sind: Beim MySQL-Import noch “–default-character-set=utf8″ hinzufügen.
Gruß, Thomas
März 17th, 2009 at 9:20 am
Sollten natürlich 2 mal “-” sein vor default-character-set.
März 25th, 2009 at 5:03 pm
Für die, die eine GUI bevorzugen sei hier noch an WinSCP erinnert.
Damit lassen sich die Daten dann auch übertragen.
Oktober 2nd, 2009 at 2:48 pm
hi ihr! ich versuche typo3 von einen auf den anderen Server umzuziehen. klappt sowiet ganz gut. db gesichert und eingespielt, ftp auch hochgespielt, config angepasst, jedoch habe ich immer noch die alten URLs vom alten System. wie kann ich das beheben hat jmd einen tip? vielen dank
Oktober 16th, 2009 at 12:43 am
config.baseUrl im Template noch auf alter Domain?
Februar 12th, 2010 at 2:48 pm
Jo, das klappt eigentlich immer