Mit Joomla-Webseite auf einen anderen Server umziehen

Da ich grade vor dem Problem stehe, einem Bekannten zu zeigen, wie man mit einer auf Joomla basierenden Webseite auf einen anderen Server umzieht, dachte ich mir, dass kann ich auch gleich hier dokumentieren. Vielleicht kann es ja der ein oder andere auch gebrauchen.

Ausgangsituation ist also Server A. Hier liegen in einem Unterverzeichnis die FTP Daten und in einer MySQL Datenbank auf eben jenem Server auch die variablen Inhalte des CMS. Es ist eine Subdomain auf diesem Entwicklungsserver eingerichtet in der Form xxx.kochsiek.org

Jetzt soll die dort befindliche Webseite auf den Server B umziehen, um unter der Domain www.xxx.de zu laufen.

Die folgende Anleitung wendet sich an nicht ganz unerfahrene Anwender. Der Umgang mit einem FTP Client sollte bekannt sein und auch MySQL Datenbanken dürfen kein Geheimnis darstellen.

Der Umzug gliedert sich in mehrere Teile.

1. FTP Daten

Hier muss man zunächst den Inhalt des kompletten Verzeichnisses, in dem sich die Joomla Installation auf Server A befindet, mittels FTP auf den lokalen Rechner runteladen. Dazu nutze ich den FTP Client FileZilla. Ich erzeuge mir also auf einer lokalen Platte ein neues, leeres Verzeichnis und lade dort das komplette Verzeichnis des Webservers hinein.

Auf meinem Webserver habe ich eine Ordnerstruktur in der Form

[root]
[root]/domain
[root]/domain/xxx_kochsiek_org
[root]/domain/yyy_kochsiek_org
[root]/domain/zzz_kochsiek_org

Die Joomla-Verzichnisse liegen also alle in dem entsprechenden Ordner:
[root]/domain/xxx_kochsiek_org
[root]/domain/xxx_kochsiek_org/administrator
[root]/domain/xxx_kochsiek_org/cache
[root]/domain/xxx_kochsiek_org/cli
[root]/domain/xxx_kochsiek_org/components
[root]/domain/xxx_kochsiek_org/images
[root]/domain/xxx_kochsiek_org/includes
[root]/domain/xxx_kochsiek_org/language
[root]/domain/xxx_kochsiek_org/libraries
[root]/domain/xxx_kochsiek_org/logs
[root]/domain/xxx_kochsiek_org/media
[root]/domain/xxx_kochsiek_org/modules
[root]/domain/xxx_kochsiek_org/plugins
[root]/domain/xxx_kochsiek_org/templates
[root]/domain/xxx_kochsiek_org/tmp

Alle diese Ordner – natürlich inkl. deren Inhalte – sowie den Inhalt des Hauptordners wähle ich aus und kopiere sie auf menen lokalen Rechner.

Das kann evtl. etwas dauern, da es tausende Dateien sind, auch wenn die einzelne Datei vielleicht nur einige Bytes groß ist. Am Ende habe ich den kompletten Verzeichnisbaum auf meinem lokalen Rechner.

Ich verbinde mich nun per FTP auf den Zielserver B. Dort muss ich – je nach Webserver-Konfiguration – in das Verzeichnis wechseln, auf das die neue Domain www.xxx.de zeigt. Hier hin lade ich einfach den Inhalt meines soeben befüllten lokalen Verzeichnisses hoch. Das kann evtl. noch länger dauern, da die Upload-Geschwindigkeit meist erheblich unter der Download-Geschwindigkeit des Internetproviders liegt. Ausserdem sind es wieder tausende, klitzekleine Dateien, was halt einfach etwas dauert.

Funktionieren wird die Seite auf dem neuen Server jetzt natürlich noch nicht, da ja weder die Datenbank umgezogen ist, noch die Konfiguration darauf verweist.

Wenn man Shell-Zugirff auf den Server hat, kann man natürlich auch das kopieren der vielen einzelnen Dateien beschleunigen und zunächst auf dem Server ein Archiv des Ordners erstellen, um dann nur noch eine einzige große Datei runterzuladen. Das geht recht einfach mit dem Befehl

tar -cvzf /www/htdocs/abcd/backup/xxx_kochsiek_org_`date +%Y%m%d_%H%M`.tar.gz /www/htdocs/abcd/domain/xxx_kochsiek_org –exclude=access_log* –exclude=ftp_log*

Damit wird im Ordner [root]/backup eine Datei namens xxx_kochsiek_org_JJJJMMDD_HHMM.tar.gz erstellt (wobei Datum und Uhrzeit in den Namen eingebaut werden). Diese Datei kann man runterladen und auf dem Ziel-Server wieder entpacken. Das geht deutlich schneller als alle Dateien einzeln zu behandeln.

Damit kommen wir zum nächsten Teil

2. MySQL Datenbank

Mit Hilfe des MySQLDumpers mache ich ein Backup der MySQL Datenbank auf Server A und lade die so erzeugte Backup Datei wieder lokal auf meinen Rechner in ein entsprechendes – leeres – Verzeichnis, das ich auch wiederfinde.

Auf dem neuen Server B muss natürlich auch eine Installation des MySQLDumpers vorhanden sein. Die soeben heruntergeladene Backup-Datei lade ich per FTP in das Verzeichnis /work/backup des Dumpers auf Server B hoch.

Im Idealfall habe ich bereits eine neue, leere MySQL Datenbank auf dem neuen Server erstellt und im Dumper konfiguriert.

In diese Datenbank stelle ich nun die eben gesicherte DB von Server A wieder her.

Falls es Fragen zum Handling des Backups und der Wiederherstellung mit Hilfe des Dumpers gibt, ist das MSD Support-Forum der richtige Platz, um nach Hilfe zu fragen.

FTP Daten der Joomla-Seite und die Datenbank liegen jetzt also beide auf Server B. Aber etwas fehlt noch!

3. Konfiguration ändern

In jeder Joomla-Installation gibt es im Hauptverzeichnis eine Datei, die configuration.php heißt. Diese Datei habe ich mit allen anderen aus Schritt Nr. 1 bereits auf den neuen Server B hochgeladen. Sie ist jedoch noch konfiguriert für den Server A. Einige Anpassungen muss man hier noch vornehmen.

Ich lade diese Datei also wieder lokal auf meinen Rechner und editiere sie mit einem Texteditor (Achtung: Word ist keiner!). Am liebsten nutze ich für sowas Notepad++

In der Datei gibt es die Variablen
$host
$user
$db
$password
$log_path
$tmp_path
$sendmail
Diese enthalten Angaben zum alten Server A und müssen entsprechend des neuen Servers B geändert werden.

Anschließend lade ich die Datei wieder per FTP auf Server B hoch und ersetze damit die dort vorhandene Datei.

Jetzt kann man die Seite unter der neuen Domain auf Server B bereits aufrufen. Ein Schritt muss aber noch gemacht werden!

4. Berechtigungen setzen

Joomla benötigt auf einige Verzeichnisse Schreibrechte, um korrekt funktionieren zu können.

Um rauszubekommen, welche Verzeichnisse das sind, geht man im Administrator-Backend von Joomla über das Menü Site / Systeminformationen. Hier gibt es einen Untereintrag Verzeichnisrechte. Alle hier aufgelisteten Verzeichnisse sollten per FPT die CHMOD Rechte 777 bekommen.

Das ist der Weg zu dieser Auflistung ab der Joomla-Version 1.6, in der Version 1.5 war der Weg Hilfe / Systeminfo / Verzeichnisrechte.

Die Datei configuration.php (siehe Schritt Nr. 3) muss auch beschreibbar sein, damit Änderungen an der Konfiguration über die Weboberfläche gespeichert werden können.

Das war’s im Grunde. Die Seite läuft jetzt auch auf Server B.

Dieser Beitrag wurde unter Technisches, Webdesign abgelegt und mit , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

2 Antworten zu Mit Joomla-Webseite auf einen anderen Server umziehen

  1. Jonathan sagt:

    Also 777 Rechte sollte man grundsätzlich nie vergeben, allenfalls 775. Aber ansonsten nettes Tutorial

  2. Basti sagt:

    Danke für die Anleitung. Ich hatte $log_path, $tmp_path sowie $sendmail nicht angepasst und es funktionierte nicht. Jetzt klappt alles wunderbar… 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.