Du meinste, dass du von Perl ein PHP Script aufruft und dass dann in die Config liest? Gaaannnnz so einfach geht das nun auch wieder nicht ;-)
Der Perl Block müsste zB. so aussehen:
Code: Select all
foreach $domain (sort @domains) {
my $servername = $data{"$domain","ServerName"};
my $documentroot = $data{"$domain","DocumentRoot"};
if (substr($documentroot,0,length("/home/")) ne "/home/") {
$data{"$domain","DocumentRoot"} =
$data{"$userid","home_dir"}."/".$data{"$domain","DocumentRoot"};
$documentroot = $data{"$domain","DocumentRoot"};
}
if ($servername and $documentroot) {
my %conifg = ();
$config{ServerName} = $data{"$domain","ServerName"};
$config{DocumentRoot} = $data{"$domain","DocumentRoot"};
$config{SuexecUserGroup} =
$data{"$userid","realuserid"}." ".$data{"$userid","realgroup"};
if ($data{"$domain","ServerAlias"}) {
$config{ServerAlias} = $data{"$domain","ServerAlias"};
}
if ($data{"$domain","ServerAdmin"}) {
$config{ServerAdmin} = $data{"$domain","ServerAdmin"};
}
if ($data{"$domain","ScriptAlias"}) {
$config{ScriptAlias} = $data{"$domain","ScriptAlias"};
}
if ($data{"$domain","ErrorLog"}) {
$config{ErrorLog} = $data{"$domain","ErrorLog"};
}
if ($data{"$domain","DirectoryIndex"}) {
$config{DirectoryIndex} = $data{"$domain","DirectoryIndex"};
}
$config{AddHandler} = "cgi-script .pl .php .php4 .php3";
$Location{"/"} = {
AllowOverride => "All",
Options => "+ExecCGI"
};
$config{"Location"} => %Location;
push @{$VirtualHost{'*'}}, {%config};
}
}
in %data stehen dann die Configs zB. aus einer DB drin.