From 99b55bfba53aa6de380c84a036b286c951533dcb Mon Sep 17 00:00:00 2001
From: ftimme <ft@falkotimme.com>
Date: Wed, 28 Sep 2011 06:28:29 -0400
Subject: [PATCH] - nginx: If apps vhost is reconfigured, apps pool (PHP-FPM) is reconfigured as well. - Installer adds Apache and nginx user to ispapps group. - Installer makes sure that /var/www/apps has 755 permissions.

---
 install/lib/installer_base.lib.php                 |   10 ++++
 server/conf/apps_php_fpm_pool.conf.master          |   19 +++++++++
 install/dist/lib/fedora.lib.php                    |    4 ++
 install/dist/lib/gentoo.lib.php                    |    8 +++
 install/dist/lib/opensuse.lib.php                  |    4 ++
 server/plugins-available/apps_vhost_plugin.inc.php |   22 +++++++++-
 6 files changed, 62 insertions(+), 5 deletions(-)

diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php
index e992947..4093831 100644
--- a/install/dist/lib/fedora.lib.php
+++ b/install/dist/lib/fedora.lib.php
@@ -857,6 +857,8 @@
 		if($conf['apache']['installed'] == true){
 			$command = 'usermod -a -G ispconfig '.$conf['apache']['user'];
 			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
+			$command = 'usermod -a -G ispapps '.$conf['apache']['user'];
+			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 		}
 		if($conf['nginx']['installed'] == true){
 			$command = 'usermod -a -G ispconfig '.$conf['nginx']['user'];
@@ -864,6 +866,8 @@
 			// Allow the ispapps vhost access to /etc/squirrelmail
 			$command = 'usermod -a -G '.$conf['apache']['group'].' ispapps';
 			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
+			$command = 'usermod -a -G ispapps '.$conf['nginx']['user']';
+			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 		}
 		
 		//* Make the shell scripts executable
diff --git a/install/dist/lib/gentoo.lib.php b/install/dist/lib/gentoo.lib.php
index ffc919d..d4a261d 100644
--- a/install/dist/lib/gentoo.lib.php
+++ b/install/dist/lib/gentoo.lib.php
@@ -572,8 +572,10 @@
 			$command = 'adduser '.$conf['apache']['user'].' '.$apps_vhost_group;
 			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 		
-			if (!@is_dir($install_dir)) {
+			if(!@is_dir($install_dir)){
 				mkdir($install_dir, 0755, true);
+			} else {
+				chmod($install_dir, 0755);
 			}
 			chown($install_dir, $apps_vhost_user);
 			chgrp($install_dir, $apps_vhost_group);
@@ -864,10 +866,14 @@
 		if($conf['apache']['installed'] == true){
 			$command = 'usermod -a -G ispconfig '.$conf['apache']['user'];
 			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
+			$command = 'usermod -a -G ispapps '.$conf['apache']['user'];
+			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 		}
 		if($conf['nginx']['installed'] == true){
 			$command = 'usermod -a -G ispconfig '.$conf['nginx']['user'];
 			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
+			$command = 'usermod -a -G ispapps '.$conf['nginx']['user'];
+			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 		}
 		
 		//* Make the shell scripts executable
diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php
index e29b18c..fbf4c68 100644
--- a/install/dist/lib/opensuse.lib.php
+++ b/install/dist/lib/opensuse.lib.php
@@ -894,10 +894,14 @@
 		if($conf['apache']['installed'] == true){
 			$command = 'groupmod --add-user '.$conf['apache']['user'].' ispconfig';
 			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
+			$command = 'groupmod --add-user '.$conf['apache']['user'].' ispapps';
+			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 		}
 		if($conf['nginx']['installed'] == true){
 			$command = 'groupmod --add-user '.$conf['nginx']['user'].' ispconfig';
 			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
+			$command = 'groupmod --add-user '.$conf['nginx']['user'].' ispapps';
+			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 		}
 		
 		//* Make the shell scripts executable
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index ab1f110..c35b601 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -1396,7 +1396,11 @@
 			$command = 'adduser '.$conf['apache']['user'].' '.$apps_vhost_group;
 			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 
-			if(!@is_dir($install_dir)) mkdir($install_dir, 0755, true);
+			if(!@is_dir($install_dir)){
+				mkdir($install_dir, 0755, true);
+			} else {
+				chmod($install_dir, 0755);
+			}
 			chown($install_dir, $apps_vhost_user);
 			chgrp($install_dir, $apps_vhost_group);
 
@@ -1744,10 +1748,14 @@
 		if($conf['apache']['installed'] == true){
 			$command = 'adduser '.$conf['apache']['user'].' ispconfig';
 			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
+			$command = 'adduser '.$conf['apache']['user'].' ispapps';
+			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 		}
 		if($conf['nginx']['installed'] == true){
 			$command = 'adduser '.$conf['nginx']['user'].' ispconfig';
 			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
+			$command = 'adduser '.$conf['nginx']['user'].' ispapps';
+			caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
 		}
 
 		//* Make the shell scripts executable
diff --git a/server/conf/apps_php_fpm_pool.conf.master b/server/conf/apps_php_fpm_pool.conf.master
new file mode 100644
index 0000000..adda0b5
--- /dev/null
+++ b/server/conf/apps_php_fpm_pool.conf.master
@@ -0,0 +1,19 @@
+[{fpm_pool}]
+
+listen = {fpm_socket}
+listen.owner = {fpm_user}
+listen.group = {fpm_group}
+listen.mode = 0660
+
+user = {fpm_user}
+group = {fpm_group}
+
+pm = dynamic
+pm.max_children = 50
+pm.start_servers = 20
+pm.min_spare_servers = 5
+pm.max_spare_servers = 35
+
+chdir = /
+
+php_admin_flag[magic_quotes_gpc] = off
\ No newline at end of file
diff --git a/server/plugins-available/apps_vhost_plugin.inc.php b/server/plugins-available/apps_vhost_plugin.inc.php
index 5e942b2..d89a61c 100644
--- a/server/plugins-available/apps_vhost_plugin.inc.php
+++ b/server/plugins-available/apps_vhost_plugin.inc.php
@@ -99,6 +99,9 @@
 			} else {
 				$content = str_replace('{vhost_port_listen}', '', $content);
 			}
+			
+			file_put_contents("$vhost_conf_dir/apps.vhost", $content);
+			$app->services->restartServiceDelayed('httpd','restart');
 		}
 		
 		if($web_config['server_type'] == 'nginx'){
@@ -108,6 +111,9 @@
 			$vhost_conf_dir = $web_config['nginx_vhost_conf_dir'];
 			$vhost_conf_enabled_dir = $web_config['nginx_vhost_conf_enabled_dir'];
 			$apps_vhost_servername = ($web_config['apps_vhost_servername'] == '')?'_':$web_config['apps_vhost_servername'];
+			
+			$apps_vhost_user = 'ispapps';
+			$apps_vhost_group = 'ispapps';
 		
 			$web_config['apps_vhost_port'] = (empty($web_config['apps_vhost_port']))?8081:$web_config['apps_vhost_port'];
 			$web_config['apps_vhost_ip'] = (empty($web_config['apps_vhost_ip']))?'_default_':$web_config['apps_vhost_ip'];
@@ -129,10 +135,20 @@
 			$content = str_replace('{apps_vhost_servername}', $apps_vhost_servername, $content);
 			//$content = str_replace('{fpm_port}', $web_config['php_fpm_start_port']+1, $content);
 			$content = str_replace('{fpm_socket}', $fpm_socket, $content);
+			
+			// PHP-FPM
+			// Dont just copy over the php-fpm pool template but add some custom settings
+			$fpm_content = file_get_contents($conf["rootpath"]."/conf/apps_php_fpm_pool.conf.master");
+			$fpm_content = str_replace('{fpm_pool}', 'apps', $fpm_content);
+			//$fpm_content = str_replace('{fpm_port}', $web_config['php_fpm_start_port']+1, $fpm_content);
+			$fpm_content = str_replace('{fpm_socket}', $fpm_socket, $fpm_content);
+			$fpm_content = str_replace('{fpm_user}', $apps_vhost_user, $fpm_content);
+			$fpm_content = str_replace('{fpm_group}', $apps_vhost_group, $fpm_content);
+			file_put_contents($web_config['php_fpm_pool_dir'].'/apps.conf', $fpm_content);
+			
+			file_put_contents("$vhost_conf_dir/apps.vhost", $content);
+			$app->services->restartServiceDelayed('httpd','reload');
 		}
-		
-		file_put_contents("$vhost_conf_dir/apps.vhost", $content);
-		$app->services->restartServiceDelayed('httpd','restart');
 	}
 	
 

--
Gitblit v1.9.1