From c27941663bf568a0b49662a38e43a4e972bad47f Mon Sep 17 00:00:00 2001
From: cfoe <cfoe@ispconfig3>
Date: Tue, 07 Aug 2012 02:29:14 -0400
Subject: [PATCH] added support for extended generatePassword function
---
install/update.php | 57 +++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 43 insertions(+), 14 deletions(-)
diff --git a/install/update.php b/install/update.php
index f888833..aa750ad 100644
--- a/install/update.php
+++ b/install/update.php
@@ -96,6 +96,8 @@
$conf["mysql"]["ispconfig_password"] = $conf_old["db_password"];
$conf['language'] = $conf_old['language'];
if($conf['language'] == '{language}') $conf['language'] = 'en';
+$conf['timezone'] = (isset($conf_old['timezone']))?$conf_old['timezone']:'UTC';
+if($conf['timezone'] == '{timezone}' or trim($conf['timezone']) == '') $conf['timezone'] = 'UTC';
if(isset($conf_old["dbmaster_host"])) $conf["mysql"]["master_host"] = $conf_old["dbmaster_host"];
if(isset($conf_old["dbmaster_database"])) $conf["mysql"]["master_database"] = $conf_old["dbmaster_database"];
@@ -119,7 +121,32 @@
//** Detect the installed applications
$inst->find_installed_apps();
-echo "This application will update ISPConfig 3 on your server.\n";
+echo "This application will update ISPConfig 3 on your server.\n\n";
+
+//* Make a backup before we start the update
+$do_backup = $inst->simple_query('Shall the script create a ISPConfig backup in /var/backup/ now?', array('yes','no'),'yes');
+if($do_backup == 'yes') {
+
+ //* Create the backup directory
+ $backup_path = '/var/backup/ispconfig_'.date('Y-m-d_H-i');
+ $conf['backup_path'] = $backup_path;
+ exec("mkdir -p $backup_path");
+ exec("chown root:root $backup_path");
+ exec("chmod 700 $backup_path");
+
+ //* Do the backup
+ swriteln('Creating backup of "/usr/local/ispconfig" directory...');
+ exec("tar pcfz $backup_path/ispconfig_software.tar.gz /usr/local/ispconfig 2> /dev/null",$out,$returnvar);
+ if($returnvar != 0) die("Backup failed. We stop here...\n");
+
+ swriteln('Creating backup of "/etc" directory...');
+ exec("tar pcfz $backup_path/etc.tar.gz /etc 2> /dev/null",$out,$returnvar);
+ if($returnvar != 0) die("Backup failed. We stop here...\n");
+
+ exec("chown root:root $backup_path/*.tar.gz");
+ exec("chmod 700 $backup_path/*.tar.gz");
+}
+
//** Initialize the MySQL server connection
include_once('lib/mysql.lib.php');
@@ -139,11 +166,17 @@
$clientdb_user = '';
$clientdb_password = '';
-//** Ask user for mysql admin_password if empty
-if( empty($conf["mysql"]["admin_password"]) ) {
-
- $conf["mysql"]["admin_password"] = $inst->free_query('MySQL root password', $conf['mysql']['admin_password']);
-}
+//** Test mysql root connection
+$finished = false;
+do {
+ if(@mysql_connect($conf["mysql"]["host"],$conf["mysql"]["admin_user"],$conf["mysql"]["admin_password"])) {
+ $finished = true;
+ } else {
+ swriteln($inst->lng('Unable to connect to mysql server').' '.mysql_error());
+ $conf["mysql"]["admin_password"] = $inst->free_query('MySQL root password', $conf['mysql']['admin_password']);
+ }
+} while ($finished == false);
+unset($finished);
/*
* Prepare the dump of the database
@@ -311,10 +344,6 @@
//* Configure Bastille Firewall
swriteln('Configuring Bastille Firewall');
$inst->configure_firewall();
- } elseif($conf['ufw']['installed'] == true) {
- //* Configure Ubuntu Firewall
- swriteln('Configuring Ubuntu Firewall');
- $inst->configure_ufw_firewall();
}
}
@@ -333,7 +362,7 @@
swriteln('Updating ISPConfig');
-if ($conf['services']['web'] && $inst->ispconfig_interface_installed) {
+if ($conf['services']['web'] && $inst->install_ispconfig_interface) {
//** Customise the port ISPConfig runs on
$ispconfig_port_number = get_ispconfig_port_number();
if($conf['webserver']['server_type'] == 'nginx'){
@@ -373,7 +402,7 @@
if($conf['courier']['courier-pop'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart');
if($conf['courier']['courier-pop-ssl'] != '' && is_executable($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart');
if($conf['dovecot']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['dovecot']['init_script'])) system($conf['init_scripts'].'/'.$conf['dovecot']['init_script'].' restart');
- if($conf['mailman']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mailman']['init_script'])) system($conf['init_scripts'].'/'.$conf['mailman']['init_script'].' restart');
+ if($conf['mailman']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['mailman']['init_script'])) system('nohup '.$conf['init_scripts'].'/'.$conf['mailman']['init_script'].' restart >/dev/null 2>&1 &');
}
if($conf['services']['web']) {
if($conf['webserver']['server_type'] == 'apache' && $conf['apache']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['apache']['init_script'])) system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart');
@@ -391,12 +420,12 @@
}
if($conf['services']['proxy']) {
- if($conf['squid']['installed'] == true && $conf['squid']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['squid']['init_script'])) system($conf['init_scripts'].'/'.$conf['squid']['init_script'].' restart &> /dev/null');
+ // if($conf['squid']['installed'] == true && $conf['squid']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['squid']['init_script'])) system($conf['init_scripts'].'/'.$conf['squid']['init_script'].' restart &> /dev/null');
if($conf['nginx']['installed'] == true && $conf['nginx']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['nginx']['init_script'])) system($conf['init_scripts'].'/'.$conf['nginx']['init_script'].' restart &> /dev/null');
}
if($conf['services']['firewall']) {
- if($conf['ufw']['installed'] == true && $conf['ufw']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['ufw']['init_script'])) system($conf['init_scripts'].'/'.$conf['ufw']['init_script'].' restart &> /dev/null');
+ //if($conf['ufw']['installed'] == true && $conf['ufw']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['ufw']['init_script'])) system($conf['init_scripts'].'/'.$conf['ufw']['init_script'].' restart &> /dev/null');
}
}
--
Gitblit v1.9.1