{"id":3697,"date":"2011-10-04T12:12:43","date_gmt":"2011-10-04T10:12:43","guid":{"rendered":"http:\/\/kochsiek.org\/blog\/?p=3697"},"modified":"2011-10-04T12:12:43","modified_gmt":"2011-10-04T10:12:43","slug":"mit-joomla-webseite-auf-einen-anderen-server-umziehen","status":"publish","type":"post","link":"http:\/\/kochsiek.org\/blog\/2011\/10\/04\/mit-joomla-webseite-auf-einen-anderen-server-umziehen\/","title":{"rendered":"Mit Joomla-Webseite auf einen anderen Server umziehen"},"content":{"rendered":"<p>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.<\/p>\n<p>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<\/p>\n<p>Jetzt soll die dort befindliche Webseite auf den Server B umziehen, um unter der Domain www.xxx.de zu laufen.<\/p>\n<p>Die folgende Anleitung wendet sich an nicht ganz unerfahrene Anwender. Der Umgang mit einem FTP Client sollte bekannt sein und auch MySQL Datenbanken d\u00fcrfen kein Geheimnis darstellen.<\/p>\n<p><!--more-->Der Umzug gliedert sich in mehrere Teile.<\/p>\n<p><strong>1. FTP Daten<\/strong><\/p>\n<p>Hier muss man zun\u00e4chst 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 <a title=\"FileZilla\" href=\"http:\/\/filezilla-project.org\/\" target=\"_blank\">FileZilla<\/a>. Ich erzeuge mir also auf einer lokalen Platte ein neues, leeres Verzeichnis und lade dort das komplette Verzeichnis des Webservers hinein.<\/p>\n<p>Auf meinem Webserver habe ich eine Ordnerstruktur in der Form<\/p>\n<p>[root]<br \/>\n[root]\/domain<br \/>\n[root]\/domain\/xxx_kochsiek_org<br \/>\n[root]\/domain\/yyy_kochsiek_org<br \/>\n[root]\/domain\/zzz_kochsiek_org<\/p>\n<p>Die Joomla-Verzichnisse liegen also alle in dem entsprechenden Ordner:<br \/>\n[root]\/domain\/xxx_kochsiek_org<br \/>\n[root]\/domain\/xxx_kochsiek_org\/administrator<br \/>\n[root]\/domain\/xxx_kochsiek_org\/cache<br \/>\n[root]\/domain\/xxx_kochsiek_org\/cli<br \/>\n[root]\/domain\/xxx_kochsiek_org\/components<br \/>\n[root]\/domain\/xxx_kochsiek_org\/images<br \/>\n[root]\/domain\/xxx_kochsiek_org\/includes<br \/>\n[root]\/domain\/xxx_kochsiek_org\/language<br \/>\n[root]\/domain\/xxx_kochsiek_org\/libraries<br \/>\n[root]\/domain\/xxx_kochsiek_org\/logs<br \/>\n[root]\/domain\/xxx_kochsiek_org\/media<br \/>\n[root]\/domain\/xxx_kochsiek_org\/modules<br \/>\n[root]\/domain\/xxx_kochsiek_org\/plugins<br \/>\n[root]\/domain\/xxx_kochsiek_org\/templates<br \/>\n[root]\/domain\/xxx_kochsiek_org\/tmp<\/p>\n<p>Alle diese Ordner &#8211; nat\u00fcrlich inkl. deren Inhalte &#8211; sowie den Inhalt des Hauptordners w\u00e4hle ich aus und kopiere sie auf menen lokalen Rechner.<\/p>\n<p>Das kann evtl. etwas dauern, da es tausende Dateien sind, auch wenn die einzelne Datei vielleicht nur einige Bytes gro\u00df ist. Am Ende habe ich den kompletten Verzeichnisbaum auf meinem lokalen Rechner.<\/p>\n<p>Ich verbinde mich nun per FTP auf den Zielserver B. Dort muss ich &#8211; je nach Webserver-Konfiguration &#8211; in das Verzeichnis wechseln, auf das die neue Domain www.xxx.de zeigt. Hier hin lade ich einfach den Inhalt meines soeben bef\u00fcllten lokalen Verzeichnisses hoch. Das kann evtl. noch l\u00e4nger 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.<\/p>\n<p>Funktionieren wird die Seite auf dem neuen Server jetzt nat\u00fcrlich noch nicht, da ja weder die Datenbank umgezogen ist, noch die Konfiguration darauf verweist.<\/p>\n<p>Wenn man Shell-Zugirff auf den Server hat, kann man nat\u00fcrlich auch das kopieren der vielen einzelnen Dateien beschleunigen und zun\u00e4chst auf dem Server ein Archiv des Ordners erstellen, um dann nur noch eine einzige gro\u00dfe Datei runterzuladen. Das geht recht einfach mit dem Befehl<\/p>\n<p><em>tar -cvzf \/www\/htdocs\/abcd\/backup\/xxx_kochsiek_org_`date +%Y%m%d_%H%M`.tar.gz \/www\/htdocs\/abcd\/domain\/xxx_kochsiek_org &#8211;exclude=access_log* &#8211;exclude=ftp_log*<\/em><\/p>\n<p>Damit wird im Ordner [root]\/backup eine Datei namens <em>xxx_kochsiek_org_JJJJMMDD_HHMM.tar.gz<\/em> 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.<\/p>\n<p>Damit kommen wir zum n\u00e4chsten Teil<\/p>\n<p><strong>2. MySQL Datenbank<\/strong><\/p>\n<p>Mit Hilfe des <a title=\"MySQLDumper\" href=\"http:\/\/mysqldumper.de\" target=\"_blank\">MySQLDumpers<\/a> 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 &#8211; leeres &#8211; Verzeichnis, das ich auch wiederfinde.<\/p>\n<p>Auf dem neuen Server B muss nat\u00fcrlich 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.<\/p>\n<p>Im Idealfall habe ich bereits eine neue, leere MySQL Datenbank auf dem neuen Server erstellt und im Dumper konfiguriert.<\/p>\n<p>In diese Datenbank stelle ich nun die eben gesicherte DB von Server A wieder her.<\/p>\n<p>Falls es Fragen zum Handling des Backups und der Wiederherstellung mit Hilfe des Dumpers gibt, ist das <a title=\"Support-Forum des MySQLDumpers\" href=\"http:\/\/forum.mysqldumper.de\" target=\"_blank\">MSD Support-Forum<\/a> der richtige Platz, um nach Hilfe zu fragen.<\/p>\n<p>FTP Daten der Joomla-Seite und die Datenbank liegen jetzt also beide auf Server B. Aber etwas fehlt noch!<\/p>\n<p><strong>3. Konfiguration \u00e4ndern<\/strong><\/p>\n<p>In jeder Joomla-Installation gibt es im Hauptverzeichnis eine Datei, die <em>configuration.php<\/em> hei\u00dft. Diese Datei habe ich mit allen anderen aus Schritt Nr. 1 bereits auf den neuen Server B hochgeladen. Sie ist jedoch noch konfiguriert f\u00fcr den Server A. Einige Anpassungen muss man hier noch vornehmen.<\/p>\n<p>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\u00fcr sowas <a title=\"Notepad++\" href=\"http:\/\/notepadplusplus.org\/\" target=\"_blank\">Notepad++<\/a><\/p>\n<p>In der Datei gibt es die Variablen<br \/>\n<em>$host<\/em><br \/>\n<em>$user<\/em><br \/>\n<em>$db<\/em><br \/>\n<em>$password<\/em><br \/>\n<em>$log_path<\/em><br \/>\n<em>$tmp_path<\/em><br \/>\n<em>$sendmail<\/em><br \/>\nDiese enthalten Angaben zum alten Server A und m\u00fcssen entsprechend des neuen Servers B ge\u00e4ndert werden.<\/p>\n<p>Anschlie\u00dfend lade ich die Datei wieder per FTP auf Server B hoch und ersetze damit die dort vorhandene Datei.<\/p>\n<p>Jetzt kann man die Seite unter der neuen Domain auf Server B bereits aufrufen. Ein Schritt muss aber noch gemacht werden!<\/p>\n<p><strong>4. Berechtigungen setzen<\/strong><\/p>\n<p>Joomla ben\u00f6tigt auf einige Verzeichnisse Schreibrechte, um korrekt funktionieren zu k\u00f6nnen.<\/p>\n<p>Um rauszubekommen, welche Verzeichnisse das sind, geht man im Administrator-Backend von Joomla \u00fcber das Men\u00fc <em>Site \/ Systeminformationen<\/em>. Hier gibt es einen Untereintrag <em>Verzeichnisrechte<\/em>. Alle hier aufgelisteten Verzeichnisse sollten per FPT die CHMOD Rechte 777 bekommen.<\/p>\n<p>Das ist der Weg zu dieser Auflistung ab der Joomla-Version 1.6, in der Version 1.5 war der Weg <em>Hilfe \/ Systeminfo \/ Verzeichnisrechte<\/em>.<\/p>\n<p>Die Datei <em>configuration.php<\/em> (siehe Schritt Nr. 3) muss auch beschreibbar sein, damit \u00c4nderungen an der Konfiguration \u00fcber die Weboberfl\u00e4che gespeichert werden k\u00f6nnen.<\/p>\n<p>Das war&#8217;s im Grunde. Die Seite l\u00e4uft jetzt auch auf Server B.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 &hellip; <a href=\"http:\/\/kochsiek.org\/blog\/2011\/10\/04\/mit-joomla-webseite-auf-einen-anderen-server-umziehen\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[935,1586],"tags":[1792,616,1791,1789,615,614,1402,1790],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"http:\/\/kochsiek.org\/blog\/wp-json\/wp\/v2\/posts\/3697"}],"collection":[{"href":"http:\/\/kochsiek.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/kochsiek.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/kochsiek.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/kochsiek.org\/blog\/wp-json\/wp\/v2\/comments?post=3697"}],"version-history":[{"count":11,"href":"http:\/\/kochsiek.org\/blog\/wp-json\/wp\/v2\/posts\/3697\/revisions"}],"predecessor-version":[{"id":3709,"href":"http:\/\/kochsiek.org\/blog\/wp-json\/wp\/v2\/posts\/3697\/revisions\/3709"}],"wp:attachment":[{"href":"http:\/\/kochsiek.org\/blog\/wp-json\/wp\/v2\/media?parent=3697"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/kochsiek.org\/blog\/wp-json\/wp\/v2\/categories?post=3697"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/kochsiek.org\/blog\/wp-json\/wp\/v2\/tags?post=3697"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}