Falls mal jemand fragt

IT-Blog und auch total anderes Zeug

WordPress Icon

WordPress-Multisite mit mehreren Domains und Plesk 11.5 einrichten

| 9 Kommentare

Um eine Multisite mit mehreren Domains zu erstellen sind zwei Schritte notwendig. Nehmen wir an das Ganze soll mit WordPress und Plesk 11.5 gelöst werden. Ich habe das für eines meiner neuen Projekte eingerichtet, da ich ungerne für beide Seiten eine eigene WordPress Installation vornehmen wollte.

Vorteile und Nachteile einer WordPress Multisite-Installation

Plugins und Themes müssen für alle Sites nur einmal installiert und konfiguriert werden. Für Themes können Child-Themes genutzt werden. Es können beliebig viele Seiten in einer einzigen WordPress-Installation angelegt werden. Da es sich um eine Installation handelt, wird natürlich auch nur eine Datenbank benötigt. Nachteil daran ist, dass sich diese Datenbank ordentlich aufblähen kann, je mehr Seiten benutzt werden. Ein weiterer Nachteil ist, dass wenn ein Benutzer gekapert wird, der auf allen Seiten existiert, dementsprechend die gesamte WordPress-Installation angreifbar ist.

Tutorial WordPress Multisite erstellen

Zuerst muss eine WordPress-Installation durchgeführt werden, sofern noch nicht vorhanden. Es ist erforderlich, dass diese Seite direkt auf das root verweist. Im vorliegenden Fall auf www.sfgame-tipps.de statt sfgame-tipps.de/wordpress. Wenn auch www. als Präfix für alle Sites verwenden werden soll, so sollte die WordPress-Konfiguration wie folgt aussehen:

WordPress Multisite Domain-Einstellungen

Um nun die Installation durchzuführen muss in der wp-config.php  define('WP_ALLOW_MULTISITE', true);  vor  /* That's all, stop editing! Happy blogging. */  eingefügt werden. Anschließend kann unter Werkzeuge > Netzwerk-Einrichtung die Multisite-Installation vorgenommen werden.

WordPress Multisite Netzwerk erstellen

Wichtig bei der Installation ist, dass eine Sub-Domain-Installation ausgewählt wird. Die Empfehlung, das www-Präfix vor der Installation zu entfernen, kann ignoriert werden. Ich finde es besser, wenn meine Seiten mit www. in meiner Browserzeile erscheinen. Die Empfehlung rührt daher, dass WordPress davon ausgeht, dass die Multisite mit Subdomains betrieben wird. Im folgenden Beispiel sieht man, wie das aussehen würde, aber das ist nicht der Fall, den ich hier behandeln möchte, da ich nur mit verschiedenen Toplevel-Domains arbeiten möchte.

WordPress Multisite Netzwerk erstellen

Anschließend werden zwei Felder mit Konfigurationstext angezeigt. Eins davon wird in die wp-config.php vor den vorhin benötigten Eintrag kopiert. Das zweite Feld gehört in die .htaccess-Datei. Die Meldung „Warnung! Wildcard DNS wurde eventuell nicht korrekt konfiguriert!“ kann ignoriert werden, sofern nur mit Top-Level-Domains gearbeitet werden soll. Nachdem dieser Schritt durchgeführt wurde, muss man sich erneut an der WordPress-Installation anmelden.

Um nun eine weitere Seite zu erstellen, kann man über den neuen Menüpunkt Meine Seiten > Netzwerkverwaltung > Seiten eine neue Seite hinzugefügt werden. Dazu klickt man auf Hinzufügen.

WordPress Multisite Seite erstellen

In diesem Dialog kann im Prinzip irgendwas eingetragen werden, denn die Einstellungen müssen später angepasst werden, wenn man mit zwei verschiedenen Domains arbeiten will. WICHTIG: Es muss die E-Mail-Adresse vom Admin-Account verwendet werden, sonst funktioniert es nicht!

WordPress Multisite Seite editieren

Anschließend wird beim Ändern der Seite der korrekte Domainname eingetragen. Hier können auch weitere Optionen eingestellt, beispielsweise welche Benutzer es geben soll oder welche Themes für diese Seite gelten sollen.

Domain bei Plesk 11.5 hinzufügen

Um eine weitere Domain bei einer Multisite-Installation zu nutzen, muss diese auf dem Webspace ebenfalls auf das WordPress-Installationsverzeichnis verweisen. Bei Plesk 11.5 kann unter den Hosting-Einstellungen der Domain über den Button „Neue Domain hinzufügen“ eine weitere Domain hinzugefügt werden (sofern eure Hosting-Einstellungen dies zulassen).

Plesk 11.5 Domain anlegen

Folgende Einstellungen habe ich hier vorgenommen:

  • Domainname: Der Name der Domain (Im gegebenen Fall kickerstar-tipps.de)
  • DNS-Serverkonfiguration: Unsere DNS-Einstellungen verwenden (empfohlen)
  • Hostingtyp: Website-Hosting
  • Dokumentenstamm: Hier muss der Pfad zur ursprünglichen Installation eingefügt werden. Z.B. /httpdocs/wordpress1/
  • Bevorzugte Domain: Keine

Domain mit und ohne www Präfix erreichbar machen

Es sind nun zwei funktionierende Domains eingerichtet. Allerdings kommt eine Fehlermeldung sobald die neu eingerichtete Seite ohne www Präfix aufgerufen wird. Um dies zu verhindern, muss die .htaccess-Datei nochmals angepasst werden. Die beiden folgenden Zeilen werden nach  RewriteBase / dort eingefügt.

Diese beiden Zeilen bewirken, dass ein Aufruf über domain.tld automatisch auf www.domain.tld redirected wird.

Der Übersicht halber nochmal die komplette Anpassung an der .htaccess, die durch die Multisite-Installation vorgenommen werden muss:

Anmeldung an allen Netzwerkseiten möglich machen

Damit der Login auch in allen Netzwerkseiten funktioniert, muss in der wp-config.php noch die COOKIE_DOMAIN auf einen leeren Wert gesetzt werden, da WordPress sonst folgende Meldung ausgibt:

Fehler: Cookies werden von deinem Browser blockiert oder nicht unterstützt. Um WordPress zu benutzen, musst du Cookies erlauben.

Um dies zu verhindern, wird  define('COOKIE_DOMAIN', '');  in der wp-config.php vor  /* That's all, stop editing! Happy blogging. */  eingefügt.

 

Autor: Florian

Als staatlich geprüfter Techniker für Computer- und Netzwerktechnik berichte ich auf fmjf.de sowohl über den alltäglichen Wahnsinn als IT-Admin, als auch über Apple, Wordpress und - wie im Slogan schon erwähnt - total anderes Zeug.

9 Kommentare

  1. Hallo Florian,

    ich wollte mich bei Dir für den Artikel bedanken. Alles Prima erklärt und somit auch leicht umsetzbar.

    Zu deinem Punkt „Domain mit und ohne www Präfix erreichbar machen“:
    Hatte in Plesk schon für alle Domains ohne www eingestellt, somit war dieser Punkt in Deinem Artikel für nicht mehr relevant.

    Grüße

  2. Danke für die Rückmeldung. 🙂

  3. Juhu!! Endlich mal ein richtiger Tipp mit define(‚COOKIE_DOMAIN‘, “);
    Ich war schon beinahe am Verzweifeln :-/

  4. Ähm mir ist gerade eine Frage eingefallen.

    Ich habe das ganze ja so umgesetzt wie du es hier erklärt hast. Nun stehe ich aber vor dem Problem, dass ich in dieses Netzwerk gerne noch eine Subdomain mit einbauen möchte.
    Ist das irgendwie möglich?

  5. „Die Webseite unter http://www.store.domain.com/ hat zu viele Umleitungen erzeugt.“

    – Die erstellten Domains im Netzwerk laufen alle mit www
    – Die Subdomain ist aber als http://store.domain.com eingerichtet
    – Das Backend von http://store.domain.com ist erreichbar

  6. Pingback: Neuinstallation vom Potheadz Network | wintux's Blog

  7. hm, wenn ich die Cookie-Domain leer definiere ( define(‚COOKIE_DOMAIN‘, “); ), kommt folgende Fehlermeldung:

    „The constant „COOKIE_DOMAIN“ is defined (probably in wp-config.php). Please remove or comment out that define() line.“

  8. Hey Florian,
    ich danke für den Hinweis, hab schon graue Haare bekommen!

    You made my day 😉

  9. Nach der beschriebenen Änderungen habe ich auch den Fehler bekommen. Ich konnte diesen nur lösen indem ich die sunrise.php angepasst habe. Das ist zwar keine optimale Lösung (bei einem Update der Datei gehen die Änderungen verloren), aber es funktioniert erstmal.

    Folgende Zeilen in der sunrise.php auskommentieren:
    if ( defined( ‚COOKIE_DOMAIN‘ ) ) {
    die( ‚The constant „COOKIE_DOMAIN“ is defined (probably in wp-config.php). Please remove or comment out that define() line.‘ );
    }

    und die Zeile
    define( ‚COOKIE_DOMAIN‘, $_SERVER[ ‚HTTP_HOST‘ ] );

    zudem in der wp-config.php statt
    define( ‚COOKIE_DOMAIN‘, “ );
    folgendes verwenden:
    define( ‚COOKIE_DOMAIN‘, $_SERVER[ ‚HTTP_HOST‘ ] );

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.