VHosts mit Datenbank o.Ã?. verwalten

Apache, Lighttpd, nginx, Cherokee
Post Reply
dadark
Posts: 13
Joined: 2003-06-04 07:18
 

VHosts mit Datenbank o.Ã?. verwalten

Post by dadark »

Hallo,
ich habe vor sehr, sehr viele Domains und dementsprechend auch Subdomains auf meinem Server zu hosten.
Jetzt stellt sich das Problem mit den VHosts beim Apachen.
1. Die User sollten Subdomains, also VHosts selbst hinzufügen können (Webinterface)
2. Ich will keine 20km lange vhosts.conf haben ;-)
Eine ideale Lösung wäre also die Verwaltung der VHosts durch eine Datenbank (LDAP, MySQL o.Ã?.).
Jetzt stellt sich die Frage wie..
Google spuckt dazu nicht viel Brauchbares aus, habt ihr eine Idee oder sowas sogar schonmal gemacht?

Im Vorraus vielen Dank
-- dadark
Anonymous
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by Anonymous »

Confixx. Da kannste die Domains und Subdomains in der Datenbank anlegen.
dadark
Posts: 13
Joined: 2003-06-04 07:18
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by dadark »

Mir geht es mehr um die Technik da ich Tools wie Confixx nicht mag
cybermage
Posts: 158
Joined: 2002-12-10 22:10
Location: Ausgburg (Germany)
Contact:
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by cybermage »

sowas such ich auch noch :)
es gibt da ein apache modul mod_sqlinclude oder so ähnlich, damit kann man aus einer db heraus includen

allerdings hat mir das ganze dann doch nicht so gut gefallen, da man alles nur in ein text feld reinschreibt ... alles am stück.
oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by oxygen »

mod_vhost_alias
cybermage
Posts: 158
Joined: 2002-12-10 22:10
Location: Ausgburg (Germany)
Contact:
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by cybermage »

aber das funktioniert doch nur wenn alle vhosts die gleichen einstellungen haben ... oder?
oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by oxygen »

Jein. Bei einzelnen Vhosts kann man keine Einstellungen machen, aber könnte mod_vhost_alias mehrere male einbinden um verschiedene Gruppe zu erzeugen, z.B. mit PHP/CGI, ohne etc
deanwickert
Posts: 77
Joined: 2003-05-13 23:20
Location: Lahnstein
Contact:
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by deanwickert »

dadark wrote:Hallo,
ich habe vor sehr, sehr viele Domains und dementsprechend auch Subdomains auf meinem Server zu hosten.
Dann lies dir auch bitte diesen Artikel aus der 1&1 FAQ mal durch:

http://server.1und1.com/root_server/conf/8.html :!:
cybermage
Posts: 158
Joined: 2002-12-10 22:10
Location: Ausgburg (Germany)
Contact:
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by cybermage »

und was hat das mit der frage nach einem datenbank backend zu tun? :)
dadark
Posts: 13
Joined: 2003-06-04 07:18
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by dadark »

Das frage ich mich auch.
Außerdem sollte man nicht immer allen Scheiß uneingeschränkt glauben.
grrm.
Die gehen von der Standardnstallation mit Confixx etc aus ;-)

---

Wo ich grad dabei bin.. Noch eine Frage:
Ich hab gehört der Apache 2.0 kann Vhosts ohne Neustart übernehmen?
Stimmt das?
arnee
Posts: 54
Joined: 2003-09-30 21:32
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by arnee »

Nativ wird Apache VHosts aus mySQL eher nicht unterstützen, jedenfalls im Moment nicht. Aber wo ist das Problem - ihr legt die Tabellen in der Datenbank an und schreibt euch eben das PHP/Perl-Script, dass ihr per Cron aufrufen oder bei Bedarf von einem anderen Script anstoßen lasst.
pie-ai
Posts: 16
Joined: 2004-03-10 23:47
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by pie-ai »

Genau diesen Lösungsweg über ein Skript bin ich auch gegangen, funktioniert im Grunde super:

Ich frage den Apache nach dem neuschreiben (aus einer db) ab, ob die Konfiguration passt:

Code: Select all

if /sbin/apache/bin/apachectl configtest; then
#Syntax OK, restarten
/sbin/apache/bin/apachectl restart
else
#Fehler in der Konfiguration, schreibe ein mail.
/bin/php /data/admin/crons/httpdadmin_mailer.php
fi
#
(Achtung, komische Pfade.)

Problem ist, der Apache startet nicht, wenn eventuelle Pfade z.B. für Logs nicht existieren. Das sollte Dein Skript dann am besten überprüfen. Kannst ja vorher ein Backup machen und im Fall eines Fehlers zurückspielen oder so.

Hoffe mein Beitrag hilft bei der Entwicklung Deines Skriptes und möglichen Fallen.

MfG
Patrick
gnauck
Posts: 12
Joined: 2003-09-08 12:01
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by gnauck »

sowas suche ich momentn auch. Da ich leider gerade bisschen faul bin sowas selber zu basten. Ich dachte an mySQL und PHP. Ein Script das einfach immer die vhosts.conf komplett neu aus der Datenbank erstellt und einen refresh des Apache auslöst. Dazu eventuell eine kleine Admin Oberfläche wo man dem User seine Domains zuweisen kann und die Anzahl der Subdomain limitieren kann. Am besten Open Source und ohne Confixx.

Alex
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by alexander newald »

Apache2, mod_perl und ein Perscript, welches die Konfiguration on the fly beim Start von Apache aus einer DB ausliest (Nicht zu verwechseln mit einem Script, welches vor dem Start die httpd.conf neu aufbaut)
Anonymous
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by Anonymous »

Wozu die apache.conf neu erstellen lassen?

Ich habe mir sagen lassen das es mit mod_sqlinclude wunderbar klappt.

Hier kann man dann per PHP-Script auch die Ã?nderungen automatisieren welche bei vhosts geändert werden können.

Ich bin nicht so der Freund davon wenn irgendwelche Scripte an einer doch recht heiklen Config-Datei rumpfriemeln sondern lasse lieber die Config-Datei sich gewisse Bereiche aus einer Datenbank holen. Der Aufwand dürfte geringer sein.

Ich selber werde erst diese Woche oder das kommende Wochenende die Freude haben meinen Server mit dieser Datenbank-Lösung zu bearbeiten. Dann könnte ich auch etwas mehr dazu sagen.
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by Joe User »

PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by alexander newald »

Hm, das sieht zwar nett aus, aber einen ganzen VHost Abschnitt als ein Textfeld in einer DB ...
duergner
Posts: 923
Joined: 2003-08-20 11:30
Location: Pittsburgh, PA, USA
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by duergner »

Alexander Newald wrote:Hm, das sieht zwar nett aus, aber einen ganzen VHost Abschnitt als ein Textfeld in einer DB ...
Find ich auch irgendwie etwas komisch und unpraktisch zum Handhaben. Aber das Modul wäre evtl einen Blick wert um es weiterzuentwickeln.
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: VHosts mit Datenbank o.Ã?. verwalten

Post by alexander newald »

Für Apache 2:

in httpd.conf

Code: Select all

LoadModule perl_module modules/mod_perl.so
PerlModule Apache2
Include /www/httpd/bin/vhosts.pl
/www/httpd/bin/vhosts.pl

Code: Select all

<Perl >
use DBI;
# Dann eine DB Verbindung herstellen
# Daten einlesen und in %data speichern
foreach $domain (@domains) {
 my %config = ();
 my %Location = ();
 $config{DocumentRoot} = $data{"$domain","DocumentRoot"};
 $config{SuexecUserGroup} = $data{"$domain","userid"}." ".$data{"$domain","group"};
 if ($data{"$domain","ServerAlias"}) { $config{ServerAlias} = $data{"$domain","ServerAlias"}; }
 if ($data{"$domain","ScriptAlias"}) { $config{ScriptAlias} = $data{"$domain","ScriptAlias"}; }
 $Location{"/"} = {
   AllowOverride   =>      "All",
   Options         =>      "+Indexes +ExecCGI",
   IndexOptions    =>      "$IndexOptions"
   };
 my %Directory = ();
 $Directory{$config{DocumentRoot}} = {
  AllowOverride   =>      "All"
  };
 $config{"Directory"} = %Directory;
 $config{"Location"} = %Location;
 push @{$VirtualHost{'*'}}, {%config};
 }
</Perl>
Um das Prinzip darzustellen sollte es reichen. Muss dann halt noch an die Daten, Sicherheitseinschränkungen etc angepasst werden
Post Reply