Når jeg selv har testet det af ryger min egen version online: http://guides.printf.dk/perl-dbi.htm Apache med virtualhosts fra en MySQL DB Af: Jesper Noehr <spike@printf.dk> 21/01/03 Smid dette perl-kode i bunden af din httpd.conf: <Perl> use DBI; my ($sth, $dbh, $sname, $sadmin, $droot, $id, $soptions); $dbh = DBI->connect("DBI:mysql:apache","USERNAME","PASSWORD"); $sth = $dbh->prepare("SELECT * FROM vhosts"); $sth->execute(); while (($id,$sname,$droot,$sadmin,$sdomain,$soptions) = $sth->fetchrow_array()) { #warn "+PERL DEBUG+ Addded name: $sname.$sdomain root: $droot admin: $sadmin\n"; push @{$VirtualHost{'*'}}, { ServerName => "$sname.$sdomain", ServerAdmin => $sadmin, DocumentRoot => "/home/customers/$sdomain/$droot", ErrorLog => "/home/customers/$sdomain/log/httpd-error.log", TransferLog => "/home/customers/$sdomain/log/httpd-access.log", Directory => { "/home/customers/$sdomain/$droot" => { Options => $soptions, }, }, }; } $sth->finish(); $dbh->disconnect(); </Perl> Yderlige opsaetning: Du skal lave en database i din MySQL med navnet 'apache', og tabellen 'vhosts', ellers kan du vel selv rette det til. Felterne skal vaere 5 varchars paa 255, hhv. 'sname','droot','sadmin','sdomain','soptions'. Navnene giver vel sig selv. 'sdomain' dog er det felt som virtualhostet hoerer til. Jeg bruger det i mit PHP frontend, og der hvor den placerer logfilerne. Min opsaetning placerer logfilerne i ``/home/customers/<sdomain>/log/'', saa jeg kan lave webalizer stats paa dem. BEMAERK: Dette kode kraever at du har mod_perl compilet til din apache. En let maade at goere det paa en FreeBSD er `pkg_add -r mod_perl`. Den vil oven i koebet saette din apache op til at bruge det. :-) Held og lykke med det. $Id: perl-dbi.htm,v 1.3 2003/02/22 21:55:35 spike Exp $