From 53f04836763a7decea9d96213c19aba74c609c08 Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Tue, 04 Sep 2012 08:15:36 -0400
Subject: [PATCH] - Added random PHP dummy file also to folder protection directives.
---
server/plugins-available/nginx_plugin.inc.php | 18 +++++++++++++-----
1 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index 424d96f..0937199 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -322,8 +322,12 @@
$web_folder = 'web';
$log_folder = 'log';
if($data['new']['type'] == 'vhostsubdomain') {
+ $tmp = $app->db->queryOneRecord('SELECT `domain` FROM web_domain WHERE domain_id = '.intval($data['new']['parent_domain_id']));
+ $subdomain_host = preg_replace('/^(.*)\.' . preg_quote($tmp['domain'], '/') . '$/', '$1', $data['new']['domain']);
+ if($subdomain_host == '') $subdomain_host = 'web'.$data['new']['domain_id'];
$web_folder = $data['new']['web_folder'];
- $log_folder .= '_web' . $data['new']['domain_id'];
+ $log_folder .= '/' . $subdomain_host;
+ unset($tmp);
}
// Create group and user, if not exist
@@ -459,7 +463,7 @@
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_link($data['new']['document_root'].'/'.$log_folder)) unlink($data['new']['document_root'].'/'.$log_folder);
- $app->system->mkdir($data['new']['document_root'].'/'.$log_folder);
+ $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);
@@ -630,7 +634,7 @@
$app->system->chmod($data['new']['document_root'].'/tmp',0777);
// Set Log directory to 755 to make the logs accessible by the FTP user
- if(realpath($data['new']['document_root'].'/'.$log_folder) == '/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log') {
+ if(realpath($data['new']['document_root'].'/'.$log_folder . '/error.log') == '/var/log/ispconfig/httpd/'.$data['new']['domain'].'/error.log') {
$app->system->chmod($data['new']['document_root'].'/'.$log_folder,0755);
}
@@ -815,6 +819,7 @@
$tpl->setVar('use_socket', $use_socket);
$fpm_socket = $socket_dir.$pool_name.'.sock';
$tpl->setVar('fpm_socket', $fpm_socket);
+ $tpl->setVar('rnd_php_dummy_file', '/'.md5(uniqid(microtime(),1)).'.htm');
$vhost_data['fpm_port'] = $web_config['php_fpm_start_port'] + $data['new']['domain_id'] - 1;
// backwards compatibility; since ISPConfig 3.0.5, the PHP mode for nginx is called 'php-fpm' instead of 'fast-cgi'. The following line makes sure that old web sites that have 'fast-cgi' in the database still get PHP-FPM support.
@@ -1306,9 +1311,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') {
--
Gitblit v1.9.1