From cc3fb3d95d21724942a4fcc6f54d9a157940d119 Mon Sep 17 00:00:00 2001
From: oliver <oliver@ispconfig3>
Date: Mon, 27 Aug 2007 10:58:30 -0400
Subject: [PATCH] fixed some bugs in the installer

---
 install/install.php                 |   71 ++++++-------
 install/lib/installer_base.lib.php  |   54 +++++-----
 install/lib/install.lib.php         |   17 +++
 install/dist/conf/debian40.conf.php |   90 ++++++++++-------
 install/update.php                  |   40 +++++--
 5 files changed, 156 insertions(+), 116 deletions(-)

diff --git a/install/dist/conf/debian40.conf.php b/install/dist/conf/debian40.conf.php
index 9f059e3..fc15275 100644
--- a/install/dist/conf/debian40.conf.php
+++ b/install/dist/conf/debian40.conf.php
@@ -3,63 +3,77 @@
 //***  Debian 4.0 default settings
 
 //* Main
-$dist['init_scripts'] = '/etc/init.d';
-$dist['runlevel'] = '/etc';
-$dist['shells'] = '/etc/shells';
-$dist['cron_tab'] = '/var/spool/cron/crontabs/root';
-$dist['pam'] = '/etc/pam.d';
+$conf['language'] = 'en';
+$conf['distname'] = 'debian40';
+$conf['hostname'] = 'server1.example.com'; // Full hostname
+$conf['ispconfig_install_dir'] = '/usr/local/ispconfig';
+$conf['ispconfig_config_dir'] = '/usr/local/ispconfig';
+$conf['server_id'] = 1;
+$conf['init_scripts'] = '/etc/init.d';
+$conf['runlevel'] = '/etc';
+$conf['shells'] = '/etc/shells';
+$conf['cron_tab'] = '/var/spool/cron/crontabs/root';
+$conf['pam'] = '/etc/pam.d';
 
 //* MySQL
-$dist['mysql']['init_script'] = 'mysql';
+$conf['mysql']['init_script'] = 'mysql';
+$conf['mysql']['host'] = 'localhost';
+$conf['mysql']['ip'] = '127.0.0.1';
+$conf['mysql']['port'] = '3306';
+$conf['mysql']['database'] = 'dbispconfig';
+$conf['mysql']['admin_user'] = 'root';
+$conf['mysql']['admin_password'] = '';
+$conf['mysql']['ispconfig_user'] = 'ispconfig';
+$conf['mysql']['ispconfig_password'] = '5sDrewBhk';
 
 //* Apache
-$dist['apache']['user'] = 'www-data';
-$dist['apache']['group'] = 'www-data';
-$dist['apache']['init_script'] = 'apache2';
-$dist['apache']['version'] = '2.2';
-$dist['apache']['vhost_dist_dir'] = '/etc/apache2/sites-available';
-$dist['apache']['vhost_dist_enabled_dir'] = '/etc/apache2/sites-enabled';
+$conf['apache']['user'] = 'www-data';
+$conf['apache']['group'] = 'www-data';
+$conf['apache']['init_script'] = 'apache2';
+$conf['apache']['version'] = '2.2';
+$conf['apache']['vhost_conf_dir'] = '/etc/apache2/sites-available';
+$conf['apache']['vhost_conf_enabled_dir'] = '/etc/apache2/sites-enabled';
 
 //* Postfix
-$dist['postfix']['config_dir'] = '/etc/postfix';
-$dist['postfix']['init_script'] = 'postfix';
-$dist['postfix']['user'] = 'postfix';
-$dist['postfix']['group'] = 'postfix';
-$dist['postfix']['vmail_userid'] = '5000';
-$dist['postfix']['vmail_username'] = 'vmail';
-$dist['postfix']['vmail_groupid'] = '5000';
-$dist['postfix']['vmail_groupname'] = 'vmail';
-$dist['postfix']['vmail_mailbox_base'] = '/home/vmail';
+$conf['postfix']['config_dir'] = '/etc/postfix';
+$conf['postfix']['init_script'] = 'postfix';
+$conf['postfix']['user'] = 'postfix';
+$conf['postfix']['group'] = 'postfix';
+$conf['postfix']['vmail_userid'] = '5000';
+$conf['postfix']['vmail_username'] = 'vmail';
+$conf['postfix']['vmail_groupid'] = '5000';
+$conf['postfix']['vmail_groupname'] = 'vmail';
+$conf['postfix']['vmail_mailbox_base'] = '/home/vmail';
 
 //* Getmail
-$dist['getmail']['config_dir'] = '/etc/getmail';
-$dist['getmail']['program'] = '/usr/bin/getmail';
+$conf['getmail']['config_dir'] = '/etc/getmail';
+$conf['getmail']['program'] = '/usr/bin/getmail';
 
 //* Courier
-$dist['courier']['config_dir'] = '/etc/courier';
-$dist['courier']['courier-authdaemon'] = 'courier-authdaemon';
-$dist['courier']['courier-imap'] = 'courier-imap';
-$dist['courier']['courier-imap-ssl'] = 'courier-imap-ssl';
-$dist['courier']['courier-pop'] = 'courier-pop';
-$dist['courier']['courier-pop-ssl'] = 'courier-pop-ssl';
+$conf['courier']['config_dir'] = '/etc/courier';
+$conf['courier']['courier-authdaemon'] = 'courier-authdaemon';
+$conf['courier']['courier-imap'] = 'courier-imap';
+$conf['courier']['courier-imap-ssl'] = 'courier-imap-ssl';
+$conf['courier']['courier-pop'] = 'courier-pop';
+$conf['courier']['courier-pop-ssl'] = 'courier-pop-ssl';
 
 //* SASL
-$dist['saslauthd']['config'] = '/etc/default/saslauthd';
-$dist['saslauthd']['init_script'] = 'saslauthd';
+$conf['saslauthd']['config'] = '/etc/default/saslauthd';
+$conf['saslauthd']['init_script'] = 'saslauthd';
 
 //* Amavisd
-$dist['amavis']['config_dir'] = '/etc/amavis';
-$dist['amavis']['init_script'] = 'amavis';
+$conf['amavis']['config_dir'] = '/etc/amavis';
+$conf['amavis']['init_script'] = 'amavis';
 
 //* ClamAV
-$dist['clamav']['init_script'] = 'clamav-daemon';
+$conf['clamav']['init_script'] = 'clamav-daemon';
 
 //* Pureftpd
-$dist['pureftpd']['config_dir'] = '/etc/pure-ftpd';
-$dist['pureftpd']['init_script'] = 'pure-ftpd-mysql';
+$conf['pureftpd']['config_dir'] = '/etc/pure-ftpd';
+$conf['pureftpd']['init_script'] = 'pure-ftpd-mysql';
 
 //* MyDNS
-$dist['mydns']['config_dir'] = '/etc';
-$dist['mydns']['init_script'] = 'mydns';
+$conf['mydns']['config_dir'] = '/etc';
+$conf['mydns']['init_script'] = 'mydns';
 
 ?>
\ No newline at end of file
diff --git a/install/install.php b/install/install.php
index 134f62d..7da7b01 100644
--- a/install/install.php
+++ b/install/install.php
@@ -52,21 +52,18 @@
 
 //** Include the library with the basic installer functions
 require_once('lib/install.lib.php');
-require_once('options.conf.php');
-
 
 //** Include the base class of the installer class
 require_once('lib/installer_base.lib.php');
 
-//** Include the distribution specific installer class library and configuration
-include_once('dist/lib/'.$conf['distname'].'.lib.php');
-include_once('dist/conf/'.$conf['distname'].'.conf.php');
-
-
+//** Get distribution identifier
 $distname = get_distname();
-//** Copt the $dist created in dist/conf/foo to global var
-$conf['dist'] = $dist;
 
+//** Include the distribution specific installer class library and configuration
+include_once('dist/lib/'.$distname.'.lib.php');
+include_once('dist/conf/'.$distname.'.conf.php');
+
+//** Install logfile
 define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log');
 
 //****************************************************************************************************
@@ -78,8 +75,8 @@
 swriteln($inst->lng('    Tap in "quit" (without the quotes) to stop the installer.'."\n\n"));
 
 //** Check log file is writable (probably not root or sudo)
-if(!is_writable(ISPC_LOG_FILE)){
-    die("ERROR: Cannot write to the log file '".ISPC_LOG_FILE."'. Are you root or sudo ?\n\n");
+if(!is_writable(dirname(ISPC_LOG_FILE))){
+    die("ERROR: Cannot write to the directory ".dirname(ISPC_LOG_FILE).". Are you root or sudo ?\n\n");
 }
 
 //** Select the language
@@ -92,7 +89,7 @@
 //** Get the hostname
 $tmp_out = array();
 exec('hostname -f', $tmp_out);
-$conf['hostname'] = $inst->free_query('Full qualified hostname (FQDN) of the server, eg foo.example.com ', $tmp_out[0]);
+$inst->conf['hostname'] = $inst->free_query('Full qualified hostname (FQDN) of the server, eg foo.example.com ', $tmp_out[0]);
 unset($tmp_out);
 
 //** Get MySQL root credentials
@@ -175,19 +172,19 @@
 	$inst->install_crontab();
 	
 	swriteln('Restarting services ...');
-	system($conf['dist']['init_scripts'].'/'.$conf['dist']['mysql']['init_script'].' restart');
-	system($conf['dist']['init_scripts'].'/'.$conf['dist']['postfix']['init_script'].' restart');
-	system($conf['dist']['init_scripts'].'/'.$conf['dist']['saslauthd']['init_script'].' restart');
-	system($conf['dist']['init_scripts'].'/'.$conf['dist']['amavis']['init_script'].' restart');
-	system($conf['dist']['init_scripts'].'/'.$conf['dist']['clamav']['init_script'].' restart');
-	system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-authdaemon'].' restart');
-	system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-imap'].' restart');
-	system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-imap-ssl'].' restart');
-	system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-pop'].' restart');
-	system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-pop-ssl'].' restart');
-	system($conf['dist']['init_scripts'].'/'.$conf['dist']['apache']['init_script'].' restart');
-	system($conf['dist']['init_scripts'].'/'.$conf['dist']['pureftpd']['init_script'].' restart');
-	system($conf['dist']['init_scripts'].'/'.$conf['dist']['mydns']['init_script'].' restart');
+	system($conf['init_scripts'].'/'.$conf['mysql']['init_script'].' restart');
+	system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart');
+	system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart');
+	system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart');
+	system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart');
+	system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart');
+	system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart');
+	system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart');
+	system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart');
+	system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart');
+	system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart');
+	system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart');
+	system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart');
 	
 }else{
 
@@ -226,29 +223,29 @@
 		swriteln('Configuring Getmail');
 		$inst->configure_getmail();
 		
-		system($conf['dist']['init_scripts'].'/'.$conf['dist']['postfix']['init_script'].' restart');
-		system($conf['dist']['init_scripts'].'/'.$conf['dist']['saslauthd']['init_script'].' restart');
-		system($conf['dist']['init_scripts'].'/'.$conf['dist']['amavis']['init_script'].' restart');
-		system($conf['dist']['init_scripts'].'/'.$conf['dist']['clamav']['init_script'].' restart');
-		system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-authdaemon'].' restart');
-		system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-imap'].' restart');
-		system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-imap-ssl'].' restart');
-		system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-pop'].' restart');
-		system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-pop-ssl'].' restart');
+		system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart');
+		system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart');
+		system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart');
+		system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart');
+		system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart');
+		system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart');
+		system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart');
+		system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart');
+		system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart');
 	}
 	
 	//** Configure Pureftpd
 	if(strtolower($inst->simple_query('Configure FTP Server', array('y','n'),'y') ) == 'y') {	
 		swriteln('Configuring Pureftpd');
 		$inst->configure_pureftpd();
-		system($conf['dist']['init_scripts'].'/'.$conf['dist']['pureftpd']['init_script'].' restart');
+		system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart');
 	}
 	
 	//** Configure MyDNS
 	if(strtolower($inst->simple_query('Configure DNS Server',array('y','n'),'y')) == 'y') {
 		swriteln('Configuring MyDNS');
 		$inst->configure_mydns();
-		system($conf['dist']['init_scripts'].'/'.$conf['dist']['mydns']['init_script'].' restart');
+		system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart');
 	}
 	
 	//** Configure Apache
@@ -265,7 +262,7 @@
 		//* Configure ISPConfig
 		swriteln('Installing Crontab');
 		$inst->install_crontab();
-		system($conf['dist']['init_scripts'].'/'.$conf['dist']['apache']['init_script'].' restart');	
+		system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart');	
 	}
 	
 } //* << $install_mode / 'Standard' or Genius
diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php
index f705d2b..503b074 100644
--- a/install/lib/install.lib.php
+++ b/install/lib/install.lib.php
@@ -56,9 +56,22 @@
 
 $FILE = realpath('../install.php');
 
+//** Get distribution identifier
 function get_distname() {
-	global $conf; // TODO wtf ?
-	$distname = $conf['distname'];
+	
+	//** Debian
+	if(file_exists('/etc/debian_version')) {
+	
+		if(trim(file_get_contents('/etc/debian_version')) == '4.0') {
+			$distname = 'debian40';
+		}
+	}
+	
+	//** Redhat
+	elseif(file_exists("/etc/redhat_release")) {
+	
+	}
+	
 	return $distname;
 }
 
diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 209e319..51eaa38 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -33,7 +33,7 @@
 	var $wb = array();
 	var $language = 'en';
 	var $db;
-	private $conf;
+	public $conf;
 
 
     public function __construct()
@@ -161,7 +161,7 @@
     //** writes postfix configuration files
     private function process_postfix_config($configfile)
     {
-        $config_dir = $this->conf['dist']['postfix']['config_dir'].'/';
+        $config_dir = $this->conf['postfix']['config_dir'].'/';
         $full_file_name = $config_dir.$configfile; 
         //* Backup exiting file
         if(is_file($full_file_name)){
@@ -179,7 +179,7 @@
 
 	public function configure_postfix($options = '')
     {
-        $cf = $this->conf['dist']['postfix'];
+        $cf = $this->conf['postfix'];
 		$config_dir = $cf['config_dir'];
         
 		if(!is_dir($config_dir)){
@@ -337,14 +337,14 @@
 		
 	
 		$configfile = 'sasl_smtpd.conf';
-		if(is_file($conf["dist"]["postfix"]["config_dir"].'/sasl/smtpd.conf')) copy($conf["dist"]["postfix"]["config_dir"].'/sasl/smtpd.conf',$conf["dist"]["postfix"]["config_dir"].'/sasl/smtpd.conf~');
-		if(is_file($conf["dist"]["postfix"]["config_dir"].'/sasl/smtpd.conf~')) exec('chmod 400 '.$conf["dist"]["postfix"]["config_dir"].'/sasl/smtpd.conf~');
+		if(is_file($conf["postfix"]["config_dir"].'/sasl/smtpd.conf')) copy($conf["postfix"]["config_dir"].'/sasl/smtpd.conf',$conf["postfix"]["config_dir"].'/sasl/smtpd.conf~');
+		if(is_file($conf["postfix"]["config_dir"].'/sasl/smtpd.conf~')) exec('chmod 400 '.$conf["postfix"]["config_dir"].'/sasl/smtpd.conf~');
 		$content = rf("tpl/".$configfile.".master");
 		$content = str_replace('{mysql_server_ispconfig_user}',$this->conf['mysql']['ispconfig_user'],$content);
 		$content = str_replace('{mysql_server_ispconfig_password}',$this->conf['mysql']['ispconfig_password'], $content);
 		$content = str_replace('{mysql_server_database}',$this->conf['mysql']['database'],$content);
 		$content = str_replace('{mysql_server_ip}',$this->conf['mysql']['ip'],$content);
-		wf($conf["dist"]["postfix"]["config_dir"].'/sasl/smtpd.conf',$content);
+		wf($conf["postfix"]["config_dir"].'/sasl/smtpd.conf',$content);
 		
 		// TODO: Chmod and chown on the config file
 		
@@ -354,7 +354,7 @@
 		exec('mkdir -p /var/spool/postfix/var/run/saslauthd');
 		
 		// Edit the file /etc/default/saslauthd
-		$configfile = $conf['dist']["saslauthd"]["config"];
+		$configfile = $conf["saslauthd"]["config"];
 		if(is_file($configfile)) copy($configfile,$configfile.'~');
 		if(is_file($configfile.'~')) exec('chmod 400 '.$configfile.'~');
 		$content = rf($configfile);
@@ -363,7 +363,7 @@
 		wf($configfile,$content);
 		
 		// Edit the file /etc/init.d/saslauthd
-		$configfile = $conf["dist"]["init_scripts"].'/'.$conf["dist"]["saslauthd"]["init_script"];
+		$configfile = $conf["init_scripts"].'/'.$conf["saslauthd"]["init_script"];
 		$content = rf($configfile);
 		$content = str_replace('PIDFILE=$RUN_DIR/saslauthd.pid','PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid"',$content);
 		wf($configfile,$content);
@@ -373,7 +373,7 @@
 	
 	public function configure_pam()
     {
-		$pam = $this->conf['dist']['pam'];
+		$pam = $this->conf['pam'];
 		//* configure pam for SMTP authentication agains the ispconfig database
 		$configfile = 'pamd_smtp';
 		if(is_file("$pam/smtp"))    copy("$pam/smtp", "$pam/smtp~");
@@ -392,7 +392,7 @@
 	
 	public function configure_courier()
     {
-		$config_dir = $this->conf['dist']['courier']['config_dir'];
+		$config_dir = $this->conf['courier']['config_dir'];
 		//* authmysqlrc
 		$configfile = 'authmysqlrc';
 		if(is_file("$config_dir/$configfile")){
@@ -410,7 +410,7 @@
 		exec("chown daemon:daemon $config_dir/$configfile");
 		
 		//* authdaemonrc
-		$configfile = $this->conf['dist']['courier']['config_dir'].'/authdaemonrc';
+		$configfile = $this->conf['courier']['config_dir'].'/authdaemonrc';
 		if(is_file($configfile)){
             copy($configfile, $configfile.'~');
         }
@@ -427,15 +427,15 @@
 		
 		// amavisd user config file
 		$configfile = 'amavisd_user_config';
-		if(is_file($conf["dist"]["amavis"]["config_dir"].'/conf.d/50-user')) copy($conf["dist"]["amavis"]["config_dir"].'/conf.d/50-user',$conf["dist"]["courier"]["config_dir"].'/50-user~');
-		if(is_file($conf["dist"]["amavis"]["config_dir"].'/conf.d/50-user~')) exec('chmod 400 '.$conf["dist"]["amavis"]["config_dir"].'/conf.d/50-user~');
+		if(is_file($conf["amavis"]["config_dir"].'/conf.d/50-user')) copy($conf["amavis"]["config_dir"].'/conf.d/50-user',$conf["courier"]["config_dir"].'/50-user~');
+		if(is_file($conf["amavis"]["config_dir"].'/conf.d/50-user~')) exec('chmod 400 '.$conf["amavis"]["config_dir"].'/conf.d/50-user~');
 		$content = rf("tpl/".$configfile.".master");
 		$content = str_replace('{mysql_server_ispconfig_user}',$this->conf['mysql']['ispconfig_user'],$content);
 		$content = str_replace('{mysql_server_ispconfig_password}',$this->conf['mysql']['ispconfig_password'], $content);
 		$content = str_replace('{mysql_server_database}',$this->conf['mysql']['database'],$content);
 		$content = str_replace('{mysql_server_port}',$conf["mysql"]["port"],$content);
 		$content = str_replace('{mysql_server_ip}',$this->conf['mysql']['ip'],$content);
-		wf($conf["dist"]["amavis"]["config_dir"].'/conf.d/50-user',$content);
+		wf($conf["amavis"]["config_dir"].'/conf.d/50-user',$content);
 		
 		// TODO: chmod and chown on the config file
 		
@@ -447,7 +447,7 @@
 		);
 		
 		// Make a backup copy of the main.cf file
-		copy($conf["dist"]["postfix"]["config_dir"].'/main.cf',$conf["dist"]["postfix"]["config_dir"].'/main.cf~2');
+		copy($conf["postfix"]["config_dir"].'/main.cf',$conf["postfix"]["config_dir"].'/main.cf~2');
 		
 		// Executing the postconf commands
 		foreach($postconf_commands as $cmd) {
@@ -456,11 +456,11 @@
 		}
 		
 		// Append the configuration for amavisd to the master.cf file
-		if(is_file($conf["dist"]["postfix"]["config_dir"].'/master.cf')) copy($conf["dist"]["postfix"]["config_dir"].'/master.cf',$conf["dist"]["postfix"]["config_dir"].'/master.cf~');
+		if(is_file($conf["postfix"]["config_dir"].'/master.cf')) copy($conf["postfix"]["config_dir"].'/master.cf',$conf["postfix"]["config_dir"].'/master.cf~');
 		$content = rf("tpl/master_cf_amavis.master");
 		// Only add the content if we had not addded it before
 		if(!stristr("127.0.0.1:10025 inet n - - - - smtpd",$content)) {
-			af($conf["dist"]["postfix"]["config_dir"].'/master.cf',$content);
+			af($conf["postfix"]["config_dir"].'/master.cf',$content);
 		}
 		
 		// Add the clamav user to the amavis group
@@ -483,7 +483,7 @@
 	
 	public function configure_getmail()
     {
-		$config_dir = $this->conf['dist']['getmail']['config_dir'];
+		$config_dir = $this->conf['getmail']['config_dir'];
 
 		$command = "useradd -d $config_dir getmail";
 		caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
@@ -498,7 +498,7 @@
 	
 	public function configure_pureftpd()
     {
-		$config_dir = $this->conf['dist']['pureftpd']['config_dir'];
+		$config_dir = $this->conf['pureftpd']['config_dir'];
 
 		//* configure pam for SMTP authentication agains the ispconfig database
 		$configfile = 'db/mysql.conf';
@@ -528,17 +528,17 @@
 		
 		// configure pam for SMTP authentication agains the ispconfig database
 		$configfile = 'mydns.conf';
-		if(is_file($conf["dist"]["mydns"]["config_dir"].'/'.$configfile)) copy($conf["dist"]["mydns"]["config_dir"].'/'.$configfile,$conf["dist"]["mydns"]["config_dir"].'/'.$configfile.'~');
-		if(is_file($conf["dist"]["mydns"]["config_dir"].'/'.$configfile.'~')) exec('chmod 400 '.$conf["dist"]["mydns"]["config_dir"].'/'.$configfile.'~');
+		if(is_file($conf["mydns"]["config_dir"].'/'.$configfile)) copy($conf["mydns"]["config_dir"].'/'.$configfile,$conf["mydns"]["config_dir"].'/'.$configfile.'~');
+		if(is_file($conf["mydns"]["config_dir"].'/'.$configfile.'~')) exec('chmod 400 '.$conf["mydns"]["config_dir"].'/'.$configfile.'~');
 		$content = rf("tpl/".$configfile.".master");
 		$content = str_replace('{mysql_server_ispconfig_user}',$this->conf['mysql']['ispconfig_user'],$content);
 		$content = str_replace('{mysql_server_ispconfig_password}',$this->conf['mysql']['ispconfig_password'], $content);
 		$content = str_replace('{mysql_server_database}',$this->conf['mysql']['database'],$content);
 		$content = str_replace('{mysql_server_host}',$conf["mysql"]["host"],$content);
 		$content = str_replace('{server_id}',$conf["server_id"],$content);
-		wf($conf["dist"]["mydns"]["config_dir"].'/'.$configfile,$content);
-		exec('chmod 600 '.$conf["dist"]["mydns"]["config_dir"].'/'.$configfile);
-		exec('chown root:root '.$conf["dist"]["mydns"]["config_dir"].'/'.$configfile);
+		wf($conf["mydns"]["config_dir"].'/'.$configfile,$content);
+		exec('chmod 600 '.$conf["mydns"]["config_dir"].'/'.$configfile);
+		exec('chown root:root '.$conf["mydns"]["config_dir"].'/'.$configfile);
 	
 	}
 	
@@ -627,8 +627,8 @@
 		
 		//* Copy the ISPConfig vhost for the controlpanel
         //TODO These are missing! should they be "vhost_dist_*_dir" ?
-        $vhost_conf_dir = $this->conf['dist']['apache']['vhost_conf_dir'];
-        $vhost_conf_enabled_dir = $this->conf['dist']['apache']['vhost_conf_enabled_dir'];
+        $vhost_conf_dir = $this->conf['apache']['vhost_conf_dir'];
+        $vhost_conf_enabled_dir = $this->conf['apache']['vhost_conf_enabled_dir'];
 		copy('tpl/apache_ispconfig.vhost.master', "$vhost_conf_dir/ispconfig.vhost");
 		//* and create the symlink
 		if(!is_link("$vhost_conf_enabled_dir/ispconfig.vhost")) {
@@ -653,7 +653,7 @@
 		unlink('crontab.txt');
 		
 		//* Getmail crontab
-        $cf = $this->conf['dist']['getmail'];
+        $cf = $this->conf['getmail'];
 		exec('crontab -u getmail -l > crontab.txt');
 		$existing_cron_jobs = file('crontab.txt');
 		
diff --git a/install/update.php b/install/update.php
index 5cec040..57daca2 100644
--- a/install/update.php
+++ b/install/update.php
@@ -38,8 +38,10 @@
 // Include the base class of the installer class
 require_once('lib/installer_base.lib.php');
 
-include_once("options.conf.php");
-$conf['dist'] = $dist;
+//** Install logfile
+define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log');
+
+//** Get distribution identifier
 $distname = get_distname();
 
 include_once("/usr/local/ispconfig/server/lib/config.inc.php");
@@ -68,24 +70,38 @@
 
 // Initialize the MySQL server connection
 include_once('lib/mysql.lib.php');
-$inst->db = new db();
 
 // Database update is a bit brute force and should be rebuild later ;)
 
 // export the current database data
-if($conf["mysql"]["admin_password"] != '') {
-	system("mysqldump -h $conf[mysql_server_host] -u $conf[mysql_server_admin_user] -p$conf[mysql_server_admin_password] -c -t --add-drop-table --all --quick $conf[mysql_server_database] > existing_db.sql");
-} else {
-	system("mysqldump -h $conf[mysql_server_host] -u $conf[mysql_server_admin_user] -c -t --add-drop-table --all --quick $conf[mysql_server_database] > existing_db.sql");
+if( empty($conf["mysql"]["admin_password"]) ) {
+
+	$conf["mysql"]["admin_password"] = $inst->free_query('MySQL root password', $conf['mysql']['admin_password']);
+}
+
+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();
+
+if( !$inst->db->query('DROP DATABASE IF EXISTS '.$conf['mysql']['database']) ) {
+
+	$inst->error('Unable to drop MySQL database: '.$conf['mysql']['database'].'.');
 }
 
 
-// Delete the old database
-exec("/etc/init.d/mysql stop");
+/*exec("/etc/init.d/mysql stop");
 sleep(3);
 if($conf["mysql"]["database"] != '') exec("rm -rf /var/lib/mysql/".$conf["mysql"]["database"]);
 exec("/etc/init.d/mysql start");
-sleep(5);
+sleep(5);*/
 
 // Create the mysql database
 $inst->configure_database();
@@ -98,9 +114,9 @@
 
 // load old data back into database
 if($conf["mysql"]["admin_password"] != '') {
-	system("mysql -h $conf[mysql_server_host] -u $conf[mysql_server_admin_user] -p$conf[mysql_server_admin_password] $conf[mysql_server_database] < existing_db.sql");
+	system("mysql -h ".$conf['mysql']['host']." -u ".$conf['mysql']['admin_user']." -p".$conf['mysql']['admin_password']." ".$conf['mysql']['database']." < existing_db.sql");
 } else {
-	system("mysql -h $conf[mysql_server_host] -u $conf[mysql_server_admin_user] $conf[mysql_server_database] < existing_db.sql");
+	system("mysql -h ".$conf['mysql']['host']." -u ".$conf['mysql']['admin_user']." ".$conf['mysql']['database']." < existing_db.sql");
 }
 // Configure postfix
 $inst->configure_postfix('dont-create-certs');

--
Gitblit v1.9.1