Dominik Müller
2014-01-18 0e2978ef48e7877ee46aa4a9e52e86b8f76c9733
server/plugins-available/apache2_plugin.inc.php
@@ -1435,9 +1435,11 @@
      //* Add vhost for IPv6 IP
      if($data['new']['ipv6_address'] != '') {
         if ($conf['serverconfig']['web']['vhost_rewrite_v6'] == 'y') {
            if (isset($conf['serverconfig']['server']['v6_prefix']) && $conf['serverconfig']['server']['v6_prefix'] <> '') {
               $explode_v6prefix=explode(':', $conf['serverconfig']['server']['v6_prefix']);
         //* rewrite ipv6 on mirrors
         /* chang $conf to $web_config */
         if ($web_config['serverconfig']['web']['vhost_rewrite_v6'] == 'y') {
            if (isset($web_config['serverconfig']['server']['v6_prefix']) && $web_config['serverconfig']['server']['v6_prefix'] <> '') {
               $explode_v6prefix=explode(':', $web_config['serverconfig']['server']['v6_prefix']);
               $explode_v6=explode(':', $data['new']['ipv6_address']);
               for ( $i = 0; $i <= count($explode_v6prefix)-3; $i++ ) {
@@ -1982,6 +1984,34 @@
            $app->services->restartServiceDelayed('httpd', 'reload');
         }
         //* Delete the web-backups
         if($data['old']['type'] == 'vhost') {
            $server_config = $app->getconf->get_server_config($conf['server_id'], 'server');
            $backup_dir = $server_config['backup_dir'];
            //* mount backup directory, if necessary
            $mount_backup = true;
            $server_config['backup_dir_mount_cmd'] = trim($server_config['backup_dir_mount_cmd']);
            if($server_config['backup_dir'] != '' && $server_config['backup_delete'] == 'y') {
               if($server_config['backup_dir_is_mount'] == 'y' && $server_config['backup_dir_mount_cmd'] != ''){
                  if(!$app->system->is_mounted($backup_dir)){
                     exec(escapeshellcmd($server_config['backup_dir_mount_cmd']));
                     sleep(1);
                     if(!$app->system->is_mounted($backup_dir)) $mount_backup = false;
                  }
               }
               if($mount_backup){
                  $web_backup_dir = $backup_dir.'/web'.$data_old['domain_id'];
                  //** do not use rm -rf $web_backup_dir because database(s) may exits
                  exec(escapeshellcmd('rm -f '.$web_backup_dir.'/web'.$data_old['domain_id'].'_').'*');
                  //* cleanup database
                  $sql = "DELETE FROM web_backup WHERE server_id = ".$conf['server_id']." AND parent_domain_id = ".$data_old['domain_id']." AND filename LIKE 'web".$data_old['domain_id']."_%'";
                  $app->db->query($sql);
                  if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql);
                  $app->log('Deleted the web backup files', LOGLEVEL_DEBUG);
               }
            }
         }
      }
      if($data['old']['type'] != 'vhost') $app->system->web_folder_protection($data['old']['document_root'], true);
   }
@@ -2624,13 +2654,22 @@
         }
         $content = '';
         $content .= "Include \"".$awstats_conf_dir."/awstats.conf\"\n";
         if (is_file($awstats_conf_dir."/awstats.conf")) {
            $include_file = $awstats_conf_dir."/awstats.conf";
         } elseif (is_file($awstats_conf_dir."/awstats.model.conf")) {
            $include_file = $awstats_conf_dir."/awstats.model.conf";
         }
         $content .= "Include \"".$include_file."\"\n";
         $content .= "LogFile=\"/var/log/ispconfig/httpd/".$data['new']['domain']."/access.log\"\n";
         $content .= "SiteDomain=\"".$data['new']['domain']."\"\n";
         $content .= "HostAliases=\"www.".$data['new']['domain']."  localhost 127.0.0.1\"\n";
         $app->system->file_put_contents($awstats_conf_dir.'/awstats.'.$data['new']['domain'].'.conf', $content);
         $app->log('Created AWStats config file: '.$awstats_conf_dir.'/awstats.'.$data['new']['domain'].'.conf', LOGLEVEL_DEBUG);
         if (isset($include_file)) {
            $app->system->file_put_contents($awstats_conf_dir.'/awstats.'.$data['new']['domain'].'.conf', $content);
            $app->log('Created AWStats config file: '.$awstats_conf_dir.'/awstats.'.$data['new']['domain'].'.conf', LOGLEVEL_DEBUG);
         } else {
            $app->log("No awstats base config found. Either awstats.conf or awstats.model.conf must exist in ".$awstats_conf_dir.".", LOGLEVEL_WARN);
         }
      }
      if(is_file($data['new']['document_root']."/" . $web_folder . "/stats/index.html")) $app->system->unlink($data['new']['document_root']."/" . $web_folder . "/stats/index.html");
@@ -2717,6 +2756,7 @@
      $tpl->setVar('fpm_port', $web_config['php_fpm_start_port'] + $data['new']['domain_id'] - 1);
      $tpl->setVar('fpm_user', $data['new']['system_user']);
      $tpl->setVar('fpm_group', $data['new']['system_group']);
      $tpl->setVar('fpm_domain', $data['new']['domain']);
      $tpl->setVar('pm', $data['new']['pm']);
      $tpl->setVar('pm_max_children', $data['new']['pm_max_children']);
      $tpl->setVar('pm_start_servers', $data['new']['pm_start_servers']);