Multisite Drupal mit Subversion Setup - Seitenkonfiguration

Nachdem die Multisite Basisinstallation abgeschlossen ist, der Subversion Server installiert und anschliessend für Drupal eingerichtet wurde, können wir nun endlich Subversion und Drupal zusammenführen.

Grundsätzliche Vorgehensweise

Zukünftig werden alle global verfügbaren Module und Themes, also Module und Themes für alle Seiten, die mit dem Multisite Setup gehostet werden sollen, unter drupalX-basic/modules, bzw. drupalX-basic/themes gespeichert. Alle seitenindividuellen Module und Themes werden unterhalb des jeweiligen domain Ordners gespeichert.

Änderungen an den Modulen und Themes werden auf einem Clientrechner in die entsprechenden Verzeichnise gepackt, getestet und anschliessend in das SVN Repository eingecheckt. Der Server updated die SVN Arbeitskopie des Echtsystems alle 15 Minuten, so dass nach spätestens 15 Minuten die lokale vorgenommenen und getesteten Änderungen im Livesystem zu bewundern sind.

Arbeitskopie im Livesystem

Auf dem Webserver werden wir nun das Repository auschecken um die
eingespielten Daten zu nutzen. Dazu wird ein Verzeichnis angelegt,
unter dem die Daten automatisch aktualisiert werden. Dies kann
außerhalb des Webroot liegen. Natürlich muss der apache Zugriff auf die
SVN Arbeitskopie bekommen. In diesem Beispiel liegen die Daten zukünftig unter /var/svn_co:

cd /var
svn co --username meinbenutzer svn://meinserver.de:/ svn_co
chown www-data.www-data /var/svn_co -R
chmod 770 /var/svn_co -R

Damit die Änderungen im Repository zukünftig automatisch übernommen
werden, kann man das folgende Bash Script per Cron alle 15 Minuten
ausführen lassen:

#!/bin/bash
svn up /var/svn_co
chown www-data.www-data /var/svn_co -R
chmod 770 /var/svn_co -R

Verzeichnisse einrichten

Wie beschrieben, liegen die Webdaten unter /var/www und die Arbeitskopie des Subversion-Servers unter /var/svn_co. Um jetzt die global verfügbaren Module und Themes einzurichten werden die folgenden zwei Befehle verwendet um einen symbolischen Link zu erzeugen:

ln -s /var/www/drupal5.domain.de/web/sites/all/modules /var/svn_co/drupal5-basic/modules
ln -s /var/www/drupal5.domain.de/web/sites/all/themes /var/svn_co/drupal5-basic/themes

Da die Module PHP Code enthalten, muss der Apache Webserver (bzw. das PHP Modul) noch gesagt bekommen, dass das Verzeichnis /var/svn_co für PHP includes genutzt werden kann. Dies kann über Confixx, ISPconfig oder auch andere Hosting Panels mit Hilfe des php_admin_value open_basedir Eintrages angepasst werden.

Zu diesem Zeitpunkt stehen allen Multisite Domains die globalen Module und Themes zur Verfügung.

Domainspezifische Module und Themes

Wenn eine Domain eigene Module und Themes (letzteres wohl in der Regel immer) hat, auf die anderen Domains innerhalb des Multisite Setups nicht zugreifen sollen, dann müssen noch die innerhalb des SVN angelegten Verzeichnisse per Symlink korrekt gesetzt werden. Da dies bei der Einrichtung einer neuen Domain im Multisite Setup nur einmalig gemacht werden muss, wird der Vorgang im entsprechenden Artikel genau erklärt.