Einstellungen aus MYSQL Datenbank

Alles, was den Apache betrifft, kann hier besprochen werden.

Einstellungen aus MYSQL Datenbank

Postby PF4 » 28. May 2003 14:25

Hi,

ich suche Nach einer möglichkeit die Apache einstellungen Speziell die Virtual Host einstellungen aus einer DB zu laden. Ist sowas irgendwie möglich ?

PS: Benutzt wird aktueller WAMPP mit win 2000 Server
PF4
 
Posts: 528
Joined: 10. March 2003 09:15

Suche auch

Postby aysal » 13. March 2004 21:32

Danach suche ich auch schon sehr lange.
Wäre für jede Info dankbar!

Ender
aysal
 
Posts: 1
Joined: 13. March 2004 21:29

Postby Kristian Marcroft » 13. March 2004 21:35

Hi,

ihr müsstest euch mal mit Linux beschäftigen und dann eine Testversion von Confixx ziehen oder so...

Dort wird genau das "praktiziert" :)

So long
KriS
User avatar
Kristian Marcroft
AF Moderator
 
Posts: 2962
Joined: 03. January 2003 12:08
Location: Diedorf

Postby Stefan » 14. March 2004 10:44

Morsche,


na die Daten aus der DB auslesen, die Datei öffnen in der die vhost stehen sollen, das Ende suchen und die DB Daten reinzimmern. Beim ändern, den passenden Container suchen und ersetzen.

Als Anreiz:

schreiben.php
Code: Select all
<?php
// vhost Daten aus der DB
$vhost['VirtualHost']   = '127.0.0.1';
$vhost['DocumentRoot']  = '/home/spielwiese/html';
$vhost['ServerName']    = 'spielwiese.klp';
$vhost['erweiterung']   = "";

// standard vhost tpl
$vhtext .= "# ANFANG ".$vhost['ServerName']." #\n";
$vhtext .= "<VirtualHost ".$vhost['VirtualHost'].">\n";
$vhtext .= "  ServerName ".$vhost['ServerName']."\n";
$vhtext .= "  DocumentRoot ".$vhost['DocumentRoot']."\n";
$vhtext .= $vhost['erweiterung'];
$vhtext .= "</VirtualHost>\n";
$vhtext .= "# ENDE ".$vhost['ServerName']." #";

// halte Abstand zum nächsten Container
$vhtext .= "\n\n";


// öffne die Datei und schreibe den vhost container rein.
$f = fopen("vhost.conf","a");
fputs($f,$vhtext);
$f = fclose($f);


//
//
// Den aktuelle Vhost anzeigen.
//
//

echo "aktueller vhost\n";

$vhost_datei = implode("",file('vhost.conf'));
eregi("(# ANFANG ".$vhost['ServerName']." #)(.*)(# ENDE ".$vhost['ServerName']." #)",$vhost_datei,$treffer);
echo "<pre>";
echo htmlentities($treffer[2]);
echo "</pre>";
?>


aendern.php
Code: Select all
<?php
// Neue Daten aus der DB
$vhost['VirtualHost']    = '192.168.0.3';
$vhost['DocumentRoot']   = '/home/aenderung/html';
$vhost['ServerName']     = 'spielwiese.klp';
$vhost['erweiterung']    = "";
$vhost['erweiterung']   .= "  AllowOverride All\n";
$vhost['erweiterung']   .= "  Options +SymLinksIfOwnerMatch\n";

// standard vhost tpl
$vhtext .= "# ANFANG ".$vhost['ServerName']." #\n";
$vhtext .= "<VirtualHost ".$vhost['VirtualHost'].">\n";
$vhtext .= "  ServerName ".$vhost['ServerName']."\n";
$vhtext .= "  DocumentRoot ".$vhost['DocumentRoot']."\n";
$vhtext .= $vhost['erweiterung'];
$vhtext .= "</VirtualHost>\n";
$vhtext .= "# ENDE ".$vhost['ServerName']." #";


// hole die Datei
$vhost_datei = implode("",file('vhost.conf'));

//
//
// den alten vhost anzeigen.
//
//
echo "alter vhost\n";
eregi("(# ANFANG ".$vhost['ServerName']." #)(.*)(# ENDE ".$vhost['ServerName']." #)",$vhost_datei,$treffer);
echo "<pre>";
echo htmlentities($treffer[2]);
echo "</pre>";

//
// Daten austauschen im Text
//
$vhtext = eregi_replace("(# ANFANG ".$vhost['ServerName']." #).*(# ENDE ".$vhost['ServerName']." #)",$vhtext,$vhost_datei);

//
// Daten zurückschreiben in die Datei
//
$f = fopen("vhost.conf","w");
fputs($f,$vhtext);
$f = fclose($f);

//
//
// den geänderten Vhost anzeigen.
//
//
echo "geändert in :<br>\n";
$vhost_dat = implode("",file('vhost.conf'));
eregi("(# ANFANG ".$vhost['ServerName']." #)(.*)(# ENDE ".$vhost['ServerName']." #)",$vhost_dat,$treffer);
echo "<pre>";
echo htmlentities($treffer[2]);
echo "</pre>";
?>


Vermutlich ist das ändern mit preg_replace schneller.
Bei einem Neueintrag fehlt die Kontrolle, ob der vhost schon eingetragen ist.

Gruß
Stefan

PS: Confixx? Die datei per include an die httpd.conf anhängen, damit sie nicht überschrieben wird.
Doppelter Eintrag wegen confixx_vhost und den eben erstellten Containern?
Dann halt die Manipulation der vhosts per
<Directory /home/www/webX/html>
[... Manipulation des confixx vhost ...]
</Directory>
User avatar
Stefan
 
Posts: 475
Joined: 26. December 2002 22:36
Location: Mitten in der sonnigen Südpfalz


Return to Apache

Who is online

Users browsing this forum: No registered users and 229 guests