From 8e2c2e1c5d06ff636f4ec8695967230ef41212af Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Fri, 23 Sep 2011 08:20:32 -0400
Subject: [PATCH] - Added IPv6 support for nginx.

---
 server/conf/nginx_vhost.conf.master           |   56 ++++++++++++++-------------
 server/plugins-available/nginx_plugin.inc.php |   20 +++++----
 server/conf/php_fpm_pool.conf.master          |   18 +++++----
 3 files changed, 50 insertions(+), 44 deletions(-)

diff --git a/server/conf/nginx_vhost.conf.master b/server/conf/nginx_vhost.conf.master
index a178e0e..ee9a537 100644
--- a/server/conf/nginx_vhost.conf.master
+++ b/server/conf/nginx_vhost.conf.master
@@ -1,41 +1,43 @@
 server {
         listen <tmpl_var name='ip_address'>:80;
-		<tmpl_if name='ssl_enabled'>
+<tmpl_if name='ipv6_enabled'>
+        listen [<tmpl_var name='ipv6_address'>]:80;
+</tmpl_if>
 		
+<tmpl_if name='ssl_enabled'>
         listen <tmpl_var name='ip_address'>:443 ssl;
+<tmpl_if name='ipv6_enabled'>
+        listen [<tmpl_var name='ipv6_address'>]:443 ssl;
+</tmpl_if>
         ssl_certificate <tmpl_var name='document_root'>/ssl/<tmpl_var name='ssl_domain'>.crt;
         ssl_certificate_key <tmpl_var name='document_root'>/ssl/<tmpl_var name='ssl_domain'>.key;
-		</tmpl_if>
+</tmpl_if>
         
         server_name <tmpl_var name='domain'> <tmpl_var name='alias'>;
 
         root   <tmpl_var name='web_document_root_www'>;
 		
-        <tmpl_if name='seo_redirect_enabled'>
-
+<tmpl_if name='seo_redirect_enabled'>
         if ($http_host = "<tmpl_var name='seo_redirect_origin_domain'>") {
             rewrite ^ $scheme://<tmpl_var name='seo_redirect_target_domain'>$request_uri permanent;
         }
-		</tmpl_if>
+</tmpl_if>
 		
-        <tmpl_loop name="redirects">
-		
+<tmpl_loop name="redirects">		
         if ($http_host ~* "<tmpl_var name='rewrite_domain'>$") {
             rewrite ^/(.+)$ <tmpl_var name='rewrite_target'>$1 <tmpl_var name='rewrite_type'>;
         }
-        </tmpl_loop>
+</tmpl_loop>
 		
         index index.html index.htm index.php index.cgi index.pl index.xhtml;
 		
-		<tmpl_if name='ssi' op='==' value='y'>
-		
+<tmpl_if name='ssi' op='==' value='y'>		
         location ~ \.shtml$ {
             ssi on;
         }
-		</tmpl_if>
+</tmpl_if>
 
-        <tmpl_if name='errordocs'>
-		
+<tmpl_if name='errordocs'>		
         error_page 400 /error/400.html;
         error_page 401 /error/401.html;
         error_page 403 /error/403.html;
@@ -43,7 +45,7 @@
         error_page 405 /error/405.html;
         error_page 500 /error/500.html;
         error_page 503 /error/503.html;
-        </tmpl_if>
+</tmpl_if>
 		
         error_log /var/log/ispconfig/httpd/<tmpl_var name='domain'>/error.log;
         access_log /var/log/ispconfig/httpd/<tmpl_var name='domain'>/access.log combined;
@@ -72,26 +74,27 @@
             auth_basic_user_file <tmpl_var name='stats_auth_passwd_file'>;
         }
 
-        <tmpl_if name='php' op='==' value='fast-cgi'>
-		
+<tmpl_if name='php' op='==' value='fast-cgi'>
         location ~ \.php$ {
             try_files $uri =404;
-            <tmpl_var name='use_tcp'>fastcgi_pass 127.0.0.1:<tmpl_var name='fpm_port'>;
-            <tmpl_var name='use_socket'>fastcgi_pass unix:<tmpl_var name='fpm_socket'>;
+<tmpl_if name='use_tcp'>
+            fastcgi_pass 127.0.0.1:<tmpl_var name='fpm_port'>;
+</tmpl_if>
+<tmpl_if name='use_socket'>
+            fastcgi_pass unix:<tmpl_var name='fpm_socket'>;
+</tmpl_if>
             fastcgi_index index.php;
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
             fastcgi_param PATH_INFO $fastcgi_script_name;
             include /etc/nginx/fastcgi_params;
         }
-		</tmpl_else>
-		
+</tmpl_else>
         location ~ \.php$ {
             deny all;
         }
-        </tmpl_if>
+</tmpl_if>
 		
-		<tmpl_if name='cgi' op='==' value='y'>
-		
+<tmpl_if name='cgi' op='==' value='y'>
         location /cgi-bin/ {
             try_files $uri =404;
             root <tmpl_var name='document_root'>;
@@ -101,10 +104,9 @@
             fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
             include /etc/nginx/fastcgi_params;
         }
-		</tmpl_if>
+</tmpl_if>
 
-        <tmpl_loop name="nginx_directives">
+<tmpl_loop name="nginx_directives">
         <tmpl_var name='nginx_directive'>
-        </tmpl_loop>
-		
+</tmpl_loop>	
 }
\ No newline at end of file
diff --git a/server/conf/php_fpm_pool.conf.master b/server/conf/php_fpm_pool.conf.master
index 1131d71..0bde26b 100644
--- a/server/conf/php_fpm_pool.conf.master
+++ b/server/conf/php_fpm_pool.conf.master
@@ -1,12 +1,15 @@
 [<tmpl_var name='fpm_pool'>]
 
-<tmpl_var name='use_tcp'>listen = 127.0.0.1:<tmpl_var name='fpm_port'>
-<tmpl_var name='use_tcp'>listen.allowed_clients = 127.0.0.1
-
-<tmpl_var name='use_socket'>listen = <tmpl_var name='fpm_socket'>
-<tmpl_var name='use_socket'>listen.owner = <tmpl_var name='fpm_user'>
-<tmpl_var name='use_socket'>listen.group = <tmpl_var name='fpm_group'>
-<tmpl_var name='use_socket'>listen.mode = 0660
+<tmpl_if name='use_tcp'>
+listen = 127.0.0.1:<tmpl_var name='fpm_port'>
+listen.allowed_clients = 127.0.0.1
+</tmpl_if>
+<tmpl_if name='use_socket'>
+listen = <tmpl_var name='fpm_socket'>
+listen.owner = <tmpl_var name='fpm_user'>
+listen.group = <tmpl_var name='fpm_group'>
+listen.mode = 0660
+</tmpl_if>
 
 user = <tmpl_var name='fpm_user'>
 group = <tmpl_var name='fpm_group'>
@@ -20,7 +23,6 @@
 chdir = /
 
 <tmpl_if name='security_level' op='==' value='20'>
-
 <tmpl_var name='enable_php_open_basedir'>php_admin_value[open_basedir] = <tmpl_var name='php_open_basedir'>
 </tmpl_if>
 
diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php
index 92ca082..9a05891 100644
--- a/server/plugins-available/nginx_plugin.inc.php
+++ b/server/plugins-available/nginx_plugin.inc.php
@@ -638,7 +638,9 @@
 		$vhost_data['web_document_root'] = $data['new']['document_root'].'/web';
 		$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'];
+		
+		// IPv6
+		if($data['new']['ipv6_address'] != '') $tpl->setVar('ipv6_enabled', 1);
 		
 		// PHP-FPM
 		$pool_dir = escapeshellcmd($web_config['php_fpm_pool_dir']);
@@ -648,11 +650,11 @@
 		if(substr($socket_dir,-1) != '/') $socket_dir .= '/';
 		
 		if($data['new']['php_fpm_use_socket'] == 'y'){
-			$use_tcp = '#';
-			$use_socket = '';
+			$use_tcp = 0;
+			$use_socket = 1;
 		} else {
-			$use_tcp = '';
-			$use_socket = '#';
+			$use_tcp = 1;
+			$use_socket = 0;
 		}
 		$tpl->setVar('use_tcp', $use_tcp);
 		$tpl->setVar('use_socket', $use_socket);
@@ -1113,12 +1115,12 @@
 		$tpl->newTemplate('php_fpm_pool.conf.master');
 
 		if($data['new']['php_fpm_use_socket'] == 'y'){
-			$use_tcp = ';';
-			$use_socket = '';
+			$use_tcp = 0;
+			$use_socket = 1;
 			if(!is_dir($socket_dir)) exec('mkdir -p '.$socket_dir);
 		} else {
-			$use_tcp = '';
-			$use_socket = ';';
+			$use_tcp = 1;
+			$use_socket = 0;
 		}
 		$tpl->setVar('use_tcp', $use_tcp);
 		$tpl->setVar('use_socket', $use_socket);

--
Gitblit v1.9.1