From a9c5c19aee8db8f4aa301eb9c26a498f2fd3ec0c Mon Sep 17 00:00:00 2001
From: cfoe <cfoe@ispconfig3>
Date: Wed, 11 Jul 2012 04:05:05 -0400
Subject: [PATCH] rc1 of default-v2
---
install/dist/lib/opensuse.lib.php | 77 ++++++++++++++++++++++++++++++++------
1 files changed, 64 insertions(+), 13 deletions(-)
diff --git a/install/dist/lib/opensuse.lib.php b/install/dist/lib/opensuse.lib.php
index b2953cf..248cf61 100644
--- a/install/dist/lib/opensuse.lib.php
+++ b/install/dist/lib/opensuse.lib.php
@@ -96,11 +96,9 @@
}
if($cf['vmail_mailbox_base'] != '' && strlen($cf['vmail_mailbox_base']) >= 10 && $this->is_update === false) exec('chown -R '.$cf['vmail_username'].':'.$cf['vmail_groupname'].' '.$cf['vmail_mailbox_base']);
-
+
+ //* These postconf commands will be executed on installation and update
$postconf_commands = array (
- 'myhostname = '.$conf['hostname'],
- 'mydestination = '.$conf['hostname'].', localhost, localhost.localdomain',
- 'mynetworks = 127.0.0.0/8 [::1]/128',
'virtual_alias_domains =',
'virtual_alias_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_forwardings.cf, mysql:'.$config_dir.'/mysql-virtual_email2email.cf',
'virtual_mailbox_domains = proxy:mysql:'.$config_dir.'/mysql-virtual_domains.cf',
@@ -131,6 +129,15 @@
'body_checks = regexp:'.$config_dir.'/body_checks',
'inet_interfaces = all'
);
+
+ //* These postconf commands will be executed on installation only
+ if($this->is_update == false) {
+ $postconf_commands = array_merge($postconf_commands,array(
+ 'myhostname = '.$conf['hostname'],
+ 'mydestination = '.$conf['hostname'].', localhost, localhost.localdomain',
+ 'mynetworks = 127.0.0.0/8 [::1]/128'
+ ));
+ }
//* Create the header and body check files
touch($config_dir.'/header_checks');
@@ -349,19 +356,33 @@
caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
}
- //* copy dovecot.conf
+ //* backup dovecot.conf
$configfile = 'dovecot.conf';
if(is_file("$config_dir/$configfile")){
copy("$config_dir/$configfile", "$config_dir/$configfile~");
}
- copy('tpl/opensuse_dovecot.conf.master',"$config_dir/$configfile");
+
+ //* Get the dovecot version
+ exec('dovecot --version',$tmp);
+ $parts = explode('.',trim($tmp[0]));
+ $dovecot_version = $parts[0];
+ unset($tmp);
+ unset($parts);
+
+ //* Copy dovecot configuration file
+ if($dovecot_version == 2) {
+ copy('tpl/opensuse_dovecot2.conf.master',$config_dir.'/'.$configfile);
+ } else {
+ copy('tpl/opensuse_dovecot.conf.master',$config_dir.'/'.$configfile);
+ }
//* dovecot-sql.conf
$configfile = 'dovecot-sql.conf';
if(is_file("$config_dir/$configfile")){
copy("$config_dir/$configfile", "$config_dir/$configfile~");
+ exec("chmod 400 $config_dir/$configfile~");
}
- exec("chmod 400 $config_dir/$configfile~");
+
$content = rf("tpl/opensuse_dovecot-sql.conf.master");
$content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content);
$content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content);
@@ -520,6 +541,10 @@
replaceLine('/etc/suphp.conf','docroot=','docroot=/srv/www',0,0);
replaceLine('/etc/suphp.conf','umask=0077','umask=0022',0);
//}
+
+ if(!file_exists('/srv/www/cgi-bin/php5') && file_exists('/srv/www/cgi-bin/php')) {
+ symlink('/srv/www/cgi-bin/php','/srv/www/cgi-bin/php5');
+ }
// Sites enabled and available dirs
exec('mkdir -p '.$conf['apache']['vhost_conf_enabled_dir']);
@@ -756,6 +781,7 @@
$content = str_replace('{server_id}', $conf['server_id'], $content);
$content = str_replace('{ispconfig_log_priority}', $conf['ispconfig_log_priority'], $content);
$content = str_replace('{language}', $conf['language'], $content);
+ $content = str_replace('{timezone}', $conf['timezone'], $content);
wf("$install_dir/interface/lib/$configfile", $content);
@@ -778,6 +804,7 @@
$content = str_replace('{server_id}', $conf['server_id'], $content);
$content = str_replace('{ispconfig_log_priority}', $conf['ispconfig_log_priority'], $content);
$content = str_replace('{language}', $conf['language'], $content);
+ $content = str_replace('{timezone}', $conf['timezone'], $content);
wf("$install_dir/server/lib/$configfile", $content);
@@ -880,6 +907,10 @@
}
}
+ //* Make the APS directories group writable
+ exec("chmod -R 770 $install_dir/interface/web/sites/aps_meta_packages");
+ exec("chmod -R 770 $install_dir/server/aps_packages");
+
//* make sure that the server config file (not the interface one) is only readable by the root user
exec("chmod 600 $install_dir/server/lib/$configfile");
exec("chown root:root $install_dir/server/lib/$configfile");
@@ -894,10 +925,18 @@
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");
+ if(is_group('ispapps')){
+ $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");
+ if(is_group('ispapps')){
+ $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
@@ -905,7 +944,7 @@
caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
- if($conf['apache']['installed'] == true){
+ if($conf['apache']['installed'] == true && $this->install_ispconfig_interface == true){
//* Copy the ISPConfig vhost for the controlpanel
// TODO: These are missing! should they be "vhost_dist_*_dir" ?
$vhost_conf_dir = $conf['apache']['vhost_conf_dir'];
@@ -945,7 +984,7 @@
//copy('tpl/apache_ispconfig.vhost.master', "$vhost_conf_dir/ispconfig.vhost");
//* and create the symlink
- if($this->install_ispconfig_interface == true && $this->is_update == false) {
+ if($this->is_update == false) {
if(@is_link("$vhost_conf_enabled_dir/ispconfig.vhost")) unlink("$vhost_conf_enabled_dir/ispconfig.vhost");
if(!@is_link("$vhost_conf_enabled_dir/000-ispconfig.vhost")) {
exec("ln -s $vhost_conf_dir/ispconfig.vhost $vhost_conf_enabled_dir/000-ispconfig.vhost");
@@ -957,7 +996,7 @@
replaceLine('/usr/local/ispconfig/server/conf/vhost.conf.master',"suPHP_UserGroup"," suPHP_UserGroup <tmpl_var name='system_user'> <tmpl_var name='system_group'>",0);
}
- if($conf['nginx']['installed'] == true){
+ if($conf['nginx']['installed'] == true && $this->install_ispconfig_interface == true){
//* Copy the ISPConfig vhost for the controlpanel
$vhost_conf_dir = $conf['nginx']['vhost_conf_dir'];
$vhost_conf_enabled_dir = $conf['nginx']['vhost_conf_enabled_dir'];
@@ -976,7 +1015,13 @@
$content = str_replace('{fastcgi_ssl}', 'off', $content);
}
- $content = str_replace('{fpm_port}', $conf['nginx']['php_fpm_start_port'], $content);
+ $socket_dir = escapeshellcmd($conf['nginx']['php_fpm_socket_dir']);
+ if(substr($socket_dir,-1) != '/') $socket_dir .= '/';
+ if(!is_dir($socket_dir)) exec('mkdir -p '.$socket_dir);
+ $fpm_socket = $socket_dir.'ispconfig.sock';
+
+ //$content = str_replace('{fpm_port}', $conf['nginx']['php_fpm_start_port'], $content);
+ $content = str_replace('{fpm_socket}', $fpm_socket, $content);
wf($vhost_conf_dir.'/ispconfig.vhost', $content);
@@ -986,14 +1031,15 @@
// Dont just copy over the php-fpm pool template but add some custom settings
$content = rf('tpl/php_fpm_pool.conf.master');
$content = str_replace('{fpm_pool}', 'ispconfig', $content);
- $content = str_replace('{fpm_port}', $conf['nginx']['php_fpm_start_port'], $content);
+ //$content = str_replace('{fpm_port}', $conf['nginx']['php_fpm_start_port'], $content);
+ $content = str_replace('{fpm_socket}', $fpm_socket, $content);
$content = str_replace('{fpm_user}', 'ispconfig', $content);
$content = str_replace('{fpm_group}', 'ispconfig', $content);
wf($conf['nginx']['php_fpm_pool_dir'].'/ispconfig.conf', $content);
//copy('tpl/nginx_ispconfig.vhost.master', $vhost_conf_dir.'/ispconfig.vhost');
//* and create the symlink
- if($this->install_ispconfig_interface == true && $this->is_update == false) {
+ if($this->is_update == false) {
if(@is_link($vhost_conf_enabled_dir.'/ispconfig.vhost')) unlink($vhost_conf_enabled_dir.'/ispconfig.vhost');
if(!@is_link($vhost_conf_enabled_dir.'/000-ispconfig.vhost')) {
symlink($vhost_conf_dir.'/ispconfig.vhost',$vhost_conf_enabled_dir.'/000-ispconfig.vhost');
@@ -1045,6 +1091,11 @@
exec('chmod 744 /usr/local/bin/run-getmail.sh');
}
+ if(is_dir($install_dir.'/interface/invoices')) {
+ exec('chmod -R 770 '.escapeshellarg($install_dir.'/interface/invoices'));
+ exec('chown -R ispconfig:ispconfig '.escapeshellarg($install_dir.'/interface/invoices'));
+ }
+
}
--
Gitblit v1.9.1