|
From: Chris W. <ch...@an...> - 2010-03-03 00:04:34
|
On 02.03.10 22:03, Jamie Cameron wrote:
> Yes, absolutely - you can use code like this :
>
> foreign_require("apache");
> $conf = apache::get_config();
> @vhosts = apache::find_directive_struct("VirtualHost", $conf);
> foreach $v (@vhosts) {
> $sn = apache::find_directive("ServerName", $v->{'members'});
> if ($sn eq "whatever.com") {
> @includes = apache::find_directive("Include", $v->{'members'});
> push(@includes, "/path/to/file.lasso");
> apache::save_directive("Include", \@includes, $v->{'members'}, $conf);
> flush_file_lines($v->{'file'});
> }
> }
I'm stuck, hopefully something stupid you can easily spot..
I'm getting 'Failed to save Site : flush_file_lines called on non-loaded
file /etc/httpd/conf.d/ssl.conf' when running:
sub update_apache_vhosts {
my ($site) = @_;
my $conf_path = $site->{'directory'} . '/lasso/fastcgi.conf';
# servernames from ui_select (multiple) on edit form
my @servernames = split(/\0/, $site->{'servername'});
foreach $servername(@servernames) {
foreign_require("apache");
$conf = apache::get_config();
@vhosts = apache::find_directive_struct("VirtualHost", $conf);
foreach $v (@vhosts) {
$sn = apache::find_directive("ServerName", $v->{'members'});
@includes = apache::find_directive("Include", $v->{'members'});
if ($sn eq $servername) {
push(@includes, $conf_path);
} else {
delete $includes[$conf_path];
}
apache::save_directive("Include", \@includes, $v->{'members'}, $conf);
flush_file_lines($v->{'file'});
}
}
}
Any ideas?
Thanks
--
Chris Wik
Anu Internet Services Ltd
|