> 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 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_once('dist/lib/'.$distname.'.lib.php'); include_once('dist/conf/'.$distname.'.conf.php'); //** 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"; //** 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(); if( !$inst->db->query('DROP DATABASE IF EXISTS '.$conf['mysql']['database']) ) { $inst->error('Unable to drop MySQL database: '.$conf['mysql']['database'].'.'); } //** Create the mysql database $inst->configure_database(); //** empty all databases $db_tables = $inst->db->getTables(); foreach($db_tables as $table) { $inst->db->query("TRUNCATE $table"); } //** load old data back into database if( !empty($conf["mysql"]["admin_password"]) ) { 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']['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'); if($reconfigure_services_answer == 'yes') { //** Configure postfix $inst->configure_postfix('dont-create-certs'); //** Configure saslauthd swriteln('Configuring SASL'); $inst->configure_saslauthd(); //** Configure PAM swriteln('Configuring PAM'); $inst->configure_pam(); //** Configure courier swriteln('Configuring Courier'); $inst->configure_courier(); //** Configure Spamasassin swriteln('Configuring Spamassassin'); $inst->configure_spamassassin(); //** Configure Amavis swriteln('Configuring Amavisd'); $inst->configure_amavis(); //** Configure Getmail swriteln('Configuring Getmail'); $inst->configure_getmail(); //** 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 Crontab $update_crontab_answer = $inst->simple_query('Reconfigure Services?', array('yes','no'),'yes'); if($update_crontab_answer == 'yes') { swriteln('Updating Crontab'); $inst->install_crontab(); } //** 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"; ?>