Warum es in diesem Artikel geht, erfahrt ihr hier. Dieser Code läuft, u.a. weil er von Martin Langhoff ist. Den Originalthread findet man hier – hätte ich man erst auf moodle.org gesucht… Ich habe die dort geposteten Dateien noch einmal tüchtig eingedampft. Der Ausgangspunkt sind wieder zwei Subdomains:
http://heim.domain.tld
http://schule.domain.tld
Der Unterschied zu meiner ersten Lösung besteht darin, dass im Prinzip nun jede Moodleinstallation ihre eigene config.php erhält – über eine dynamische scheint es nicht zu laufen. Dazu braucht es wiederum eine modifizierte config.php:
<?php
# Hier gewinnen wir den ersten Domainteil der Subdomain
$domain_parts=explode(“.”, $_SERVER['HTTP_HOST']);
$instance=$domain_parts[0];
$instance = preg_replace(“/\W/”, “”, $instance);
Also einfach die obere config.php einsetzen und für jede Installation eine eigene config_name.php-Datei anlegen. Das läuft hinter einem Reverse Proxy, auf normalem Webspace, auf einem managed Server – wirklich.Eine Beispielinstallation (proof of concept) gibt es unter den Links:
Beide Systeme laufen unter der gleichen Codebasis hinter einem Reverse Proxy auf einem lighttpd-Webserver mit PHP als fastCGI.
Dort konnte ich die Codebasis unter /pfad/zu/moodle tatsächlich für beliebig viele Moodles nutzen und hatte völlig freie Wahl bei z.B. dem Pfad zum /moodledata-Verzeichnis oder beim Datenbanknamen – was zusätzlich einen kleinen Sicherheitsgewinn bedeutet. Meine vollständig dynamische Lösung aus dem vorherigen Artikel fand ich zwar eleganter, aber wenn Moodle das nicht will…
Wenn der, der etwas notwendig braucht dies ihm Notwendige findet, so ist es nicht der Zufall, der es ihm gibt, sondern er selbst, sein eigenes Verlangen und Müssen führt ihn hin.
(Hermann Hesse)