Multisites mit Drupal
Hinter vielen Internetseiten und vor allem vielen Blogs stecken ja die unterschiedlichsten Content Managementsysteme, welche jeweils ihre spezifischen Vor- aber auch Nachteile haben.
Auf der Suche nach "meinem CMS" bin ich im Sommer letzten Jahres bei Drupal hängengeblieben, nach dem ich diverse CMS durchprobiert hatte (eine gute Adresse ist da opensourcecms.com).
Spezialisierte CMS erfüllen ihre Aufgabe sehr gut in ihrem jeweiligen Bereich, haben dadurch jedoch Defizite in anderen Bereichen. Zum Beispiel ist bekanntlich Wordpress die führende Weblog-Engine, für Multi-User-Sites aber eingeschränkt bis gar nicht zu gebrauchen.
Noch komplizierter wird es, wenn eine Forderung daraus besteht, mit einer Engine mehrere Internetseiten zu betreiben.
Und hier kommt nun Drupal ins Spiel.
Aufgabe:
Es sind zwei von einander unabhängige Sites aufzubauen, die eine Codebasis teilen. Die vorhandende Seite soll mit einem zum restlichen Content der Internetadresse getrennten Blog ergänzt werden.
Randbedingungen:
- Es läuft bereits eine Site mit Drupal, diese soll durch eine zweite ergänzt werden.
- Auch die neue URL muss auf genau das gleiche Verzeichnis im Webspace zeigen.
- Beide Sites müssen sich eine Datenbank teilen (Das Webhostingpaket dieses Discounters bietet nur eine MySQL-Datenbank an).
- Die erste Site darf nicht beeinträchtigt werden.
Lösung:
Hier die schrittweise vorgehensweise:
- Die Internetseite und die Datenbank sichern!
- Im Verzeichnis /sites ist das existierende Verzeichnis /default zu duplizieren. Am besten erledigt man dies mittels eines FTP-Programms. Das duplizierte Verzeichnis erhält den Namen, unter der die Seite später mal erreichbar sein soll, z.B. example.com oder blog.example.com. Eventuelle Slashes ("/") sind durch Punkte (".") zu ersetzen.
- Anpassen der /sites/blog.example.com/settings.php. Es sind im Prinzip nur zwei Zeilen Code zu ersetzen:
- $db_prefix = ' '; zwischen die Hochkommata setze man einen Prefix seiner Wahl, zum Beipsiel 'blog_' Dann wird daraus: $db_prefix = 'blog_';
- Die Base-URL ist anzupassen: $base_url = 'http://blog.example.com';
- Jetzt muss man die Datei /database/database.4.0.mysql (in meinem Falle, ansonsten eine der anderen beiden) mit den entsprechenden, oben schon genutzen Prefix (wichtig!) "blog_" ergänzt werden:
- aus "CREATE TABLE access" wird "CREATE TABLE blog_access" usw. Das gilt für alle create und alle insert Befehle
- Jetzt logge man sich mittels PHPMYADMIN (oder was sonst zur Verfügung steht) in die Datenbankverwaltung ein und führe die soeben geänderte Datei aus. Nach Abarbeitung der in der Datei enthaltenen SQL-Befehle hat die Datenbank 57 neue Tabellen hinzubekommen, welche nur durch die "blog.example.com"-Seite genutzt werden.
- Man rufe die Internet-Seite auf und erstelle den ersten Benutzer.