is such program needed will be to someone?
that were users which will have sites? to configure and create automatically vhost in apache?
I on your own wrote almost!!
but it is here better to purchase cpanel, plesk or ispmaneger
example
that were users which will have sites? to configure and create automatically vhost in apache?
I on your own wrote almost!!
but it is here better to purchase cpanel, plesk or ispmaneger
example
Code:
<VirtualHost *:80>
ServerAdmin rr522@dfghg.com
DocumentRoot /home/ab/www/data
ServerName mydomain.com
ServerAlias mydomain.com *.ydomain.com
CustomLog /home/ab/log/httpd-access.log combined
ErrorDocument 101 http://s.org
</VirtualHost>
Code:
use Apache::Admin::Config;
my $conf = new Apache::Admin::Config '/$qhost',
or die $Apache::Admin::Config::ERROR;
my $vhost;
my %templ_value;
my $templ_value;
my ( $serveradmin, $serveralis, $costomlog, $errorlog, @drtvs4 );
foreach my $vh ( $conf->section('VirtualHost') ) {
if ( $vh->directive('ServerName')->value eq $nameserver ) {
$serveradmin = $vh->directive('ServerAdmin');
$serveralis = $vh->directive('ServerAlias');
$costomlog = $vh->directive('CustomLog');
$errorlog = $vh->directive('ErrorLog');
@drtvs4 = $vh->directive('ErrorDocument');
}
}
my $template = HTML::Template->new(
filename => $dir . 'tempele-apache22-aid.html',
die_on_bad_params => '0'
);
my $url = $query->url( -relative => 1 );
$template->param( URL => $url );
$template->param( AID => $aid );
if ( defined($saa) ) {
if ($serveradmin) {
use Data::Validate::Email qw(is_email);
if (
(
( length($saa) )
&& ( 70 > length($saa) )
&& ( 5 < length($saa) )
)
&& ( is_email($saa) )
)
{
foreach my $vh ( $conf->section('VirtualHost') ) {
if ( $vh->directive('ServerName')->value eq $nameserver ) {
$vh->directive('ServerAdmin')->set_value($saa);
}
}
$conf->save;
#my $okssa="ok add ServerAdmin";
}
else { %templ_value = ( 'errorsa' => 1 ); }
} #else { $vh->add_directive(ServerAdmin => $saa) } }
if ($serveradmin) {
#my ($serveradmin);
# my $serveradmin=$vh->directive('ServerAdmin');
%templ_value = ( serveradmin => $serveradmin );
}
else { %templ_value = ( 'noserverserveradmin' => '1' ); }
$template->param( NOSERVERADMIN => $templ_value{'noserverserveradmin'} );
$template->param( SERVERADMIN => $templ_value{'serveradmin'} );
$template->param( ERRORSA => $templ_value{'errorsa'} );
my $addsa = $query->param("addsa");
if ( defined($addsa) ) {
use Data::Validate::Domain qw(is_domain);
if ( ( ( 70 > length($addsa) ) && ( 4 < length($addsa) ) )
&& ( is_domain($addsa) ) )
{
if ($serveralis) {
#my $serveralis=$vh->directive('ServerAlias');
my @serv_array = split( / /, $serveralis );
my $n = scalar(@serv_array);
my ( $match, $found, $item );
foreach $item (@serv_array) {
if ( $item eq $addsa ) { $match = $item; $found = 1; last; }
}
if ( !$found ) {
$serv_array[$n] = $addsa;
my $addsa2 = join( ' ', @serv_array );
foreach my $vh ( $conf->section('VirtualHost') ) {
if (
$vh->directive('ServerName')->value eq $nameserver )
{
$vh->directive('ServerAlias')->set_value($addsa2);
}
}
$conf->save;
}
else { %templ_value = ( 'addsa_found' => '1' ); }
}
}
else { %templ_value = ( 'addsa_noval' => '1' ); }
}
my $sadelete = $query->param("sadelete");
if ( defined($sadelete) ) {
if ($serveralis) {
my @serv_array;
@serv_array = split( / /, $serveralis );
my $n = scalar(@serv_array);
delete( @serv_array[$sadelete] );
my $addsa2 = join( ' ', @serv_array );
foreach my $vh ( $conf->section('VirtualHost') ) {
if ( $vh->directive('ServerName')->value eq $nameserver ) {
$vh->directive('ServerAlias')->set_value($addsa2);
}
}
$conf->save;
}
}
my $allsa = $query->param("allsa");
if ( defined($allsa) ) {
my $satooall = $query->param("satooall");
if ($serveralis) {
$satooall = $query->param("satooall");
my @serv_array;
@serv_array = split( / /, $serveralis );
my $n = scalar(@serv_array);
my $ss = "*.$nameserver";
if ( ( defined($satooall) ) && ( $satooall eq "1" ) ) {
if ( ( $n eq '2' ) && ( $serv_array[1] eq $ss ) ) {
%templ_value = ( 'satooall_in_use' => '1' );
}
else {
my $allsa2 = "$nameserver2 $ss";
foreach my $vh ( $conf->section('VirtualHost') ) {
if (
$vh->directive('ServerName')->value eq $nameserver )
{
$vh->directive('ServerAlias')->set_value($allsa2);
}
}
$conf->save;
}
}
elsif ( ( defined($satooall) ) && ( $satooall eq "2" ) ) {
if ( ( $n > 0 ) && ( $serv_array[1] ne $ss ) ) {
%templ_value = ( 'nosatooall_in_use' => '1' );
}
else {
my $allsa2 = $nameserver2;
foreach my $vh ( $conf->section('VirtualHost') ) {
if (
$vh->directive('ServerName')->value eq $nameserver )
{
$vh->directive('ServerAlias')->set_value($allsa2);
}
}
$conf->save;
}
}
else { %templ_value = ( 'no_satooall_param' => '1' ); }
}
}
my ( @serv_array, @array_for_template );
if ($serveralis) {
@serv_array = split( / /, $serveralis );
my $n = scalar(@serv_array);
my $ss = "*.$nameserver";
shift(@serv_array);
my $ns = 1;
@array_for_template;
@array_for_template =
map +{ savalue => $_, savalue2 => $aid, savalue3 => $ns++ },
@serv_array;
if ( ( $n eq 2 ) && ( $serv_array[1] eq $ss ) ) {
%templ_value = ( 'temlp_serveralis_all' => '1' );
}
else { %templ_value = ( 'notemlp_serveralis_all' => '1' ); }
}
else { %templ_value = ( 'noserveralis' => '1' ); }
$template->param(
TEMP_SERVERALIAS_ALL => $templ_value{'temlp_serveralis_all'} );
$template->param(
NOTEMP_SERVERALIAS_ALL => $templ_value{'notemlp_serveralis_all'} );
if ( $templ_value{'addsa_found'} ) {
$template->param( ADDSA_FOUND => 'ServerAlias found, not added' );
}
$template->param( ADDSA_NOVAL => $templ_value{'addsa_noval'} );
$template->param( SATOOALL_IN_USE => $templ_value{'satooall_in_use'} );
$template->param( NOSATOOALL_IN_USE => $templ_value{'nosatooall_in_use'} );
$template->param( NO_SATOOALL_IN_USE => $templ_value{'no_satooall_param'} );
if ( $templ_value{'notemlp_serveralis_all'} ) {
$template->param( SA8 => \@array_for_template );
}
my $oneoffcl = $query->param("oneoffcl");
if ( defined($oneoffcl) ) {
my $clvalue = $query->param("clvalue");
if ( $clvalue eq '1' ) {
if ($costomlog) { %templ_value = ( 'customlog_in_use' => '1' ); }
else {
my $dircl = "/home/$qhost/log/httpd-access.log combined";
foreach my $vh ( $conf->section('VirtualHost') ) {
if ( $vh->directive('ServerName')->value eq $nameserver ) {
$vh->add_directive( CustomLog => $dircl );
}
}
$conf->save;
}
}
elsif ( $clvalue eq '2' ) {
if ($costomlog) {
foreach my $vh ( $conf->section('VirtualHost') ) {
if ( $vh->directive('ServerName')->value eq $nameserver ) {
$vh->directive('CustomLog')->delete;
}
}
$conf->save;
}
else { %templ_value = ( 'no_customlog_in_use' => '1' ); }
}
else { %templ_value = ( 'no_clvalue' => '1' ); }
}