Tipps & Tricks, Alltagsthemen und Webentwicklung

WordPress – Multi-Subdomains installieren

Mein Tatendrang kannte heute keine Grenzen und da habe ich mir einfach mal die Zeit genommen mich dem Thema Multi-Subdomains unter WordPress zu widmen.

Auf der Seite von Open Sourced Brain habe ich den Artikel Multi-(Sub)Domain-WordPress gefunden, der sich genau mit diesem Thema beschäftigt. Er beschreibt dort eine recht interessante Methode mehrere Blogs auf unterschiedlichen Subdomains oder sogar auf verschiedenen Domains mittels einem WordPress-Interface zu verwalten. Ich habe die dort beschriebene 1. Variante gleich einmal für meinen aktuellen Blog und zwei internen Testblogs umgesetzt und beschreibe hier nun kurz meine Erfahrungen zu dem Thema Multi-Subdomains unter WordPress.

Herausforderung

Die Herausforderung bei der Umstellung bestand darin, meinen bestehenden Blog (blog.brandt-net.de) nicht zu “zerstören”.

Deshalb habe ich rein zum Test erst einmal eine komplette parallele Installation zu meinen aktuellen Blog durchgeführt. Dies ist für eine Umstellung eines bestehenden Blogs natürlich nicht zwingend notwendig.

Testinstallation

A) Zuerst habe ich dafür eine neue Instanz von WordPress 2.0.5 in deutsch heruntergeladen und diese vor dem hochladen auf den Server als “Multi-Blog” konfiguriert (siehe unten 1. Anpassen der wp-config.php). Danach die WP-Dateien auf dem Server in ein neues Verzeichnis kopiert. Die Konfiguration der Subdomain muss dann auf dieses Verzeichnis zeigen.
Beispiel: blogtest.brandt-net.de ==> /blogtest
Danach wird durch den Aufruf der Subdomain die normale Installation von WP durchlaufen!

B) Als zweites habe ich dann für einen Testblog eine weiter Subdomain konfiguriert. Diese Subdomain muss auf das gleiche Verzeichnis der WordPress Installation verweisen!
Beispiel: wptest1.brandt-net.de ==> /blogtest
Danach wird durch den Aufruf der 2. Subdomain (wptest1.brandt-net.de) erneut die normale Installation von WP durchlaufen! Im Hintergrund werden dann aber neue Tabellen für den Blog angelegt (konfiguriert vorher in der Datei wp-config.php).

C) So kann man nun viele weiter Blogs für Subdomains anlegen. ich habe dies noch einmal für einen weiteren Testblog durchgeführt. Also erneut für einen Testblog eine weiter Subdomain konfiguriert. Diese Subdomain muss wiederum auf das gleiche Verzeichnis der WordPress Installation verweisen!
Beispiel: wptest2.brandt-net.de ==> /blogtest
Danach wird durch den Aufruf der 3. Subdomain (wptest2.brandt-net.de) erneut die normale Installation von WP durchlaufen! Im Hintergrund werden erneut neue Tabellen für den Blog angelegt.

Umstellung meines Live Blogs “Brandt Aktuell”

Da die Testinstallation erfolgreich durchlaufen wurde habe ich mich danach an meinen bestehenden Blog gewagt. Zuerst muss natürlich das komplette Blog WP-Verzeichnis und die komplette aktuelle WP-Datenbank einem Backup unterzogen werden – man weis ja nie :-) .

Nachdem das Backup erfolgreich durchgeführt wurde habe ich mich an die Arbeit gemacht, die ich hier nun in den einzelnen Schritten beschreibe:

1. Anpassen der wp-config.php

In der Konfigurationsdatei von WordPress habe ich die original variable $table_prefix auskommentiert und die Zeilen 4-6 hinzugefügt. Dies entspricht der Variante 1: eine Domain, multiple Subdomains.

// You can have multiple installations in one database if you give each a unique prefix
//$table_prefix  = 'wp_';   // Only numbers, letters, and underscores please!
//table_prfix ersetzt um einen Multi Blog aufzusetzen!
$arrPrefix = explode( ".", $_SERVER["HTTP_HOST"] );
$table_prefix = $arrPrefix[0].'_';
$table_prefix = str_replace( “-”, “_”, $table_prefix );

2. Umbenennen der bestehenden WP-Tabellen

Da meine Blog den Subdomain Namen blog.brandt-net.de verwendet, müssen nun alle originalen WP-Tabellen umbenannt werden für die neue Struktur. Dies ist leider notwendig, da meine bisherigen WP-Tabellen den Prefix wp_ hatten aber mit der neuen Struktur blog_ heißen müssen! Das umbenennen der Tabellennamen habe ich direkt mit myPHPAdmin per Hand durchgeführt.

altesPrefix_WPTABELLENNAMEN ==> neuesPrefix_WPTABELLENNAMEN
Beispiel: wp_tabellen ==> blog_tabellen

3. Update einiger Tabelleninhalte auf die neuen Tabellennamen

Beim Umzug bereits vorhandener Blogs auf diese Multi-Domain-Variante müssen einige Tabelleninhalte, die auf alte Tabellennamen verweisen angepasst werden. Dazu habe ich folgende My-SQL Scripte verwendet:

UPDATE `neuesPrefix_options`
SET `option_name` = "neuesPrefix_user_roles"
WHERE `option_name` = "altesPrefix_user_roles"

UPDATE `neuesPrefix_usermeta`
SET `meta_key` = "neuesPrefix_user_level"
WHERE `meta_key` = "altesPrefix_user_level"

UPDATE `neuesPrefix_usermeta`
SET `meta_key` = "neuesPrefix_capabilities"
WHERE `meta_key` = "altesPrefix_capabilities"

Hinweis: Hat sich noch der Subdomainname geändert, muss noch in der Tabelle options der Eintrag siteurl auf den Namen der neuen URL geändert werden!

4. Test der Plugin Funktionalitäten

Nachdem nun die gröbste Arbeit nun schon erledig war, habe ich noch die Funktionalität der installierten WordPress Plugins getestet auf meinem Blog getestet – alles bestens.

5. Umbiegen der “Test” Subdomains auf das aktuelle Live WP-Verzeichnis

Somit war mein aktueller Blog schon umgestellt.
Nun habe ich noch schnell die vorher installierten Test-Blogs (wptest1.brandt-net.de und wptest2.brandt-net.de) auf das Verzeichnis der aktuellen WP-Instanz umgestellt.

Dazu muss nur die Subdomain Konfiguration auf das Verzeichnis des bestehenden Blogs (hier blog.brandt-net.de) umgebogen werden. So muss die Subdomain Konfiguration beim Provider aussehen:

blog.brandt-net.de ==> /wordpress
wptest1.brandt-net.de ==> /wordpress
wptest1.brandt-net.de ==> /wordpress

Mehr Anpassungen waren dabei nicht notwendig, da die Tabellen schon der Multi-Subdomain Struktur entsprachen. Das war es auch schon. Die Testinstallation von WordPress habe ich dann wieder gelöscht. Fertig.

Fazit

In nur einer Stunde hatte ich meinen kompletten Blog umgestellt und zwei weitere Blogs zum Testen konfiguriert. Alles läuft auf einem WP-Installations-verzeichnis. Plugins und Templates können somit gemeinsam genutzt werden. Die WordPress Tabellen mit den Beiträgen, Kommentaren und was sonst noch alles zu WordPress internen Verwaltung gehört, stehen getrennt für jeden einzelnen Blog zur Verfügung.

Diesen Artikel weiterempfehlen:

Dieser Beitrag wurde veröffentlicht am Sonntag, 3. Dezember 2006 unter der Kategorie: Artikel, Tipps & Tricks, WordPress. Hat Dir dieser Beitrag gefallen? Dann abonniere doch neue Beiträge per RSS Feed oder E-Mail, so wirst Du bequem über Neuigkeiten auf meinem Blog informiert.

Du kannst neue Kommentare zum Artikel per RSS 2.0 Kommentar-Feed abonieren, gerne auch einen eigenen Kommentar oder einen Trackback von Deiner eigenen Seite hinterlassen.
Du kannst auch mit Hilfe einer der Social Bookmarking Buttons diesen Beitrag mit anderen teilen.

Statistik: read: 11440 · today: 8 · last: 10. Februar 2012

5 Trackbacks und Pingbacks

  1. Trackback von Weblog Art-Webwerk am9. April 2007
  2. Pingback von Wartungsarbeiten - Bionic's blOg am22. August 2007
  3. Pingback von 6grad.de - ganz schön kalt… » Eigene Wege - Die Technik am21. September 2007
  4. Pingback von Ein Loblied auf freie Software » THL - Coach & Berater aus Dresden, Sachsen am3. Januar 2008
  5. Pingback von Mehrere Subdomains mit einer WP-Installation betreiben | funkygog Blog am4. Mai 2009

10 Kommentare (Hinterlasse einen Kommentar »)

  1. Michael

    Hallo,
    irgendwie habe ich das noch nicht so ganz begriffen…
    Ich möchte meinem bestehenden Blog 2 Subdomains (Sprachen: en/fr) zufügen. Also , 2 Subs eingerichtet en.domain.de und fr.domain.de, die jeweils auf den Ordner “en” und “fr” im Rootverzeichnis zeigen. Jetzt in jedem Verzeichnis WordPress installieren. Oops,ich hab nur eine DB zur Verfügung, also für jede WordPress Instanz ein anderes Prefix zB. en_ und fr_ , so , jetzt sitz ich da mit 3 Blogs und nun verliessen sie ihn…:-(
    Du erläuterst in deinem Bericht die Installation einer ersten “Testinstanz” als Multiblog, später sprichst du dann von den beiden neu installierten Blogs. Fragen über Fragen- deshalb wäre ich für ein detailliertes “Kochrezept” dankbar, falls das nicht zuviel Zeit absorbiert.
    Grüße Michael

  2. Stefan

    Hallo Michael,
    ich habe den Artikel heute noch einmal etwas überarbeitet und hoffe er ist nun etwas besser zu verstehen.

    So wie du dein Problem beschreibst ist es auch nicht richtig! Man benötigt für die hier beschriebene Variante von Multi-Subdomains unter WordPress nur ein WP-Verzeichnis z.B. /wordpress.

    Alle Subdomains verweisen dann in Ihrer Konfiguration auf dieses eine Verzeichnis von WordPress! Bei dir also:

    blog.domain.de ==> /wordpress
    en.domain.de ==> /wordpress
    fr.domain.de ==> /wordpress

    Im Hintergrund werden dann beim Aufruf der Subdomain durch WP neue Datenbanktabellen angelegt. Dadurch werden die Daten und die Konfiguration der einzelnen Blogs getrennt.

    Aber die Blogs benutzen weiter eine WP-Installation und somit auch die gleichen PlugIns und Themes, die für jeden Blog dann unterschiedlich eingebunden werden können!

    Das Problem das du wahrscheinlich mit deinem bestehenden Blog haben wirst ist das gleiche wie ich: Du musst die bestehenden Tabellen umbenennen damit Sie zur Struktur passen. Aber den Vorgang habe ich oben beschrieben. Sollte also machbar sein.

    Vielleicht ist für dich auch WordPress MU besser zu verwenden (http://mu.wordpress.org/)

  3. Michael

    Hallo Stefan,
    eine großes Dankeschön für deine detaillierte Anleitung. Sobald meine Site fertig ist, werde ich dein Posting verlinken.
    Danke und Grüße
    Michael

  4. Tomsn

    Hallo Stefan, wie schaut es aus wenn ein WordPress -Update ansteht? und wie sieht das mit den Permalink Strukturen aus?
    Ansonsten werd ich das auf jedenfall mal ausprobieren :-)

  5. Stefan

    Hallo Tomsn,

    bei den einzelnen WordPress-Updates entstehen keinerlei Probleme, da die Daten und evtl. Konfigurationen ja von der Präsentationsschicht getrennt sind.

    Wenn die DB bei den Updates geändert werden muss wird nach dem Anmelden an einen bestimmten Blog dies automatisch erkannt und die Updateprozedur von WordPress automatisch aufgerufen.

    Die Permalink Struktur Konfiguration ist ebenfalls getrennt konfiguriert und funktioniert immer einwandfrei.

  6. Simon

    Hallo Stefan,

    sorry für die blöde Frage, aber kann ich dann bei den Subdomains auch eigene Themes und Plugins verwenden. Du schreibst, dass sie gemeinsam genutzt werden können – müssen sie aber nicht, oder? Sprich: Ich habe dann verschiedene Themes im Verzeichnis liegen und suche mir für jede Subdomain das entsprechende aus?

    Schönen Dank für die Hilfe, Simon

  7. Stefan Brandt (Autor)

    @Simon: Genau richtig. Du kannst jeden Weblog seperat über das Adminmenu konfigurieren, da jeder Weblog seine eigene Datenbanktabellen hat.

  8. dirk

    Hm,
    eigentlich müsst es doch reichen, alle Pfade relativ zu halten und dann per PHP der aufrufenden Domain ein spezielles Theme und CSS (oder eine Variante davon) zuzuweisen, oder?

  9. Jan

    Dafür gibst doch das Multidomain Plugin das bis unter WP 3 prima funzt.

    • Stefan Brandt (Autor)

      Hallo Jan, als ich den Artikel ende 2006 geschrieben habe war das aber noch nicht so. Inzwischen kann man sicherich solch ein Blugin benutzen.

Schreibe einen Kommentar

Bitte benutzt nur eure Namen oder Nicknamen. Einträge mit Keywords oder offensichtliche Werbelinks werden als Spam markiert und gelöscht. Solltet ihr euren Kommentar nicht sofort sehen, so ist er wohl in der Spam-Sandbox gelandet. Ich werde ihn dann schnellst möglich bearbeiten.

no-nofollow Bewerte meinen Blog auf dem Blog-Verzeichnis bloggerei.de Web Development & Design Blogs - Blog Top Sites