server/lib/classes/system.inc.php | ●●●●● patch | view | raw | blame | history | |
server/plugins-available/apache2_plugin.inc.php | ●●●●● patch | view | raw | blame | history | |
server/plugins-available/nginx_plugin.inc.php | ●●●●● patch | view | raw | blame | history |
server/lib/classes/system.inc.php
@@ -1537,6 +1537,12 @@ return intval($string); } } function is_mounted($mountpoint){ $cmd = 'df 2>/dev/null | grep " '.$mountpoint.'$"'; exec($cmd, $output, $return_var); return $return_var == 0 ? true : false; } } ?> server/plugins-available/apache2_plugin.inc.php
@@ -340,7 +340,7 @@ } if($data['new']['document_root'] == '') { $app->log('document_root not set',LOGLEVEL_WARN); if($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain') $app->log('document_root not set',LOGLEVEL_WARN); return 0; } if($data['new']['system_user'] == 'root' or $data['new']['system_group'] == 'root') { @@ -1575,6 +1575,7 @@ $subdomain_host = preg_replace('/^(.*)\.' . preg_quote($tmp['domain'], '/') . '$/', '$1', $data['old']['domain']); } else { // get log folder from /etc/fstab /* $bind_mounts = $app->system->file_get_contents('/etc/fstab'); $bind_mount_lines = explode("\n", $bind_mounts); if(is_array($bind_mount_lines) && !empty($bind_mount_lines)){ @@ -1588,18 +1589,53 @@ } } } */ // we are deleting the parent domain, so we can delete everything in the log directory $subdomain_hosts = array(); $files = array_diff(scandir($data['old']['document_root'].'/'.$log_folder), array('.','..')); if(is_array($files) && !empty($files)){ foreach($files as $file){ if(is_dir($data['old']['document_root'].'/'.$log_folder.'/'.$file)){ $subdomain_hosts[] = $file; } } } } if(is_array($subdomain_hosts) && !empty($subdomain_hosts)){ $log_folders = array(); foreach($subdomain_hosts as $subdomain_host){ $log_folders[] = $log_folder.'/'.$subdomain_host; } } else { if($subdomain_host == '') $subdomain_host = 'web'.$data['old']['domain_id']; $web_folder = $data['old']['web_folder']; $log_folder .= '/' . $subdomain_host; } $web_folder = $data['old']['web_folder']; unset($tmp); unset($subdomain_hosts); } if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain') exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder)); if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain'){ if(is_array($log_folders) && !empty($log_folders)){ foreach($log_folders as $log_folder){ if($app->system->is_mounted($data['old']['document_root'].'/'.$log_folder)) exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder)); } } else { if($app->system->is_mounted($data['old']['document_root'].'/'.$log_folder)) exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder)); } } //* remove mountpoint from fstab if(is_array($log_folders) && !empty($log_folders)){ foreach($log_folders as $log_folder){ $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$log_folder.' none bind'; $app->system->removeLine('/etc/fstab',$fstab_line); } } else { $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$log_folder.' none bind'; $app->system->removeLine('/etc/fstab',$fstab_line); } unset($log_folders); if($data['old']['type'] != 'vhost' && $data['old']['type'] != 'vhostsubdomain' && $data['old']['parent_domain_id'] > 0) { //* This is a alias domain or subdomain, so we have to update the website instead server/plugins-available/nginx_plugin.inc.php
@@ -347,7 +347,7 @@ } if($data['new']['document_root'] == '') { $app->log('document_root not set',LOGLEVEL_WARN); if($data['new']['type'] == 'vhost' || $data['new']['type'] == 'vhostsubdomain') $app->log('document_root not set',LOGLEVEL_WARN); return 0; } if($data['new']['system_user'] == 'root' or $data['new']['system_group'] == 'root') { @@ -1641,6 +1641,7 @@ $subdomain_host = preg_replace('/^(.*)\.' . preg_quote($tmp['domain'], '/') . '$/', '$1', $data['old']['domain']); } else { // get log folder from /etc/fstab /* $bind_mounts = $app->system->file_get_contents('/etc/fstab'); $bind_mount_lines = explode("\n", $bind_mounts); if(is_array($bind_mount_lines) && !empty($bind_mount_lines)){ @@ -1654,18 +1655,55 @@ } } } */ // we are deleting the parent domain, so we can delete everything in the log directory $subdomain_hosts = array(); $files = array_diff(scandir($data['old']['document_root'].'/'.$log_folder), array('.','..')); if(is_array($files) && !empty($files)){ foreach($files as $file){ if(is_dir($data['old']['document_root'].'/'.$log_folder.'/'.$file)){ $subdomain_hosts[] = $file; } if($subdomain_host == '') $subdomain_host = 'web'.$data['old']['domain_id']; $web_folder = $data['old']['web_folder']; $log_folder .= '/' . $subdomain_host; unset($tmp); } } if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain') exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder)); } if(is_array($subdomain_hosts) && !empty($subdomain_hosts)){ $log_folders = array(); foreach($subdomain_hosts as $subdomain_host){ $log_folders[] = $log_folder.'/'.$subdomain_host; } } else { if($subdomain_host == '') $subdomain_host = 'web'.$data['old']['domain_id']; $log_folder .= '/' . $subdomain_host; } $web_folder = $data['old']['web_folder']; unset($tmp); unset($subdomain_hosts); } if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain'){ if(is_array($log_folders) && !empty($log_folders)){ foreach($log_folders as $log_folder){ if($app->system->is_mounted($data['old']['document_root'].'/'.$log_folder)) exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder)); } } else { if($app->system->is_mounted($data['old']['document_root'].'/'.$log_folder)) exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder)); } } //* remove mountpoint from fstab if(is_array($log_folders) && !empty($log_folders)){ foreach($log_folders as $log_folder){ $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$log_folder.' none bind'; $app->system->removeLine('/etc/fstab',$fstab_line); } } else { $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$log_folder.' none bind'; $app->system->removeLine('/etc/fstab',$fstab_line); } unset($log_folders); if($data['old']['type'] != 'vhost' && $data['old']['type'] != 'vhostsubdomain' && $data['old']['parent_domain_id'] > 0) { //* This is a alias domain or subdomain, so we have to update the website instead