Apache Konfiguration via Datenbank o.ä.

Apache, Lighttpd, nginx, Cherokee
Post Reply
kahler
Posts: 130
Joined: 2003-04-18 17:42
Location: /root
 

Apache Konfiguration via Datenbank o.ä.

Post by kahler »

Hallo,
ich bin gerade dabei, mich auf mein Abitur vorzubereiten und mache in diesem Zusammenhang eine Arbeit über den Apache Webserver (meine Schule bekommt ihren eigenen Server zu Testzwecken etc.).
In diesem Zusammenhang programmiere ich auch eine Art Kundenmenue, mit dem man unter anderem Subdomains anlegen kann.

Dazu eine Frage: Welche konfiguration benutzt zum Beispiel domainfactory, damit beim Anlegen einer neuen Domain bzw. Subdomain der Apache nicht neu gestartet werden muss (nur dann wird normalerweise die Konfiguration eingelesen).
Ich habe zwar schon versucht, mit PHP einfach die httpd.conf néu zu schreiben, wobei mir allerdings 2 Probleme aufgefallen sind:

1. nach jeder Ã?nderung muss man, wie oben schon erwähnt, den Apache neu starten, damit er die geänderte Konfiguration einliest

2. wenn mehrere Benutzer gleichzeitig etwas ändern kann es passieren, dass die Datei danach leer ist (0 Byte).

Ich kann mir nicht vorstellen, dass bei d)f der Server bei jeder Ã?nderung neu gestartet wird, da das viel zu lange dauern würde.
Weiterhin kann ich mir nicht vorstellen, dass ein so renomierter Hoster das Risiko einer leeren Apache Konfiguration eingeht, wenn die Datei von 2 Instanzen des Scripts gleichzeitig geöffnet wird.

Ich würde mich freuen, wenn mir jemand bei diesem Problem helfen könnte.
Hier nochmal meine eMail Adresse, falls mir jemand den Tipp lieber direkt schreiben möchte: marc@symmetrix.de

Vielen Dank schonmal für eure Hilfe.

MfG,


Marc Werner
krispin
Posts: 216
Joined: 2003-04-14 16:30
 

hmm..

Post by krispin »

naja, "zu lange" dauet es wohl kaum, um den Indianer zu restarten.

Ich weiß ja nicht , welchen Server ihr da habt, 200mhz? :D nein, aber jetzt scherz bei seite. Wenn du es Via Vhost bei Apache machen willst, bleibt dir nichts anderes über.
Aber bei mir dauert es vielleicht ne Sekunde, dann ist das ding wieder up, und er wurde vorher gestop.

Das bei 2GH, 256MB Ram (schäm), und 2GB Swap :D


MfG
Krispin
sfeni
Posts: 341
Joined: 2002-08-15 11:35
Location: Schwabenland
 

Re: Apache Konfiguration via Datenbank o.ä.

Post by sfeni »

Man muss den Apache nicht neu starten, sondern nur die Config neu einlesen:
zum Beispiel:

Code: Select all

/etc/init.d/apache reload
oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim
 

Re: Apache Konfiguration via Datenbank o.ä.

Post by oxygen »

Es gibt dafür ein Apache modul. Ich glaub mod_vhost_alias wars. Schau dir mal die Doku dazu an.
Edit: z.B. kontent benutzt das.
Last edited by oxygen on 2003-04-21 14:41, edited 1 time in total.
sascha
Posts: 1325
Joined: 2002-04-22 23:08
 

Re: Apache Konfiguration via Datenbank o.ä.

Post by sascha »

Domainfactory bezieht die Daten aus einem LDAP Server aber mehr weiß ich leider auch nicht :wink:
jtb
Posts: 599
Joined: 2002-08-18 16:41
Location: Darmstadt
Contact:
 

Re: Apache Konfiguration via Datenbank o.ä.

Post by jtb »

kahler wrote: 1. nach jeder Ã?nderung muss man, wie oben schon erwähnt, den Apache neu starten, damit er die geänderte Konfiguration einliest
wie schon gesagt, entweder Apache-Modul benutzen, dass dynamisch die Config ausliest oder halt apachectl graceful (vorher configtest :!: )
kahler wrote:2. wenn mehrere Benutzer gleichzeitig etwas ändern kann es passieren, dass die Datei danach leer ist (0 Byte).
wie wäre es mit Datei-Locks?
[tom]
Posts: 656
Joined: 2003-01-08 20:10
Location: Berlin
 

Re: Apache Konfiguration via Datenbank o.ä.

Post by [tom] »

kahler wrote: 1. nach jeder Ã?nderung muss man, wie oben schon erwähnt, den Apache neu starten, damit er die geänderte Konfiguration einliest
Bei einem "reload" kein Problem.

kahler wrote: 2. wenn mehrere Benutzer gleichzeitig etwas ändern kann es passieren, dass die Datei danach leer ist (0 Byte).
Zum einen flock() benutzen und zum anderen schreibt man ja auch nicht in die httpd.conf. Dazu eine eigene Datei anlegen und per Incude in der httpd.conf verweisen. Die eigene kannst du dann beschreiben.

Wen mehrere die datei verändern, kannst du auch mit einer DB arbeiten oder dir einen Spool programmieren. Aber für Kleinigkeiten sollte flock() reichen.


[TOM]
Post Reply