Multisite mit Drupal aufsetzen

Was ist überhaupt eine Multisite? Dafür müssen wir kurz den Aufbau einer Drupalseite anschauen:

  1. Es gibt Code. Dazu gehört Drupal Core, die Themes, die Module und die Dateien. Diese Dateien sind für alle Drupalsites identisch.
  2. Es gibt die Datenbank. Dort sind die ganzen Informationen bezüglich Inhalt und Konfiguration drin. Diese Daten sind für jede Drupalsite unterschiedlich.

Wenn eine Seite aktualisiert wird, dann werden dazu die neuen Dateien auf den Server geladen und dann auf der Drupalsite update.php ausgeführt. Falls updates vorhanden sind, dann werden die entsprechenden Veränderungen an der Datenbank vorgenommen. Hat man also 3 Drupalsites und führt diese eigenständig, dann hat man eine grosse Redundanz, denn die Codebasis ist überall vollkommen identisch. Daher die Multisite:
Viele Drupalsites greifen auf die gleiche Codebasis zurück, haben jedoch jede eine eigene Datenbank und ein eigenes Files Verzeichnis. Dadurch ist die Wartung einfacher.

Voraussetzungen für eine Multisite
Damit eine Multisite überhaupt erst möglich ist, müssen gewisse Voraussetzungen vorhanden sein:

  • Es muss möglich sein, mehrere Domains auf das gleiche Verzeichnis zeigen zu lassen. Das heisst: www.site1.ch und www.site2.ch zeigen auf die gleichen Dateien. Das kann z.B. über VirtualHosts gelöst werden. Eine Weiterleitung reicht nicht aus! Nicht alle Hoster bieten diese Möglichkeit an. Bei Hostorama musste ich explizit nachfragen, danach hatte ich jedoch die Option 🙂
  • Das ist es dann eigentlich auch schon.

Multisite installieren

  1. Vor dem Installieren sind ein paar kleine Schritte notwendig:
  2. Den Ordner sites/site1.ch erstellen
  3. Den Ordner sites/site1.ch/files erstellen
  4. im Ordner sites/default gibt es ein File (default.settings.php), dieses in den Ordner sites/sites1.ch kopieren und in settings.php umbenennen.
  5. site1.ch besuchen und Drupal installieren.
  6. Auf site1.ch, unter settings > filesystem den Pfad entsprechend einstellen, so dass er nicht mehr auf default… zeigt sondern auf sites/site1.ch/files zeigt.
  7. Für die zweite Seite (und jede weitere) kann jetzt genau gleich vorgegangen werden.

Spezialitäten einer Multisite
Eine Multisite hat einige kleine Spezialitäten:

  • Module, welche unter sites/all/modules sind, sind für alle Sites sichtbar. Das heisst, hier kommen die Module hin, welche für alle Sites verwendet werden. Analog dazu sites/all/themes
  • Module und Themes aus sites/site1.ch/modules sind ausschliesslich für die site1 sichtbar
  • Beim update zu beachten!!! Auf jeder Site der Multisite MUSS update.php ausgeführt werden, ansonsten kann es unter Umständen manchmal zu kuriosen Fehlermeldungen kommen.

That's it. Ist eigentlich also trivial, vorausgesetzt, eine Multisite ist überhaupt möglich.