tbrehm
2012-12-18 2a4c9a8eb2a445259af20aca85c17f89a2de1fe9
server/plugins-available/apache2_plugin.inc.php
@@ -421,8 +421,8 @@
         
         //* Create new base directory, if it does not exist yet
         if(!is_dir($new_dir)) $app->system->mkdirpath($new_dir);
         //exec('mv '.$data['old']['document_root'].' '.$new_dir);
         $app->system->rename($data['old']['document_root'],$new_dir);
         exec('mv '.escapeshellarg($data['old']['document_root']).' '.escapeshellarg($new_dir));
         //$app->system->rename($data['old']['document_root'],$new_dir);
         $app->log('Moving site to new document root: mv '.$data['old']['document_root'].' '.$new_dir,LOGLEVEL_DEBUG);
         // Handle the change in php_open_basedir
@@ -439,7 +439,12 @@
         exec($command);
         if($apache_chrooted) $this->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command);
         //* Change the log mount
         $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$log_folder.'    none    bind';
         $app->system->removeLine('/etc/fstab',$fstab_line);
         $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.'    none    bind,nobootwait    0 0';
         $app->system->replaceLine('/etc/fstab',$fstab_line,$fstab_line,1,1);
      }
@@ -469,19 +474,26 @@
      if($this->action == 'update' && $data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain']) {
         if(is_dir('/var/log/ispconfig/httpd/'.$data['old']['domain'])) exec('rm -rf /var/log/ispconfig/httpd/'.$data['old']['domain']);
         if(is_link($data['old']['document_root'].'/'.$log_folder)) $app->system->unlink($data['old']['document_root'].'/'.$log_folder);
         //* remove old log mount
         $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$log_folder.'    none    bind';
         $app->system->removeLine('/etc/fstab',$fstab_line);
         //* Unmount log directory
         exec('umount '.escapeshellarg($data['old']['document_root'].'/'.$log_folder));
      }
      
      //* Create the log dir if nescessary and mount it
        if(!is_dir('/var/log/ispconfig/httpd/'.$data['new']['domain'])) exec('mkdir -p /var/log/ispconfig/httpd/'.$data['new']['domain']);
      if(!is_dir($data['new']['document_root'].'/'.$log_folder) || is_link($data['new']['document_root'].'/'.$log_folder)) {
      if(!is_dir($data['new']['document_root'].'/'.$log_folder) || !is_dir('/var/log/ispconfig/httpd/'.$data['new']['domain']) || is_link($data['new']['document_root'].'/'.$log_folder)) {
         if(is_link($data['new']['document_root'].'/'.$log_folder)) unlink($data['new']['document_root'].'/'.$log_folder);
         if(!is_dir('/var/log/ispconfig/httpd/'.$data['new']['domain'])) exec('mkdir -p /var/log/ispconfig/httpd/'.$data['new']['domain']);
         $app->system->mkdirpath($data['new']['document_root'].'/'.$log_folder);
         $app->system->chown($data['new']['document_root'].'/'.$log_folder,'root');
         $app->system->chgrp($data['new']['document_root'].'/'.$log_folder,'root');
         $app->system->chmod($data['new']['document_root'].'/'.$log_folder,0755);
         exec('mount --bind '.escapeshellarg('/var/log/ispconfig/httpd/'.$data['new']['domain']).' '.escapeshellarg($data['new']['document_root'].'/'.$log_folder));
         //* add mountpoint to fstab
         $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.'    none    bind    0 0';
         $fstab_line = '/var/log/ispconfig/httpd/'.$data['new']['domain'].' '.$data['new']['document_root'].'/'.$log_folder.'    none    bind,nobootwait    0 0';
         $app->system->replaceLine('/etc/fstab',$fstab_line,$fstab_line,1,1);
      }
      
@@ -1274,14 +1286,25 @@
         } else {
            $vhosts[] = array('ip_address' => $data['new']['ip_address'], 'ssl_enabled' => 1, 'port' => '443');
         }
         $app->log('Enable SSL for: '.$domain,LOGLEVEL_DEBUG);
      }
      //* Add vhost for IPv6 IP
      if($data['new']['ipv6_address'] != '') {
         if(count($rewrite_rules) > 0){
            $vhosts[] = array('ip_address' => '['.$data['new']['ipv6_address'].']', 'ssl_enabled' => 0, 'port' => 80, 'redirects' => $rewrite_rules);
         } else {
         $app->log('Enable SSL for: '.$domain,LOGLEVEL_DEBUG);
      }
   //* 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']);
            $explode_v6=explode(':',$data['new']['ipv6_address']);
            for ( $i = 0; $i <= count($explode_v6prefix)-3; $i++ ) {
                    $explode_v6[$i] = $explode_v6prefix[$i];
            }
            $data['new']['ipv6_address'] = implode(':',$explode_v6);
         }
      }
         if(count($rewrite_rules) > 0){
            $vhosts[] = array('ip_address' => '['.$data['new']['ipv6_address'].']', 'ssl_enabled' => 0, 'port' => 80, 'redirects' => $rewrite_rules);
         } else {
            $vhosts[] = array('ip_address' => '['.$data['new']['ipv6_address'].']', 'ssl_enabled' => 0, 'port' => 80);
         }
      
@@ -1513,7 +1536,7 @@
      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    0 0';
      $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$log_folder.'    none    bind';
      $app->system->removeLine('/etc/fstab',$fstab_line);
      if($data['old']['type'] != 'vhost' && $data['old']['type'] != 'vhostsubdomain' && $data['old']['parent_domain_id'] > 0) {