From 5c71e91158b78e9dbfa81625d4063ac23bbcb4aa Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Tue, 04 Sep 2012 12:24:22 -0400
Subject: [PATCH] - Fixed FS#2399.
---
server/plugins-available/apache2_plugin.inc.php | 36 ++++++++++++++++++++++++++++++------
1 files changed, 30 insertions(+), 6 deletions(-)
diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index f56d375..188b12f 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -1460,6 +1460,24 @@
} else {
$apache_chrooted = false;
}
+
+ //* Remove the mounts
+ $log_folder = 'log';
+ $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($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
+ $fstab_line = '/var/log/ispconfig/httpd/'.$data['old']['domain'].' '.$data['old']['document_root'].'/'.$log_folder.' none bind 0 0';
+ $app->system->removeLine('/etc/fstab',$fstab_line);
if($data['old']['type'] != 'vhost' && $data['old']['type'] != 'vhostsubdomain' && $data['old']['parent_domain_id'] > 0) {
//* This is a alias domain or subdomain, so we have to update the website instead
@@ -1495,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') {
@@ -1558,8 +1579,6 @@
}
}
// end removing symlinks
- } else {
- // vhost subdomain
}
// Delete the log file directory
@@ -1581,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 {
@@ -1589,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
@@ -2275,8 +2299,8 @@
foreach($ini_settings as $ini_setting){
list($key, $value) = explode('=', $ini_setting);
if($value){
- $value = escapeshellcmd(trim($value));
- $key = escapeshellcmd(trim($key));
+ $value = trim($value);
+ $key = trim($key);
switch (strtolower($value)) {
case '0':
// PHP-FPM might complain about invalid boolean value if you use 0
--
Gitblit v1.9.1