#!perl use Sys::Hostname; use DBI; # for debugging #use Apache::PerlSections (); my $db = DBI->connect(); # use defaults my $st = $db->prepare(<<_SQL_); SELECT CONCAT(VirtualHost, ":", Port), ServerName, ServerAlias, ServerAdmin, ServerSignature, DocumentRoot, ScriptAlias, ErrorLog, TransferLog, HostnameLookups, Redirect, RedirectTo, RedirectStatus, ApJServMount FROM users u, vhosts v WHERE u.active = 'yes' AND v.userID = u.userID ORDER BY v.rank _SQL_ $st->execute(); my %vhosts; while ($_ = $st->fetch()) { my( $virtual_host, $server_name, $server_alias, $server_admin, $server_signature, $document_root, $script_alias, $error_log, $transfer_log, $hostname_lookups, $redirect, $redirect_to, $redirect_status, $jserv_mount, ) = @$_; $vhosts{$virtual_host}++; my %conf; $conf{ ServerName } = $server_name if ($server_name); $conf{ ServerAlias } = $server_alias if ($server_alias); $conf{ ServerAdmin } = $server_admin if ($server_admin); $conf{ ServerSignature } = $server_signature if ($server_signature); $conf{ DocumentRoot } = $document_root if ($document_root); $conf{ ErrorLog } = $error_log if ($error_log); $conf{ TransferLog } = $transfer_log if ($transfer_log); $conf{ HostnameLookups } = $hostname_lookups if ($hostname_lookups); $conf{ Redirect } = "$redirect_status $redirect $redirect_to" if ($redirect && $redirect_to); if ($script_alias) { $script_alias .= '/' unless ($script_alias =~ m(/$)); $conf{ ScriptAlias } = "/cgi-bin/ $script_alias"; } # servlet zone $conf{ ApJServMount } = $jserv_mount if ($jserv_mount); push(@{ $VirtualHost{$virtual_host} }, \%conf); } $st->finish(); $db->disconnect(); # this section needs refining @Listen = keys %vhosts; @NameVirtualHost = @Listen; # debugging #print STDERR Apache::PerlSections->dump();