From da843bf45f6c0edfbc246efaacc8a329b2ce7a8b Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Mon, 27 Aug 2012 10:54:16 -0400
Subject: [PATCH] Fixed: FS#2245 - Unable to move from the state "Installation Failed" of an app
---
server/plugins-available/apache2_plugin.inc.php | 21 ++++++++++++++-------
1 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index ce9b8df..c3e9cf3 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -1463,15 +1463,16 @@
//* Remove the mounts
$log_folder = 'log';
+ $web_folder = '';
if($data['old']['type'] == 'vhostsubdomain') {
- $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = '.intval($data['old']['parent_domain_id']));
+ $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($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));
//* remove mountpoint from fstab
@@ -1512,9 +1513,12 @@
$app->system->unlink($vhost_file);
$app->log('Removing vhost file: '.$vhost_file,LOGLEVEL_DEBUG);
- if($data['old']['type'] == 'vhost') {
+ if($data['old']['type'] == 'vhost' || $data['old']['type'] == 'vhostsubdomain') {
$docroot = escapeshellcmd($data['old']['document_root']);
- if($docroot != '' && !stristr($docroot,'..')) exec('rm -rf '.$docroot);
+ if($docroot != '' && !stristr($docroot,'..')) {
+ if($data['old']['type'] == 'vhost') exec('rm -rf '.$docroot);
+ elseif(!stristr($data['old']['web_folder'], '..')) exec('rm -rf '.$docroot.'/'.$web_folder);
+ }
//remove the php fastgi starter script if available
if ($data['old']['php'] == 'fast-cgi') {
@@ -1575,8 +1579,6 @@
}
}
// end removing symlinks
- } else {
- // vhost subdomain
}
// Delete the log file directory
@@ -1598,6 +1600,10 @@
$this->awstats_delete($data,$web_config);
}
+ if($data['old']['type'] == 'vhostsubdomain') {
+ $app->system->web_folder_protection($parent_web_document_root,true);
+ }
+
if($apache_chrooted) {
$app->services->restartServiceDelayed('httpd','restart');
} else {
@@ -1606,6 +1612,7 @@
}
}
+ if($data['old']['type'] != 'vhost') $app->system->web_folder_protection($data['old']['document_root'],true);
}
//* This function is called when a IP on the server is inserted, updated or deleted
--
Gitblit v1.9.1