Stefan's Weblog Blog über alle möglichen Dinge rund um den Computer

6Mai/112

WordPress – Serverumzug einer WordPressinstallation mit Multisites

20110505_002

Was ist zu tun, wenn man seine WordPressinstallation von Server A auf Server B umziehen möchte?

Seit WordPress 3 unterstützt das System bekanntlich Multisites, d.h. man kann mehrere Seiten mit nur einer WordPressinstallation betreiben. Ein Umzug gestalltet sich hier ein bisschen umständlicher als mit nur einer einzigen WordPressinstallation.

Also wie geht man vor?

  1. Datensicherung
    • Die WordPressdaten im Verzeichnis /var/www oder bei einer Installation im Homverzeichnis des Useres /home/benutzername/public_html sind zu zu sichern
    • Ein Datenbankbackup ist zu erstellen, dazu benötigt man, Root-Rechte und den Namen der Datenbank. Auf der Konsole kann man dann mit dem Befehl
      mysqldump --opt -u root -p --datenbank > wordpress.sql

      Nach erfolgreichem Export ist die Datenbank im Home-Verzeichnis des Users zu finden. Die wordpress.sql kann dann auch gleichzeitig als Backup genutzt werden.

  2. Konfiguration des neuen Servers
    • Alle notwendigen Komponenten, wie Apache, MySQL-Server, PHP5 und phpMyAdmin, welches später für die Datenbankadministration notwendig sein wird, auf dem neuen Server installieren. Eine ausführliche Anleitung wie man die einzelnen Pakete installiert und konfiguriert findet man im :arrow: wiki.ubuntuusers.de
    • Bei der Konfiguration des neuen Servers ist zwingend darauf zu achten, dass das mod_rewrite Modul aktiviert wird. Sollte es fehlen, funktioniert der Multisite-Support nicht mehr.
      Auf der Konsole sind die folgenden zwei Befehle einzugeben
      sudo a2enmod rewrite

      Aktiviert das Modul

      sudo /etc/init.d/apache2 restart

      Startet den Apache neu

  3. Datenbank einspielen
    • Mit dem Webbrowser das MySQL-Administrationswerkzeug phpMyAdmin aufrufen. http://ip-adresse-des-servers/phpmyadmin und dort eine neue Datenbank anlegen. Der Name der Datenbank dann unbedingt merken, da dieser in die wp-config.php eingetragen werden muss.

      Je nach Größe der gesicherten Datenbank von alten Server, kann sie gleich über phpMyAdmin eingespielt werden

      Sollte während des Imports eine Fehlermeldung auftauchen, dass die Größe überschritten wurde, dann gibt es zwei Möglichkeiten doch noch die Datenbank auf den neuen Server zu spielen.

      1. Man kann die Datenbank in Häppchen über phpMyAdmin auf den neuen Server transportieren. Diese Methode ist aber zu umständlich und Fehleranfällig, deshalb ist sie nicht zu empfehlen.
      2. Über einen MySQL-Server Befehl kann man die Datenbank einspielen. Man muss nur zuvor die Sicherung der Datenbank, z.B. wordpress.sql, auf den neuen Server übertragen. Dann wechselt man auf die Konsole und gibt dort den Befehl ein
        mysql -u root -p datenbank < wordpress.sql


        Achtung: Die Datenbank muss bereits angelegt sein. Der Befehl erzeugt keine Neue. Deshalb wurde die Datenbank einen Schritt vorher via phpMyAdmin angelegt.
        Wechselt man nun auf die PHPMyAdmin-Oberfläche sollte die bisher leere Datenbank mit Werten gefüllt sein.

  4. Anpassen der alten Datenbank an die neuen Gegebenheiten

    Dieser Schritt kann übersprungen werden, wenn die Einstellungen des alten Servers identisch mit denen des neuen sind. Hat sich die IP-Adresse des Servers oder das Verzeichnis von WordPress geändert, dann muss die Tabelle manuell geändert werden. Hier die hoffentlich vollständige Liste, welche Einträge zu ändern sind.





  5. Nun alle WordPress-Dateien auf den neuen Server in das Apache-Verzeichnis kopieren, z.B. /var/www/wordpress
    • wp-config.php im Hauptverzeichnis von WordPress anpassen

      Zu prüfen sind die Informationen

      • DB_NAME = MySQL-Datenbank der neuen WordPressinstallation
      • DB_USER = User mit dem Recht die Datenbank der WordPressinstallation zu ändern
      • DB_PASSWORD = Passwort des DB_USER
      • DB_HOST = normalerweise bleibt der Eintrag localhost bestehen
  6. .htaccess
    • Das Einzige was als letzter Schritt noch übrig bleibt, eine .htaccess-Datei muss erzeugt werden. Dazu wechselt man auf dem neuen Server in das Installationsverzeichnis von WordPress, z.B. /var/www/wordpress.
    • Dort muss die neue .htaccess erstellt oder falls diese bereits vorhanden ist geändert werden.
    • Der Inhalt der Datei ist:
      RewriteEngine On
      RewriteBase /wordpress/
      RewriteRule ^index\.php$ - [L]
      
      # uploaded files
      RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
      
      # add a trailing slash to /wp-admin
      RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
      
      RewriteCond %{REQUEST_FILENAME} -f [OR]
      RewriteCond %{REQUEST_FILENAME} -d
      RewriteRule ^ - [L]
      RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
      RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
      RewriteRule . index.php [L]
      


      Es ist lediglich der Eintrag RewriteBase an die neue Umgebung anzupassen. Sollte z.B. WordPress im Home-Verzeichnis des Users liegen, dann würde der Eintrag so aussehen

      RewriteBase  /~benutzername/wordpress/

So, ich denke das war Alles. Sollte sich ein Fehler eingeschlichen haben, dann benachrichtigt mich bitte über das Kommentarfeld.

Update

Hat man Zugriff auf die Apache-Konfiguration, dann ist zwingend die Datei /etc/apache2/sites-enabled/000-default zu ändern.
Eine Anleitung gibt es im wiki.ubuntuusers.de
Der Eintrag

AllowOverride None

ist durch

AllowOverride FileInfo

zu ersetzen.

Tags: Multisite, Serverumzug, Umzug, Wordpress

hat dir dieser Artikel gefallen?

Dann abonniere doch diesen Blog per RSS Feed!

Kommentare (2) Trackbacks (0)
  1. Hallo Stefan!Hart dran der Hauptblock lebt mit neuem Namen, die Babys leider nein.Meine .htaccess ist deutlich dünner:RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ – [L]# uploaded filesRewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]RewriteCond %{REQUEST_FILENAME} -f [OR]RewriteCond %{REQUEST_FILENAME} -dRewriteRule ^ – [L]RewriteRule . index.php [L]So schaut sie ja auch auf dem Originalblognetzwerk aus.Ich verstehe leider nichts von diesen “Kürzeln”, soll ich einfach Deine Werte rüberkopieren?Wenn ja, was soll denn da nach RewriteBase / genau hin?ich habe vorangestellte Unterdomainnamen, also http://unterweb.hauptweb.basisdomain.comgeht das überhaupt,oder ist das eien Unterdomain zu viel?bitte um Deinen Rat,danke schön

  2. Hallo! Das ganze ist einfacher zu lösen, wenn man sich einen DUMP zieht und entpackt, so das notwendig ist und mit suchen und ersetzen des Lieblingseditors nach Pfad und Domain im SQL File die signifikanten Stellen korrigiert.Dann kann man das ganze – je nach Größe – entweder als Text importieren oder man ZIPt oder TARt es zum Import wieder.Gruß,Thomas


Leave a comment

Noch keine Trackbacks.

%d Bloggern gefällt das: