fix new gruop not being savable
This commit is contained in:
parent
a7e3c0b458
commit
ee87b29189
|
@ -0,0 +1,104 @@
|
|||
#!/usr/bin/perl -w
|
||||
use strict;
|
||||
|
||||
|
||||
use Getopt::Long ();
|
||||
|
||||
my $opts = {};
|
||||
Getopt::Long::GetOptions($opts, 'help', 'output=s',
|
||||
'pid_file=s', 'db_port=s', 'db_name=s', 'db_host=s', 'db_user=s', 'db_pass=s',
|
||||
'min_port=s','max_port=s', 'debug=s',
|
||||
'server_name=s','error_log=s','protocol=s',
|
||||
);
|
||||
|
||||
if ($opts->{help}) {
|
||||
usage();
|
||||
exit 0;
|
||||
} # end if
|
||||
|
||||
|
||||
my %defaults = (
|
||||
error_log => '/var/log/apache2/error.log',
|
||||
output => '/etc/apache2/sites-available/zoneminder.conf',
|
||||
protocol => 'http',
|
||||
);
|
||||
|
||||
foreach my $key ( keys %defaults ) {
|
||||
if ( ! $$opts{$key} ) {
|
||||
$$opts{$key} = $defaults{$key};
|
||||
}
|
||||
}
|
||||
|
||||
my $Listen = '';
|
||||
my $VirtualHostPorts;
|
||||
|
||||
if ( $$opts{protocol} eq 'https' ) {
|
||||
if ( ! $$opts{server_name} ) {
|
||||
die "https requires a server_name";
|
||||
}
|
||||
$VirtualHostPorts = ' *:443';
|
||||
}
|
||||
|
||||
|
||||
foreach my $port ( $$opts{min_port} .. $$opts{max_port} ) {
|
||||
$Listen .= "Listen $port $$opts{protocol}\n";
|
||||
$VirtualHostPorts .= " *:$port";
|
||||
}
|
||||
|
||||
my $template =qq`
|
||||
$Listen
|
||||
<VirtualHost$VirtualHostPorts>
|
||||
DocumentRoot /usr/share/zoneminder/www
|
||||
`. ( $$opts{server_name} ? ' ServerName ' . $$opts{server_name} : '' ).
|
||||
qq`
|
||||
ErrorLog $$opts{error_log}
|
||||
|
||||
ScriptAlias /zm/cgi-bin/ /usr/lib/zoneminder/cgi-bin/
|
||||
ScriptAlias /cgi-bin/ /usr/lib/zoneminder/cgi-bin/
|
||||
<Directory "/usr/lib/zoneminder/cgi-bin">
|
||||
AllowOverride None
|
||||
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
|
||||
Require all granted
|
||||
Satisfy Any
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</Directory>
|
||||
|
||||
Alias /zm /usr/share/zoneminder/www
|
||||
|
||||
<Directory /usr/share/zoneminder/www>
|
||||
php_flag register_globals off
|
||||
Options +Indexes +FollowSymLinks
|
||||
AllowOverride All
|
||||
<IfModule mod_dir.c>
|
||||
DirectoryIndex index.php
|
||||
</IfModule>
|
||||
Require all granted
|
||||
Satisfy Any
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
|
||||
</Directory>
|
||||
`;
|
||||
if ( $$opts{protocol} eq 'https' ) {
|
||||
$template .= qq`
|
||||
SSLCertificateFile /etc/letsencrypt/live/$$opts{server_name}/fullchain.pem
|
||||
SSLCertificateKeyFile /etc/letsencrypt/live/$$opts{server_name}/privkey.pem
|
||||
Include /etc/letsencrypt/options-ssl-apache.conf
|
||||
`;
|
||||
}
|
||||
$template .= qq`
|
||||
</VirtualHost>
|
||||
`;
|
||||
|
||||
|
||||
if ( open( F, "> $$opts{output}" ) ) {
|
||||
binmode F;
|
||||
print F $template;
|
||||
close F;
|
||||
} else {
|
||||
die "Error opening $$opts{output}, Reason: $!";
|
||||
} # end if
|
||||
|
||||
1;
|
||||
__END__
|
Loading…
Reference in New Issue