From 8a05d7625a4e75484abcf5293033a38d1bf7a314 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Wed, 04 Jun 2008 15:41:41 -0400
Subject: [PATCH] - Fixed a bug in listview class.
---
install/update.php | 207 ++++++++++++++++++++++++++++++++-------------------
1 files changed, 129 insertions(+), 78 deletions(-)
diff --git a/install/update.php b/install/update.php
index 8a81e32..c05c00b 100644
--- a/install/update.php
+++ b/install/update.php
@@ -28,128 +28,179 @@
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-/*
- ISPConfig 3 installer.
-*/
-// Include the library with the basic installer functions
+//** ISPConfig 3 installer.
+//** The banner on the command line
+echo "\n\n".str_repeat('-',80)."\n";
+echo " _____ ___________ _____ __ _
+|_ _/ ___| ___ \ / __ \ / _(_)
+ | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _
+ | | `--. \ __/ | | / _ \| '_ \| _| |/ _` |
+ _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| |
+ \___/\____/\_| \____/\___/|_| |_|_| |_|\__, |
+ __/ |
+ |___/ ";
+echo "\n".str_repeat('-',80)."\n";
+echo "\n\n>> Update \n\n";
+
+
+//** Include the library with the basic installer functions
require_once('lib/install.lib.php');
-// Include the base class of the installer class
+//** Include the base class of the installer class
require_once('lib/installer_base.lib.php');
+//** Installer/updater logfile
+define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log');
+
+//** Check for ISPConfig 2.x versions
+if(is_dir('/root/ispconfig') || is_dir('/home/admispconfig')) {
+ die('This software can not be installed on a server wich runs ISPConfig 2.x.');
+}
+
+//** Get distribution identifier
$distname = get_distname();
include_once("/usr/local/ispconfig/server/lib/config.inc.php");
$conf_old = $conf;
unset($conf);
-// Include the distribution specific installer class library
-// and configuration
+//** Include the distribution specific installer class library and configuration
include_once('dist/lib/'.$distname.'.lib.php');
include_once('dist/conf/'.$distname.'.conf.php');
-// Set the mysql login information
-$conf["mysql_server_host"] = $conf_old["db_host"];
-$conf["mysql_server_database"] = $conf_old["db_database"];
-$conf["mysql_server_ispconfig_user"] = $conf_old["db_user"];
-$conf["mysql_server_ispconfig_password"] = $conf_old["db_password"];
+//** Set the mysql login information
+$conf["mysql"]["host"] = $conf_old["db_host"];
+$conf["mysql"]["database"] = $conf_old["db_database"];
+$conf["mysql"]["ispconfig_user"] = $conf_old["db_user"];
+$conf["mysql"]["ispconfig_password"] = $conf_old["db_password"];
$inst = new installer();
-
echo "This application will update ISPConfig 3 on your server.\n";
-// $conf["language"] = $inst->request_language();
-
-// TODO: all other queries, for testing I will setup everything in $conf
-
-// Initialize the MySQL server connection
+//** Initialize the MySQL server connection
include_once('lib/mysql.lib.php');
+
+//** Database update is a bit brute force and should be rebuild later ;)
+
+//** 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']);
+}
+
+//** export the current database data
+if( !empty($conf["mysql"]["admin_password"]) ) {
+
+ system("mysqldump -h ".$conf['mysql']['host']." -u ".$conf['mysql']['admin_user']." -p".$conf['mysql']['admin_password']." -c -t --add-drop-table --all --quick ".$conf['mysql']['database']." > existing_db.sql");
+}
+else {
+
+ system("mysqldump -h ".$conf['mysql']['host']." -u ".$conf['mysql']['admin_user']." -c -t --add-drop-table --all --quick ".$conf['mysql']['database']." > existing_db.sql");
+}
+
+//** Delete the old database
$inst->db = new db();
-// Database update is a bit brute force and should be rebuild later ;)
+if( !$inst->db->query('DROP DATABASE IF EXISTS '.$conf['mysql']['database']) ) {
-// export the current database data
-exec("mysqldump -h $conf[mysql_server_host] -u $conf[mysql_server_ispconfig_user] -p$conf[mysql_server_ispconfig_password] -c -t --add-drop-table --add-locks --all --quick --lock-tables $conf[mysql_server_database] > existing_db.sql &> /dev/null");
+ $inst->error('Unable to drop MySQL database: '.$conf['mysql']['database'].'.');
+}
-// Delete the old database
-exec("/etc/init.d/mysql stop");
-if($conf["mysql_server_database"] != '') exec("rm -rf /var/lib/mysql/".$conf["mysql_server_database"]);
-exec("/etc/init.d/mysql start");
-
-// Create the mysql database
+//** Create the mysql database
$inst->configure_database();
-// empty all databases
+//** empty all databases
$db_tables = $inst->db->getTables();
+
foreach($db_tables as $table) {
+
$inst->db->query("TRUNCATE $table");
}
-// load old data back into database
-exec("mysql -h $conf[mysql_server_host] -u $conf[mysql_server_ispconfig_user] -p$conf[mysql_server_ispconfig_password] $conf[mysql_server_database] < existing_db.sql &> /dev/null");
+//** load old data back into database
+if( !empty($conf["mysql"]["admin_password"]) ) {
-// Configure postfix
-$inst->configure_postfix('dont-create-certs');
+ system("mysql -h ".$conf['mysql']['host']." -u ".$conf['mysql']['admin_user']." -p".$conf['mysql']['admin_password']." ".$conf['mysql']['database']." < existing_db.sql");
+} else {
-// Configure saslauthd
-swriteln('Configuring SASL');
-$inst->configure_saslauthd();
+ system("mysql -h ".$conf['mysql']['host']." -u ".$conf['mysql']['admin_user']." ".$conf['mysql']['database']." < existing_db.sql");
+}
+//** Shall the services be reconfigured during update
+$reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes','no'),'yes');
-// Configure PAM
-swriteln('Configuring PAM');
-$inst->configure_pam();
+if($reconfigure_services_answer == 'yes') {
+ //** Configure postfix
+ $inst->configure_postfix('dont-create-certs');
-// Configure courier
-swriteln('Configuring Courier');
-$inst->configure_courier();
+ //** Configure saslauthd
+ swriteln('Configuring SASL');
+ $inst->configure_saslauthd();
+
+ //** Configure PAM
+ swriteln('Configuring PAM');
+ $inst->configure_pam();
-// Configure Spamasassin
-swriteln('Configuring Spamassassin');
-$inst->configure_spamassassin();
+ //** Configure courier
+ swriteln('Configuring Courier');
+ $inst->configure_courier();
-// Configure Amavis
-swriteln('Configuring Amavisd');
-$inst->configure_amavis();
+ //** Configure Spamasassin
+ swriteln('Configuring Spamassassin');
+ $inst->configure_spamassassin();
-// Configure Getmail
-swriteln('Configuring Getmail');
-$inst->configure_getmail();
+ //** Configure Amavis
+ swriteln('Configuring Amavisd');
+ $inst->configure_amavis();
-// Configure Getmail
-swriteln('Configuring Pureftpd');
-$inst->configure_pureftpd();
+ //** Configure Getmail
+ swriteln('Configuring Getmail');
+ $inst->configure_getmail();
-// Configure ISPConfig
-swriteln('Installing ISPConfig');
+ //** Configure Pureftpd
+ swriteln('Configuring Pureftpd');
+ $inst->configure_pureftpd();
+
+ //** Configure MyDNS
+ swriteln('Configuring MyDNS');
+ $inst->configure_mydns();
+
+ //** Configure Apache
+ swriteln('Configuring Apache');
+ $inst->configure_apache();
+}
+
+//** Configure ISPConfig
+swriteln('Updating ISPConfig');
$inst->install_ispconfig();
-// Configure ISPConfig
-swriteln('Installing Crontab');
-$inst->install_crontab();
+//** Configure Crontab
+$update_crontab_answer = $inst->simple_query('Reconfigure Crontab?', array('yes','no'),'yes');
+if($update_crontab_answer == 'yes') {
+ swriteln('Updating Crontab');
+ $inst->install_crontab();
+}
-
-/*
-Restart services:
-*/
-
-swriteln('Restarting services ...');
-system("/etc/init.d/mysql restart");
-system("/etc/init.d/postfix restart");
-system("/etc/init.d/saslauthd restart");
-system("/etc/init.d/amavis restart");
-system("/etc/init.d/clamav-daemon restart");
-system("/etc/init.d/courier-authdaemon restart");
-system("/etc/init.d/courier-imap restart");
-system("/etc/init.d/courier-imap-ssl restart");
-system("/etc/init.d/courier-pop restart");
-system("/etc/init.d/courier-pop-ssl restart");
-system("/etc/init.d/apache2 restart");
-system("/etc/init.d/pure-ftpd-mysql restart");
+//** Restart services:
+if($reconfigure_services_answer == 'yes') {
+ swriteln('Restarting services ...');
+ system("/etc/init.d/mysql restart");
+ system("/etc/init.d/postfix restart");
+ system("/etc/init.d/saslauthd restart");
+ system("/etc/init.d/amavis restart");
+ system("/etc/init.d/clamav-daemon restart");
+ system("/etc/init.d/courier-authdaemon restart");
+ system("/etc/init.d/courier-imap restart");
+ system("/etc/init.d/courier-imap-ssl restart");
+ system("/etc/init.d/courier-pop restart");
+ system("/etc/init.d/courier-pop-ssl restart");
+ system("/etc/init.d/apache2 restart");
+ system("/etc/init.d/pure-ftpd-mysql restart");
+ system("/etc/init.d/mydns restart");
+}
echo "Update finished.\n";
-
-?>
\ No newline at end of file
+?>
--
Gitblit v1.9.1