Der mächtige Indianer stellt sich in Sachen Konfiguration via MySQL etwas quer. Zwar gibt es drei Module, die die VirtualHost-Verwaltung über MySQL ermöglichen sollen, aber es sieht noch nicht danach aus, als kämen diese in Frage für meinen Server. Das eine Projekt, mod_v2h scheint schon länger tot zu sein. Das zweite, mod_vdbh, hab ich vor einiger Zeit mal zu installieren versucht, aber bin gescheitert (OK, ich habe mich vielleicht nicht soo intensiv bemüht...). Das dritte und meistversprechende Projekt ist mod_vhs. Es schien mir bislang etwas konfus von der Konfiguration her, aber ich überlege ernsthaft, es einmal intensiver auszuprobieren.
Allen Modulen gemein ist, dass es keine fertigen DEB-Binaries gibt, was die Systempflege etwas aufwändiger macht. Da nicht die Systemeinrichtung und die damit verbundenen Eingriffe ins Innenleben mancher Software, sondern die Entwicklung einer übergreifenden Hostingserver-Administrationsoberfläche Ziel dieser Arbeit ist, würde ich gerne so weit es geht auf nicht im Standard-Debian System enthaltene Software verzichten. Das bedeutet, dass ich vorerst mit normalen Apache-Konfigurationsdateien arbeiten und mir die Möglichkeit, VirtualHosts zentral über die Datenbank abzuwickeln, für später aufheben werde.
Aus diesem Grund habe ich mir letzte Woche einen Parser für Apache-Configdateien geschrieben. Momentan kann der noch nichts weiter als syntaktisch korrekte Configdateien einlesen, die einzelnen Werte in einer Baumstruktur abpeichern (siehe Klassendiagramm) und veränderte sowie unveränderte Daten in der korrekten Reihenfolge wieder zurückspeichern, aber das wird sich sehr bald ändern. Als nächstes werde ich eine einfache Oberfläche zur Bearbeitung der Werte erschaffen, danach eine saubere Möglichkeit zur Validierung der Werte. Es wäre schön, wenn die ganzen Konfigurations-Direktiven sich so handhaben ließen als wären es ActiveRecord-Objekte aus einer Datenbank, aber ob das nicht vielleicht zu aufwändig zu implementieren ist (und wie sinnvoll), muss noch erörtert werden...
Das UML-Modell zum Config-Parser gibt's unter http://chaos.hobby-astronomie.net/dipl/configParser/configParser.html in seiner jeweils aktuellsten Version. Die XMI-Variante gibt's unter http://chaos.hobby-astronomie.net/dipl/configParser.xmi