… weil’s leider nicht so trivial war, wie ich eigentlich gedacht hatte. Oder ich mich vielleicht auch einfach nur zu blöde angestellt hatte. Und vielleicht um jemand anderem meine div. Umwege zu ersparen:
WordPress Multisite
Bekanntermassen gibt es die Möglichkeit unter einer einzigen WordPress Instanz mehrere verschiedene Seiten zu betreiben. Das ist insbesondere dann hilfreich, wenn zum einen die Benutzerbasis auf den verschiedenen Seiten (weitgehend) identisch ist und auch die grundlegenden Funktionen der Unterseiten vergleichbar sind – Stichwort: vereinfachte Verwaltung von wiederkehrenden PlugIns (und auch Themes).
Die grundsätzliche Einrichtung einer Multisite ist bei wordpress.org sehr gut dokumentiert: https://codex.wordpress.org/Create_A_Network
Ich persönlich empfinde es als einfacher und logischer mit Subdomains in der Multisite zu arbeiten. Später, wenn das Projekt fertiggestellt wird, werden die Subdomains durch FQDNs ersetzt. Grundsätzlich geht das auch mit Subfoldern, aber wie gesagt: ich emfinde es andersherum als einfacher und logischer.
Uberspace Besonderheiten
uberspace.de bietet von Hause aus “nur” Speicherplatz mit Shellzugang (ja, sehr vereinfacht – das kann viel mehr 😉 ), aber – und darauf will ich bei dem “nur” hinaus – keine Domainverwaltung. Dafür sind die Konditionen – insbesondere wenn es um schnelle und einfache Entwicklungsprojekte geht – für die gebotenen Möglichkeiten ziemlich unschlagbar.
Der zur Verfügung gestellte Webspace wird über die Logik $benutzername.$servername.uberspace.de erreicht. Einzelne Projekte auf dieser Domain lassen sich in Unterordnern verwalten. Wenn es jedoch darum geht eine WordPress Multisite mit Subdomains darauf abzulegen, ist das aufgrund der vorgegebenen (und nicht erweiterbaren) Subdomainstruktur so nicht möglich.
Ausnahme: man nutzt einen Uberspace ausschliesslich für die Multisite, legt WordPress ins webroot und nutzt für Unterinstanzen die Subfolder-Lösung
Zum Glück gibt’s eine Alternative zu den Unterordnern und der generischen uberspace-Adresse. Dazu wird im webroot (/var/www/virtual/$benutzername) ein Ordner mit dem Domainnamen erzeugt und mit dem Inhalt der Webapplikation befüllt. In meinem konkreten Fall also: Upload des WordPress Ordners nach /var/www/virtual/$benutzername/wp und anschliessend die Umbenennung des Ordners auf den gewünschten Domainnamen – in unserem Beispiel /var/www/virtual/$benutzername/kundenprojekt.tld. Zusätzlich sind für die tatsächlichen Subdomains dann noch Symlinks zu erzeugen, die auf das eigentliche Projektverzeichnis zeigen:
ln -s kundenprojekt.tld firma1.kundenprojekt.tld ln -s kundenprojekt.tld firma2.kundenprojekt.tld …
Im weiteren Verlauf sind nach der Anleitung des uberspace-Wikis die Domains aufzunehmen. Wichtig: nicht nur die eigentliche Domain muss per uberspace-add-domain eingetragen werden, sondern auch die Subdomains! Oder – wenn man sich es etwas vereinfachen mag – auch einfach nur eine Wildcard für die Subdomains:
uberspace-add-domain -d *.kundenprojekt.tld -w
Zurück geliefert werden dann die notwendigen IPs für A- und AAAA-Record die in den DNS der Domainverwaltung eingetragen werden müssen.
Domainverwaltung bei Namecheap.com
In meinem Fall lagern die Domainnamen bei Namecheap.com. Neben der Angebotsbreite für so ziemlich alle gängigen und raren Top-Level Domains finde ich das Preis-/Leistungsverhältnis dort recht gut. In den Advanced DNS Einstellungen unserer Domain “kundenprojekt.tld” werden nun die IPv4 als A-Record und IPv6 als AAAA-Record wie folgt hinterlegt:
Type | Host | Value | TTL |
---|---|---|---|
A-Record | @ | IPv4 uberspace | automatic |
A-Record | kundenprojekt.tld | IPv4 uberspace | automatic |
AAAA-Record | @ | IPv6 uberspace | automatic |
AAAA-Record | kundenprojekt.tld | IPv6 uberspace | automatic |
CNAME Record | firma1 | kundenprojekt.tld | automatic |
CNAME Record | firma2 | kundenprojekt.tld | automatic |
zusätzlich muss je Subdomain noch ein entsprechender CNAME-Eintrag erzeugt werden!
Bei letzterem war ich ins Schleudern geraten, hatte mit A-Records, URL-Redirects etc. rumexperimentiert um am Ende immer wieder nur auf der Hauptseite meiner WordPress Multisite zu landen. Erst nach den CNAME Einträgen funktionierten alle Subdomains mit den eigenen WordPress Sites innerhalb der Multisite zuverlässig.
Unangehmer Nebeneffekt dabei: dadurch, dass die Namensauflösung für die Subdomains nicht korrekt funktionierte, konnte auch kein Lets-Encrypt Zertifikat dafür angefordert werden. Da im Laufe meiner Versuche das bislang gültige Cert auslief, lieferten alle übrigen Projekte die neben der Multisite auf dem Uberspace lagerten nun Fehler aus oder liessen sich – je nach Browser – gar nicht mehr aufrufen.
Fazit:
WordPress Multisite auf Uberspace ist möglich, bedarf aber ein, zwei Schritten mehr als ich das auf meinem bisherigen Shared Hosting, wo Webspace und Domainverwaltung aus einer Hand sind, gewohnt war.