WordPress Multisite

Problemstellung

Ich habe bereits eine WordPress-Installation bei meinem Provider laufen.
Jetzt habe ich mir eine zweite Domain gesichert und möchte natürlich nicht zwei WordPress-Installationen parallel betreiben.

Was kann ich tun?

WordPress Multisite

WordPress Multisite (oder auch WordPress Multi User oder vormals WPMU) bietet sich hier als Lösung an.
Mittels WordPress Multisite kann man mehrere WordPress Blogs (mit unterschiedlichen Themes und verschiedenen Plugins) auf einer WordPress Installation betreiben.

Wozu WordPress Multisite?

Der Vorteil liegt auf der Hand:

  • Aktualisierung (und die sind ja bei WordPress und vielen Plugins recht häufig) werden zentral erledigt und nicht pro Blog – das reduziert den Administrationsaufwand, besonders bei vielen separaten Blogs
  • Plugin-Installation muss ebenfalls nur einmal für alle Blogs gemacht werden.

Der Nachteil (ja, auch den gibt es):

  • die vorhandene „Single“-Installation muss auf WordPress Multisite umgestellt werden

Da ich bei der nächsten Umstellung nicht selbst wieder an bestimmten Stellen auf dem Schlauch stehen möchte, schreibe ich mir hier selbst ein Tutorial dazu:

Tutorial

wp-config.php Umstellen
Zuerst öffnest du im wordpress-Hauptverzeichnis auf dem Server die Datei wp-config.php.
Dort trägst du die folgende Zeile ein:
define('WP_ALLOW_MULTISITE', true);

natürlich vor der Zeile:
/* That's all, stop editing! Happy blogging. */

Im Administrations-Backend

siehst du jetzt den Menüpunkt „Werkzeuge > Netzwerk-Einrichtung“.
Bevor du dich direkt darauf stürzt, solltest du erstmal alle Plugins deaktivieren.
Wenn es dir so geht wie mir, hast du bereits jede Menge deaktivierter Plugins in deinem Blog rumliegen. Bevor du also die aktiven Plugins deaktivierst, solltest du die bereits deaktivierten Plugins löschen.
Sonst weißt du nachher (beim Aktivieren) nicht mehr welche Plugins du eigentlich benutzt hast.
Du kannst dir aber natürlich auch eine Liste der aktiven Plugins machen.

Unter „Werkzeuge > Netzwerk-Einrichtung“

erscheint der Hinweis:

„Bei der Installation eines Blog-Netzwerks das Unterverzeichnisse benutzt, muss für das Hauptblog eine andere Permalinkstruktur genutzt werden. Dadurch werden die bisher genutzten Permalinks nicht mehr funktionieren!“

Das ignorieren wir einfach mal 🙂
Wir wollen ja keine verschiedenen Blogs in Unterverzeichnissen betreiben, sondern verschiedene Domains (d.h. www.erstedomain.de und www.zweitedomain.de) über eine WordPress-Installation laufen lassen.

In der Maske kannst du nun einen „Haupt“-Namen für alles deine Blogs vergeben. Ich nenne es dann so geistreich wie z.B.: „Alle meine Blogs“.

Danach auf „Jetzt installieren“ klicken.

Den angegebenen Anweisungen folgen
die da wären:

  • Das Verzeichnis blogs.dir auf dem Server unter dem Verzeichnis wp-content/ anlegen (muss für den Webserver-User beschreibbar sein!)
  • Die Datei .htaccess im Hauptverzeichnis deiner WordPress-Installation nach den Vorgaben anpassen
  • wp-config.php mit den angegebenen Zeilen erweitern

Den Eintrag
define('WP_ALLOW_MULTISITE', true);
kannst du danach aus der Datei wp-config.php wieder entfernen.

Um Probleme mit dem Login zu umgehen, müssen die Cookies entsprechend der Domain gesetzt werden (auch wenn du Subdomains benutzt).
Daher füge ich noch folgende Zeile in die wp-config.php ein:

define('COOKIE_DOMAIN', $_SERVER['SERVER_NAME']);

Neu anmelden

Du meldest dich jetzt neu an deinem „Hauptblog“ mit dem Administrator-Account an (www.erstedomain.de).
Rechts oben (Klick auf den Loginnamen) erscheint im Dropdown-Menü der Punkt „Netzwerkadministrator“. Anklicken!

Du bist jetzt im Netzwerk-Admin-Bereich.

Zweites Blog mit neuer Url erstellen

Im Netzwerk-Admin-Bereich wählst du „Blog erstellen“.
Dort wird jetzt bei Domain einfach angegeben: „zweitedomain“ .www.erstedomain.de
Keine Sorge, das ist offensichtlich nicht die richtige Domain, aber das korrigieren wir sofort.
Der Rest „Blogtitel“ und „Administrator Email“ sollte schon ordnungsgemäß angegeben werden.

Dann direkt unter „Alle Blogs“ (links unter „Blogs“) das neue Blog „Bearbeiten“ und nun die korrekte komplette Domain eingeben, z.B.: www.zweitedomain.de

(Warum das nicht auf Anhieb geht, ist mir schleierhaft)

Den Pfad auf „/“ lassen und „siteurl und home ebenfalls aktualisieren“ angetickt lassen.

Danach im Reiter „Benutzer“ auch den Primär-Admin-Nutzer von www.erstedomain.dezum zweiten Blog hinzufügen oder einen eigenen Administrator anlegen.

Natürlich muss in der Web-Konfiguration die Domain www.zweitedomain.de auf das gleiche Server-Verzeichnis wie bei www.erstedomain.de gesetzt werden (und alle weitere Domains auch).
Auf die Serverkonfiguration gehe ich hier nicht näher ein. Das geht meistens sehr schön über die Verwaltungsoberfläche des Providers.

Schwups, und schon ist das neue Blog unter www.zweitedomain.de vorhanden und du musst trotzdem nur eine WordPress-Installation verwalten.

Nicht vergessen, im ersten Blog schnell wieder alle Plugins aktivieren!

Pitfalls

Wie immer gibt es einige Punkte, die bei mir regelmäßig schief gehen oder an die ich einfach nicht denke. Hier meine Liste

favicon.ico oder robots.txt
Viele Themes setzen per Default ein Favicon unter /favion.ico voraus.
Das ist in einer Multisite-Installation natürlich schlecht, denn dieses Datei gibt es für alle Domains nur einmal (liegt ja schließlich alles in einem Installationsverzeichnis).

Das Gleiche gilt für robots.txt. Auch diese Datei wird standardmäßig unter www.erstedomain.de/robots.txt (und www.zweitedomain.de/robots.txt) vorausgesetzt.
Auf der anderen Seite bin ich häufig bei der robots.txt sehr froh, dass ich für alle Installationen das gleiche File habe. Denn z.B. schließe ich immer das Impressum aus, mit:

Disallow: /impressum

Da alle Blogs den gleichen Pfad nutzen, habe ich das also gleich für alle Blogs konfiguriert.

Um aber verschiedene Dateien pro Domain nutzen zu können, trägt man in der .htaccess im Root-Installationsverzeichnis einfach Folgendes ein:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.zweitedomain\.de
RewriteRule ^robots\.txt$ /robots_zweitedomain.txt [L]

oder

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.zweitedomain\.de
RewriteRule ^favicon\.ico$ /favicon_zweitedomain.ico [L]

Sitemap
Ich habe bisher in einem Einzel-Blog immer das WordPress-Plugin „Google XML-Sitemap“ genutzt.
Dieses Plugin ist leider nicht Multisite-kompatibel.
Ich nutze statt dessen in der WordPress-Multisite-Installation Better WordPress Google XML Sitemaps

Caching
Mit dem WordPress Total Cache Plugin hatte ich einige Probleme. Ehrlich gesagt war es mir auch zu kompliziert. Das Quick Cache-Plugin hilft hier weiter. Einfach für das Hauptblog aktivieren (und dort konfigurieren). Funktioniert sofort und anstandslos auf allen anderen Network-Blogs.

Backup
Ich benutze als DB-Backup-Plugin WP-DBManager. Dies musst du auch im Multisite-Setup nur für dein „Haupt“-Blog konfigurieren. Das Datenbank-Backup wird für die komplette Datenbank und damit für alle Blogs auf einen Schlag erstellt. Sehr praktisch.

Bist du noch über Stolperstricke gestolpert?
Ich freue mich über einen Kommentar!

25 Kommentare zu „WordPress Multisite“

  1. Hallo,
    vielen Dank für Dein Tutorial, hat sehr geholfen.
    Ich musste allerdings nach dem Stem „Neu anmelden“ abbrechen, da ich meinen Blog noch ins Hauptverzeichnis schieben will – und hier fangen meine Probleme an…

    Ich habe WP neu installiert und bin wie gesagt bis zum Schritt „Neu anlegen“ bzw. der Neuanmeldung gekommen.

    Dann fiel mir ein, das ich das ganze ja nicht unter http://www.meinedomain.de/Wordpress/ haben will sondern direkt unter http://www.meinedomain.de.

    Bevor ich den Multipart installiert hatte konnte ich den Hauptverzeichnispart direkt unter den Einstellungen ändern um die Daten dann per FTP zu verschieben. jetzt finde ich jedoch keine Änderung/Einstellungsmöglichkeit mehr um dieses vorher anzugeben….

    Weisst Du evtl. weiter….? Wäre wirklich für jede Hilfe dankbar!

    Gruss
    Olli

    1. Hallo Olli,

      danke für deinen Kommentar.
      Ich nehme an hier hast du schon geschaut?
      In der Darstellung unter „Netzwerkadministration“ > Alle Blogs > ein Blog „bearbeiten“ kommt eine Maske mit der Domain und dem Pfad.
      Kann man aber leider nicht mehr bearbeiten.
      Im Notfall kannst du natürlich die DB-Tabelle _blogs „path“ selbst bearbeiten. Aber das habe ich nicht ausprobiert.
      Sorry. Halt uns doch bitte auf dem Laufenden wie es bei dir funktioniert hat.
      Vielen Dank
      Stefan

      1. Hallo Stefan,
        danke für die Antwort. Den Link habe ich mir noch nicht angeschaut, das mache ich gleich mal.
        Wo finde ich den die DB-Tabelle (was ist das?)

        Gruss
        Olli

        1. In der Datenbank von WordPress gibt es eine Tabelle mit den Daten.
          Kann man sich z.b. mit PhpMyAdmin anschauen.
          Aber keine Sorge, wenn du nicht weißt wovon ich rede, dann brauchst du da nicht weiter zu schauen 🙂

          1. Jetzt hatter’s…
            die Lösung war eigentlich total simpel – aber kommen muss man erst mal drauf…

            Der Fehler das die neuen Blogs nicht mit den zugewiesenen Themes arbeiteten lag darin, dass man
            unter Netzwerk-Admin / BLOGS / meinblog / Einstellungen jeweils noch zweimal das Theme eingeben muss… thats it.

            Nü geht’s…

  2. …da isser wieder 🙂

    Jetzt habe ich wieder ein Problem und ich dachte vielleicht weisst Du einen Rat…

    Hallo Stefan,
    nachdem ich erfolgreich meinen Multiblog installiert habe, habe ich nun das Problem das das unter meiner hauptdoamin aktivierte – und freigegebene Theme keine Seiten findet. heisst: Ich erstelle eine neue Seite, gehe dann ins Frontend und es erscheint die Fehlermeldung „not Found“….

    Die Hauptdomain ist auf dem Server ja auch unter dem Hauptverzeichnis installiert also unter „/“ … Im Backend zeigt er mir aber „meinedomain.de/meinedomain/seitenname“ …

    Gehe ich ins Frontend zeigt er „meinedomain.de/meinedomain/“ … und dann die Fehlermeldung.

    Kannst Du mir weiterhelfen?

    Gruss
    Olli

    1. … noch mal…

      gebe ich die Hauptdomain ein „meinedomain.de/“ erscheint das Theme bzw. die Startseite….

      weiß nicht woran das liegt…

      1. … sorry, nochmal nachgetragen:

        Es läuft auf allen Multiblogs nicht wenn ich eine neue Seite einrichten will bzw. das gemacht habe erscheint überall „Seite nicht gefunden“ … die Hauptseite ist aber bei allen zu sehen ..

        RATLOS ????

  3. Eieiei …
    Meistens hilft es in das „Permalink“-Menü zu gehen und einfach nochmal zu speichern (das sollte ich vielleicht oben noch mit aufnehmen).
    Ansonsten sollten natürlich überall bei den Blogeinstellungen (Netzwerkadministration / Alle Blogs) der Pfad auf „/“ stehen.
    Wenn du dein „Initial“-Blog vorher unter einem anderen Pfad als „/“ betrieben hast, musst du natürlich ebenfalls „umziehen“ oder trägst wieder den ursprünglichen Pfad ein.
    Du kannst mir auch gerne (Email im Impressum) die Blogadresse schicken, dann schaue ich mal nach.

  4. hello,
    also das mit den Permalinks überprüfen war schon ein guter Ansatz … da liegt das Problem. Man muss wirklich in – JEDEM EINZELNEN BLOG den man angelegt hat – die Einstellungen auf STADNDARD zurücksetzen. Erst dann werden auch die Seiten angezeigt….

    Soweit so gut. Aber… jetzt sind natürlich die „verhassten“ Page-IDs zu sehen – also http://www.meinedomain.de/?page_id=12 … das nich‘ schön 🙁

    Also habe ich nach PlugIns geschaut und bin auf http://urbangiraffe.com/plugins/advanced-permalinks/ aufmerksm geworden… doch ich kenne das nicht und bevor ich alles „zerschiesse“ die Frage an Dich: Kennst Du das? Macht das Sinn? Gibs was besseres? Oder sollte man damit leben wie es ist?

    Fragen über Fragen…. 🙂
    Warum müssen die das alles immer so schwer machen???

    Gruss
    Olli

    1. Hallo Olli,

      uh, ich meinte nicht die Permalinks auf „Standard“ zurücksetzen. Es sollte einfach reichen, die Permalinks-Maske zu öffnen und mit den bestehenden Einstellungen einfach erneut speichern.
      Welche Permalinks hattest du denn vorher? Die musst du einfach nur wieder konfigurieren und dann speichern.
      Die IDs sind nicht schön, aber unter Permalinks kannst du z.B. unter „Benutzerdefiniert“ angeben: /%year%/%postname%/ o.ä.
      Am besten natürlich das was da vorher auch stand, denn bei einer internen Verlinkung aus den Blogartikeln hast du sonst fehlerhafte Verweise (die werden schließlich nicht mit verändert).

  5. Hallo Stefan,
    die Permalinks waren in allen Themes bzw. in den Einstellungen unterschiedlich gesetzt (von der installation aus) Ich hatte vorab vers. Möglichkeiten durchprobiert, u.a. auch /%year%/%postname%/ das hat alles nicht funktioniert. Ich hatte immer wieder dann die Fehlerausgabe „Seite nicht gefunden. Nur halt bei der Standardeinstellung nicht.

    Aber das war jetzt auch nicht so schlimm, schlimmer dafür – und jetzt kommt wieder das nächste Problem (ES HÖRT NICHT AUF … ARG… 🙁 …)

    Ich kann auf meinem Hauptheme nicht mitwpshopgermany arbeiten (welches ich schon gekauft hatte) da dieses nicht Multifähig ist.

    Jetzt habe ich den ganzen Nachmittag nach Alternativen gesucht aber nichts wirklich vergleichbares zu wpshop germany gefunden. Annähernd kam „e-Commerce“ ran, aber die editionsmöglichkeiten (Anpassung sind zu gering.

    Tja und jetzt, überlege ich ernsthaft vom Multiblog abzusehen – so schön es auch sein mag. Es will halt nicht so richtig. Und ich werde wohl „zurückfahren“ einen Hauptblog für die Hauptdomain einrichten und die beispielthemes dann jeweils als einzelnen Blog (bzw. WP-Installation) mit Ziel der Subdomain einrichten….

    Das kostet nur alles wieder Zeit… mann, mann, mann… warum muss das immer alles so umständlich sein…

    Gruss
    Olli

  6. Tut mir leid zu hören, Olli.
    Es gibt natürlich immer einige Plugins (z.B. Sitemap-XML) die nicht mit Multisite zusammenarbeiten.
    Mich wundert allerdings schon, dass ein normales e-Commerce-Plugin nicht funktioniert.

    1. tja, ich habe auch gedacht das das wpshopgermany funktioniert – das macht es ja auch, nur halt nicht im multiblog. aber wie gesagt es gibt andere shop-plugins, nur sind die halt nicht so komfortabel.
      du weisst sonst auch keine lösung…?

      Ich zerbrech mir das hirn, denn eigentlich ist dieser multiblog eine gute lösung.

    1. ja, das habe ich auch gestern erst gesehen. Habe schon nachgefragt warum das so ist, antwort war ist nicht geplant momentan, dann müßten die wieder viel anpassen.

      ich schaue morgen nochmal ob ich etwas anderes – vergleichbares finde, ansonsten werde ich alles zurücksetzen und neu anfangen. eine hauptdomain und für die themes entweder subdomains und wp-einzelinstallationen oder auch eine zweite hauptdomain und dann darauf einen multiblog mit den themes dann wird halt von erster zu zweiter domain verlinkt.

      sag mal machst du eigentlich beruflich was mit wp oder nur so nebenbei? wie fit bist du in wp?

      vielleicht schreibst du mal an meine email…

  7. Hallo,

    Ich habe das Problem, dass ich keine neuen Blogs anlegen kann.
    Zwar erhalte ich die Registrierungs-Email und sehe den Blog unter „Sites“, aber bei „Status“ steht ein rotes „x“ und ich kann weder das Dashboard noch die Blogseite erreichen. o.O
    Ich fummele nun schon seit einer Woche rum an dem Zeug, das geht nicht… kann mir wer helfen?

  8. hallo,

    hoffe du schaust hier noch rein 🙂

    das installieren hat geklappt, wp-config und htaccess sind bearbeit.

    Nach dem Neuanmelden taucht jedoch der Punkt “Netzwerkadministrator” leider nicht auf 🙁

    Könnte es daran liegen, dass ich bei der damaligen Installation von WordPress einen neuen Admin erstellt und den Standartadmin gelöscht habe?

    MfG tobi

    1. Natürlich schaue ich hier rein 😉

      Am geänderten „Admin“-User sollte es nicht liegen, das habe ich auch so gemacht.

      In der aktuellen Version erscheint, glaube ich, nur in der oberen Admin-Leiste unter „Meine Seiten“ der Menüpunkt „Netzwerkverwaltung“.
      Hast du da mal geschaut?

      Viel Glück

  9. Moin,

    beschäftige mich auch gerade mit der Frage ob ich meine div. WP-Installationen nicht zusammenlege soll. Bei einer Testinstallation ist mir aber aufgefallen, das ich Plugins nur noch komplett für alle Seiten freigeben kann (oder eben nicht), nicht mehr selektiv bestimmte aus einem vorhandenen Grundset auf bestimmten Sites an- oder abwählen kann. Richtig? Das wäre für mich ein NoGo.

    Gruß Stefan

  10. gleich wieder canceln … hab’s gefunden. Ich hatte »Network Activate« in dem Glauben ausgewählt, das es das braucht um die Plugins für die Seiten grundsätzlich verfügbar zu machen (#fail). Lässt man die Netzwerkaktivierung sein, sind die Plugins selektiv anzuschalten.

    1. Genau „Network Activate“ aktiviert das Plugin für alle. Wenn du das nicht machst, dann kannst du auf jeder Seite einzeln die Plugins aktivieren.
      Du musst aber aufpassen, dass das Löschen nicht immer nur erscheint, wenn das Plugin auf allen Seiten deaktiviert ist.

  11. Pingback: WordPress | BLOG

Kommentarfunktion geschlossen.

WordPress Cookie Plugin von Real Cookie Banner