From 3c12a49bd4777caf5aace925ebea2cd2f883e00b Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Tue, 20 Sep 2011 10:08:18 -0400
Subject: [PATCH] - Enabled custom nginx directives.

---
 interface/web/sites/templates/web_domain_advanced.htm |    2 +-
 server/conf/nginx_vhost.conf.master                   |   19 ++++++-------------
 server/plugins-available/nginx_plugin.inc.php         |   21 +++++++++++++++------
 3 files changed, 22 insertions(+), 20 deletions(-)

diff --git a/interface/web/sites/templates/web_domain_advanced.htm b/interface/web/sites/templates/web_domain_advanced.htm
index 7fb4ac3..92a77c0 100644
--- a/interface/web/sites/templates/web_domain_advanced.htm
+++ b/interface/web/sites/templates/web_domain_advanced.htm
@@ -32,7 +32,7 @@
       	<label for="apache_directives">{tmpl_var name='apache_directives_txt'}</label>
       	<textarea name="apache_directives" id="apache_directives" rows='10' cols='50' style="width:400px;">{tmpl_var name='apache_directives'}</textarea>
 	  </div>
-      <div class="ctrlHolder apache">
+      <div class="ctrlHolder nginx">
       	<label for="nginx_directives">{tmpl_var name='nginx_directives_txt'}</label>
       	<textarea name="nginx_directives" id="nginx_directives" rows='10' cols='50' style="width:400px;">{tmpl_var name='nginx_directives'}</textarea>
 	  </div>
diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master
index cc489fc..0f43481 100644
--- a/server/conf/nginx_vhost.conf.master
+++ b/server/conf/nginx_vhost.conf.master
@@ -24,10 +24,8 @@
             rewrite ^/(.+)$ <tmpl_var name='rewrite_target'>$1 <tmpl_var name='rewrite_type'>;
         }
         </tmpl_loop>
-
-        location / {
-            index index.html index.php;
-        }
+		
+        index index.html index.htm index.php index.cgi index.pl index.xhtml;
 		
 		<tmpl_if name='ssi' op='==' value='y'>
 		
@@ -49,11 +47,6 @@
 		
         error_log /var/log/ispconfig/httpd/<tmpl_var name='domain'>/error.log;
 
-        # serve static files directly
-        location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt)$ {
-            access_log        off;
-        }
-
         ## Disable .htaccess and other hidden files
         location ~ /\. {
             deny all;
@@ -61,7 +54,7 @@
             log_not_found off;
         }
 		
-        location /favicon.ico {
+        location = /favicon.ico {
             log_not_found off;
             access_log off;
         }
@@ -108,8 +101,8 @@
         }
 		</tmpl_if>
 
-        <tmpl_if name='nginx_directives'>
-            <tmpl_var name='nginx_directives'>
-        </tmpl_if>
+        <tmpl_loop name="nginx_directives">
+        <tmpl_var name='nginx_directive'>
+        </tmpl_loop>
 		
 }
\ No newline at end of file
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index d57469c..f47e179 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -639,9 +639,21 @@
 		$vhost_data['web_document_root_www'] = $web_config['website_basedir'].'/'.$data['new']['domain'].'/web';
 		$vhost_data['web_basedir'] = $web_config['website_basedir'];
 		$vhost_data['ssl_domain'] = $data['new']['ssl_domain'];
-		//$vhost_data['has_custom_php_ini'] = $has_custom_php_ini;
-		//$vhost_data['custom_php_ini_dir'] = escapeshellcmd($custom_php_ini_dir);
 		$vhost_data['fpm_port'] = $web_config['php_fpm_start_port'] + $data['new']['domain_id'] + 1;
+		
+		// Custom nginx directives
+		$final_nginx_directives = array();
+		$nginx_directives = $data['new']['nginx_directives'];
+		// Make sure we only have Unix linebreaks
+		$nginx_directives = str_replace("\r\n", "\n", $nginx_directives);
+		$nginx_directives = str_replace("\r", "\n", $nginx_directives);
+		$nginx_directive_lines = explode("\n", $nginx_directives);
+		if(is_array($nginx_directive_lines) && !empty($nginx_directive_lines)){
+			foreach($nginx_directive_lines as $nginx_directive_line){
+				$final_nginx_directives[] = array('nginx_directive' => $nginx_directive_line);
+			}
+		}
+		$tpl->setLoop('nginx_directives', $final_nginx_directives);
 
 		// Check if a SSL cert exists
 		$ssl_dir = $data['new']['document_root'].'/ssl';
@@ -781,11 +793,8 @@
 		}
 
 		if(count($rewrite_rules) > 0) {
-			$tpl->setVar('rewrite_enabled',1);
-		} else {
-			$tpl->setVar('rewrite_enabled',0);
+			$tpl->setLoop('redirects',$rewrite_rules);
 		}
-		$tpl->setLoop('redirects',$rewrite_rules);
 		
 		//* Create basic http auth for website statistics
 		$tpl->setVar('stats_auth_passwd_file', $data['new']['document_root']."/.htpasswd_stats");

--
Gitblit v1.9.1