Archiv der Kategorie: multisite

WordPress Multisite und Plesk – eine Leidensgeschichte mit Problemlösungen

Die Multisite-Funktionalität von WordPress ist wirklich super.

Eine Installation, einmal Plugins und Themes warten und viele unabhängige Seiten damit aufziehen. Toll!

Dazu noch BuddyPress, wo jede Gruppe oder jeder Benutzer einen eigenen (Multisite) Blog bekommen kann. Wow! Das alles gratis und out of the box!

Doch dort wo viel Licht ist, gibt’s auch viel Schatten.

Und die Schatten werden bei einer Multisite-Installation mit Plesk immer länger, wenn man frisch ins Fahrwasser geworfen wird.

Hier also einige Lösungen:

Konnte keine Datenbankverbindung aufbauen – Datenbankfehler wegen Dateiberechtigungen

Datenkbankfehler! GRML! Wie kann das sein? WordPress funktioniert ja. Funktionierte ja vor der Multisite Installation.

Woran liegts?

Plesk hat die Dateiberechtigung der wp-config.php geändert und die WP-Installation kann nicht mehr auf die Datenbank-Login-Daten zugreifen:

Einfach die Dateiberechtigung ändern:

 

Das hat nicht geholfen? Dann helfen vielleicht folgende Tutorials:

404-Fehler mit nginx

Arr, da hat man es endlich geschafft, eine Multisiteumgebung zu installieren, der Hauptblog funktioniert und dann das: Beim Wechseln auf den nächsten Blog kommt es zum 404er!

Ein Blick in die Logs von Plesk helfen:

Das Problem ist schnell erkannt- nginx sucht in einem Verzeichnis, das es nicht gibt:

Das Verzeichnis kann es ja nicht geben, also nicht lokal auf der Festplatte! Hier handelt es sich nur um eine schöne URL, die von WordPress erstellt wird!

Lösung 1 – FPM von Apache bedienen

Diese Lösung ist recht einfach:

Man stellt also auf FPM-Anwednung von Apache bedienen um. Wird das von nginx bedient, ist Apache nicht involviert. Nginx kann aber erstmal nix mit den .htaccess-Regeln anfangen

Lösung 2 – Nginx korrekt konfigurieren

Der Lösungsweg dauert länger hat aber den Vorteil, dass man weiterhin nginx verwenden kann!

Plesk selbst bietet da ein gutes Tutorial an:

 

Grundsätzliche Infos

Plesk Tutorial zum Aufsetzen einer Multisite-Umgebung

https://support.plesk.com/hc/en-us/articles/115001016553-How-to-set-up-multisite-WordPress-network

 

Configuring Wildcard Subdomains for multi site under Plesk Control Panel

https://codex.wordpress.org/Configuring_Wildcard_Subdomains_for_multi_site_under_Plesk_Control_Panel

WordPress-Multisite – Eine komplette Übersicht + Meinungen dazu

Multisite-Umgebungen in WordPress eignen sich für viele Anwendungsfälle, zb für

  • Mehrsprachigkeit – wo jede Sprache eine eigene Multisite-Seite bekommt
  • Soziale Netzwerke, wo jede Gruppe oder Benutzer eine eigenen Blog bekommt
  • Kundenverwaltung, wo jeder Kunde eine eigene Multisite-Seite/Blog bekommt

 

Es gibt sehr viele Möglichkeiten, eine Multisite-Umgebung aufzusetzen und zu konfigurieren. Dazu hier ein paar Gedanken:

tl;dr

  • Subdomain-Installation bringt Aufwand mit DNS, Plesk (und eventuell nginx)

Cool Stuff

  • Jede Multisite kann eine eigene Domain haben
  • Bessere Strukturierung von Inhalten und Teilbereichen mit integrierter Rechteverwaltung
    • Wird eine Datenstruktur zb mit Meta-Feldern aufgebaut, bin ich immer im Post-Edit bereich und tu mir da schwer, andere Benutzer mit Rechten zu versehen. Vor allem wenn da Benutzer mit unterschiedlichen Berechtigungen behandelt werden müssen
  • Multisites für zb Kunden können öffentliche und private Bereiche haben – so können die Kunden Ihren Kunden oder Bekannten Zugang zu den öffentlichen Bereichen geben
  • Jeder Multisite für Kunden oder BuddyPress-Freunden kann von denen selbst verwaltet werden. Themes können gewechselt und weitere Benutzer verwaltet werden
  • Trennung von sensiblen und öffentlichen Daten
  • Medienverwaltung ist einfacher und getrennt!  Werden soziale Netzwerke ohne Multisite aufgezogen, so sehen alle User alle Medien

Ordnerstruktur oder Subdomains – SSL, Permalink und Verzeichnisprobleme aufgelöst

Vorab: nginx kann in beiden Fällen Probleme machen!

Soll die Multisite-Umgebung unter

  • zweiteseite.hauptdomain.com oder
  • hauptdomain.com/zweiteseite

erreichbar sein?

Eine Entscheidungshilfe soll nachfolgende Gegenüberstellung geben.

Multisite mit Ordnerstruktur

Bei der Ordnerstruktur sind die Multisites unter hauptdomain.com/zweiteseite oder hauptdomain.com/dritteseite erreichbar.

Vorteile

  • Kein Problem mit SSL-Zertifikaten wie let’s encrypt.
    • Weil auf die Hauptdomain eh ein SSL-Zertifikat ausgestellt wurde, gilt das für alle Teile einer URL, die darauf folgen.
    • hauptdomain.com/zweiteseite oder hauptdomain/blogs/dritteseite sind alle vom Zertifikat erfasst.
  • Kein Problem mit DNS & Domainkonfiguration am Server (zb Plesk)
    • Da für jeden weiteren Multisite-Blog keine Domain angelegt wird, muss ich am Server nichts konfigurieren. Ich brauch mich auch nicht um die DNS-Verwaltung kümmern.
    • Gerade DNS macht bei Hostern gerne Probleme.
  • URLS der Multisites können mit Permalinks leicht beeinflusst werden.
  • Schnellerer und besserer Workflow beim Erstellen einer weiteren Seite. Zb durch Kunden oder User. Ich muss mich dadurch nicht um Domain- oder DNS-Handling kümmern.
  • Weniger nginx-Probleme – da jede Unterseite nur über weiteres URL-Rewriting/Permalinks gelöst werden.

 

Nachteile

  • Permalinks könnten Probleme machen. Gleichlautende Seiten oder CPT-Posts könnten mit dem Slug/Namen der Multisite-Seite kollidieren.
    • Ein Beitrag mit dem Titel Essen und der URL meineseite.com/essen macht Probleme, wenn ich einen Multisite-Blog mit der URL meineseite.com/essen habe!
    • Lösung: Posts sollten sowieso immer einen nummerischen Permalink-Prefix haben, zb: /%post_id%/%postname%/

 

Multisite mit Subdomains

Vor und Nachteile der Ordnerstruktur-Konfiguration sind hier meist vice versa zu sehen. Zusätzlich:

  • Subdomains könnten als saubere Trennung gesehen werden
  • Domain könnte sehr lang werden!
    • Wird eine Multisite unter einer übergeordneten Subdomain betrieben, wird die URL sehr lange, komplex oder unschön.
    • Hauptseite ist unter subdomain.meinedomain.at erreichbar. Wird nun eine Multisite darunter eingerichtet, kommt es zu solchen URLS: multisiteblog.subdomain.meinedomain.at.
  • Wildcard-DNS-Eintrag wird benötigt.

 

Plesk

 

„/blog/“-Slug in URL entfernen

Man könnte sich an /blog/ in der Url stören. Das lässt sich aber ganz einfach beseitigen!

  • Im Netzwerkbereich (domain.at/wp-admin/network/site-settings.php?id=1) die Permalinkstruktur anpassen und das /blog/ wegnehmen:
    • Alt:
    • Neu:

 

Dafür gibt es natürlich auch ein Plugin:

https://wordpress.org/plugins/r3df-multisite-blog-slug-remover/

 

Erzwungene Subdomain-Installation doch noch als Unterverzeichnis-Installation durchführen

Da deine Installation nicht neu ist, müssen die Websites in deinem WordPress-Netzwerk Subdomains verwenden. Die Haupt-Website einer Installation in Unterverzeichnissen benötigt eine modifizierte Permalink-Struktur, die möglicherweise bestehende Links beeinträchtigt.

Das kennt man und ärgert sich darüber, oder?

Trotz komplett neuer Installation kommt also der Zwang, die Multisite nur als Subdomain-Installation durchzuführen!

Das Ziel wär aber folgendes:

 

Die Lösung?

  • Alle Artikel und Seiten löschen.
  • Eventuell auch: Permalinkstruktur auf schöne Urls ändern

Was mache ich mit WP_ALLOW_MULTISITE?

Bei der Installation bekommt man folgende Anweisungen:

 

In der Datei wp-config.php steht bereits der Eintrag

define( 'WP_ALLOW_MULTISITE', true );

und daher würde das dann so aussehen:

WP_ALLOW_MULTISITE brauche ich nur, um die Multisite-Installation überhaupt zu ermöglichen.

Wenn ich den vorgegebenen Block aus dem ersten Screenshot in die wp-config.php kopieren muss, kann ich WP_ALLOW_MULTISITE löschen oder überschreiben!

Siehe:

 

Domainmapping – Domains für die einzelnen Blogs aufschalten

Früher brauchte man ein Plugin, um extra Domains für die „Unterseiten“ zu verwenden.

Seit einiger Zeit ist diese Funktionalität aber im WordPress-Core enthalten:

https://codex.wordpress.org/WordPress_Multisite_Domain_Mapping

https://twitter.com/Rarst/status/897804897743253505