ftimme
2013-02-18 4cc499bea541bac6e0e75e999b15a08c821a58cb
server/plugins-available/apache2_plugin.inc.php
@@ -699,7 +699,7 @@
            }
            
            if($web_config['add_web_users_to_sshusers_group'] == 'y') {
               $command = 'killall -u '.escapeshellcmd($data['new']['system_user']).' && usermod';
               $command = 'usermod';
               $command .= ' --groups sshusers';
               $command .= ' '.escapeshellcmd($data['new']['system_user']);
               $this->_exec($command);
@@ -1557,7 +1557,7 @@
      $app->uses('system');
      $web_config = $app->getconf->get_server_config($conf['server_id'], 'web');
      
      $app->system->web_folder_protection($data['old']['document_root'],false);
      if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain') $app->system->web_folder_protection($data['old']['document_root'],false);
      //* Check if this is a chrooted setup
      if($web_config['website_basedir'] != '' && @is_file($web_config['website_basedir'].'/etc/passwd')) {
@@ -1571,14 +1571,31 @@
        $web_folder = '';
        if($data['old']['type'] == 'vhostsubdomain') {
            $tmp = $app->db->queryOneRecord('SELECT `domain`,`document_root` FROM web_domain WHERE domain_id = '.intval($data['old']['parent_domain_id']));
            $subdomain_host = preg_replace('/^(.*)\.' . preg_quote($tmp['domain'], '/') . '$/', '$1', $data['old']['domain']);
         if($tmp['domain'] != ''){
            $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)){
               foreach($bind_mount_lines as $bind_mount_line){
                  $bind_mount_line = preg_replace('/\s+/', ' ', $bind_mount_line);
                  $bind_mount_parts = explode(' ', $bind_mount_line);
                  if(is_array($bind_mount_parts) && !empty($bind_mount_parts)){
                     if($bind_mount_parts[0] == '/var/log/ispconfig/httpd/'.$data['old']['domain'] && $bind_mount_parts[2] == 'none' && strpos($bind_mount_parts[3], 'bind') !== false){
                        $subdomain_host = str_replace($data['old']['document_root'].'/log/', '', $bind_mount_parts[1]);
                     }
                  }
               }
            }
         }
            if($subdomain_host == '') $subdomain_host = 'web'.$data['old']['domain_id'];
            $web_folder = $data['old']['web_folder'];
            $log_folder .= '/' . $subdomain_host;
            unset($tmp);
      }
        
      exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder));
      if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain') exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder));
      
      //* remove mountpoint from fstab
      $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$log_folder.'    none    bind';