Drupal Multisite Installation - Grundlagen

Drupal hat eine hervorragende Eigenschaft auf kinderleichte Art und Weise mehrere Seiten innerhalb derselben Code Base zu verwalten. Eine Drupal Installation, verschiedene Seiten.

Eine Multisite Installation kann viele Vorteile haben. Möchte man zum Beispiel drei verschiedene Seiten betreiben, aber von seinen Usern nur eine Registrierung verlangen, kann man dies mit einer Multisite Installation durchführen. Auch die Wartung und Updates werden extrem erleichtert, denn alle Seiten basieren nicht auf identischen Code Bases, sondern auf derselben!

Zur Zeit befinde ich mich im Prozess, eine solche Multisite Installation einzurichten. Die Dokumentationen zu dem Thema sind leider alles andere als prickelnd. Deshalb hier einmal ganz einfach erklärt, wie man es angeht.

Angenommen ich habe zwei Seiten

  • allvintage.net
  • martinfrericks.de

und einen Webspace der mit diesen beiden Domains verknüpft ist. Ich erstelle mir also einen Ordner auf dem Webserver, in dem ich die Drupal Dateien speichere. Jetzt leite ich beide Domains auf diesen Ordner um. Bei Aufruf einer der Domains wird also das Drupal Installationsskript gestartet. Welche man hier nimmt ist egal. Für die Installation benötigt man noch eine MySQL Datenbank. Also einfach eine erstellen und für die Installation verwenden.

Also angenommen ich mach das ganze über allvintage.net. Im Installationsskript die Datenbankinfos eintippen und fertig. Die Informationen zur Seite (Seitenname, Administrator und den ganzen Kram) am besten erstmal allgemein halten. Dann wird man auf die fertige Startseite weitergeleitet und kann mit der Einrichtung anfangen.

Stattdessen gehen ich aber wieder auf den Webserver und schaue mir die Ordnerstruktur an: Im Drupal-Verzeichnis findet sich ein Ordner namens "sites". Dadrin sind in der Regel die Ordner "all" und "default". Hier lege ich jetzt eine Kopie des "default" Ordners an und benenne diesen um in "allvintage.net". Das ganze mache ich nochmal und benenne die zweite Kopie um in "martinfrericks.de". Ich habe im Ordner "sites" jetzt die Unterordner:

  • all
  • allvintage.net
  • default
  • martinfrericks.de

Da die beiden Seiten allvintage.net und martinfrericks.de ja durchaus unterschiedlich sein sollen, benötige ich für martinfrericks.de eine weitere Datenbank. Diese erstelle ich also bei meinem Webhost und gehe dann in den Ordner martinfrericks.de. Dort findet sich eine Datei settings.php die ich zur Bearbeitung öffne. Dort suche ich die Zeile "$db_url" wo folgender Code stehen sollte:

mysqli://benutzer:passwort@localhost/datenbankname

Ich ersetze benutzer, passwort und datenbankname durch die entsprechenden Werte (localhost ist in der Regel richtig und nur bei einigen Webhosts, wie 1und1 oder Strato ein anderer Wert) und speichere die Datei wieder. Dann gehe ich auf www.martinfrericks.de/install.php und nutze das Installationsskript um die neue Datenbank einzurichten.

Und das war's im Grunde auch schon... Drupal erkennt anhand der Domain die man verwendet, welchen Ordner er ansteuern soll um die richtige settings.php zu bekommen, also bei

  • allvintage.net ist das ~/sites/allvintage.net/settings.php, und bei
  • martinfrericks.de ist das ~/sites/martinfrericks.de/settings.php

Und jetzt beginnt die Magie der Multisite Installation. Normalerweise packt man ja alle Module und Themes in dem Ordner "all" in die Unterordner "modules" und "themes". Das kann man weiterhin machen, wenn man Module oder Themes hat, die für alle Seiten verfügbar sein sollen. Aber jetzt kann man auch in den Domainordnern die Unterordner "modules" und "themes" anlegen und auf diese Weise Module und Themes einbinden, die seitenspezifisch sind.

Was noch alles mit einer solchen Multisite Installation möglich ist, werd ich im nächsten Artikel behandeln.

Kommentare

Klingt interessant und nützlich, freu mich schon auf die Fortsetzung!