mcramer
2013-02-08 43686d3f79154be31eb85c2e748fe0f96695e05c
server/plugins-available/apache2_plugin.inc.php
@@ -430,43 +430,45 @@
         
         //* Remove protection of old folders
         $app->system->web_folder_protection($data['old']['document_root'],false);
            if($data["new"]["type"] != "vhostsubdomain") {
                //* Move the site data
                $tmp_docroot = explode('/',$data['new']['document_root']);
                unset($tmp_docroot[count($tmp_docroot)-1]);
                $new_dir = implode('/',$tmp_docroot);
         //* Move the site data
         $tmp_docroot = explode('/',$data['new']['document_root']);
         unset($tmp_docroot[count($tmp_docroot)-1]);
         $new_dir = implode('/',$tmp_docroot);
                $tmp_docroot = explode('/',$data['old']['document_root']);
                unset($tmp_docroot[count($tmp_docroot)-1]);
                $old_dir = implode('/',$tmp_docroot);
         $tmp_docroot = explode('/',$data['old']['document_root']);
         unset($tmp_docroot[count($tmp_docroot)-1]);
         $old_dir = implode('/',$tmp_docroot);
                //* Check if there is already some data in the new docroot and rename it as we need a clean path to move the existing site to the new path
                if(@is_dir($data['new']['document_root'])) {
                    $app->system->web_folder_protection($data['new']['document_root'],false);
                    $app->system->rename($data['new']['document_root'],$data['new']['document_root'].'_bak_'.date('Y_m_d_H_i_s'));
                    $app->log('Renaming existing directory in new docroot location. mv '.$data['new']['document_root'].' '.$data['new']['document_root'].'_bak_'.date('Y_m_d_H_i_s'),LOGLEVEL_DEBUG);
                }
                //* Create new base directory, if it does not exist yet
                if(!is_dir($new_dir)) $app->system->mkdirpath($new_dir);
                $app->system->web_folder_protection($data['old']['document_root'],false);
                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);
         //* Check if there is already some data in the new docroot and rename it as we need a clean path to move the existing site to the new path
         if(@is_dir($data['new']['document_root'])) {
            $app->system->web_folder_protection($data['new']['document_root'],false);
            $app->system->rename($data['new']['document_root'],$data['new']['document_root'].'_bak_'.date('Y_m_d_H_i_s'));
            $app->log('Renaming existing directory in new docroot location. mv '.$data['new']['document_root'].' '.$data['new']['document_root'].'_bak_'.date('Y_m_d_H_i_s'),LOGLEVEL_DEBUG);
         }
         //* Create new base directory, if it does not exist yet
         if(!is_dir($new_dir)) $app->system->mkdirpath($new_dir);
         $app->system->web_folder_protection($data['old']['document_root'],false);
         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
                $data['new']['php_open_basedir'] = str_replace($data['old']['document_root'],$data['new']['document_root'],$data['old']['php_open_basedir']);
         // Handle the change in php_open_basedir
         $data['new']['php_open_basedir'] = str_replace($data['old']['document_root'],$data['new']['document_root'],$data['old']['php_open_basedir']);
                //* Change the owner of the website files to the new website owner
                exec('chown --recursive --from='.escapeshellcmd($data['old']['system_user']).':'.escapeshellcmd($data['old']['system_group']).' '.escapeshellcmd($data['new']['system_user']).':'.escapeshellcmd($data['new']['system_group']).' '.$new_dir);
         //* Change the owner of the website files to the new website owner
         exec('chown --recursive --from='.escapeshellcmd($data['old']['system_user']).':'.escapeshellcmd($data['old']['system_group']).' '.escapeshellcmd($data['new']['system_user']).':'.escapeshellcmd($data['new']['system_group']).' '.$new_dir);
         //* Change the home directory and group of the website user
         $command = 'usermod';
         $command .= ' --home '.escapeshellcmd($data['new']['document_root']);
         $command .= ' --gid '.escapeshellcmd($data['new']['system_group']);
         $command .= ' '.escapeshellcmd($data['new']['system_user']);
         exec($command);
                //* Change the home directory and group of the website user
                $command = 'usermod';
                $command .= ' --home '.escapeshellcmd($data['new']['document_root']);
                $command .= ' --gid '.escapeshellcmd($data['new']['system_group']);
                $command .= ' '.escapeshellcmd($data['new']['system_user']);
                exec($command);
            }
         if($apache_chrooted) $this->_exec('chroot '.escapeshellcmd($web_config['website_basedir']).' '.$command);
         
         //* Change the log mount