>This script is for internal use only! Please use update.php! \n\n"; exit; } //** Include the library with the basic installer functions require_once 'lib/install.lib.php'; //** Include the library with the basic updater functions require_once 'lib/update.lib.php'; //** Include the base class of the installer class require_once 'lib/installer_base.lib.php'; //** Ensure that current working directory is install directory $cur_dir = getcwd(); if(realpath(dirname(__FILE__)) != $cur_dir) die("Please run installation/update from _inside_ the install directory!\n"); //** Install logfile define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log'); define('ISPC_INSTALL_ROOT', realpath(dirname(__FILE__).'/../')); //** Get distribution identifier $dist = get_distname(); include_once "/usr/local/ispconfig/server/lib/config.inc.php"; $conf_old = $conf; unset($conf); if($dist['id'] == '') die('Linux distribution or version not recognized.'); //** Include the distribution-specific installer class library and configuration if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once 'dist/lib/'.$dist['baseid'].'.lib.php'; include_once 'dist/lib/'.$dist['id'].'.lib.php'; include_once 'dist/conf/'.$dist['id'].'.conf.php'; //** Get hostname exec('hostname -f', $tmp_out); $conf['hostname'] = $tmp_out[0]; unset($tmp_out); //** Set the mysql login information $conf["mysql"]["host"] = $conf_old["db_host"]; $conf["mysql"]["database"] = $conf_old["db_database"]; $conf['mysql']['charset'] = 'utf8'; $conf["mysql"]["ispconfig_user"] = $conf_old["db_user"]; $conf["mysql"]["ispconfig_password"] = $conf_old["db_password"]; $conf['language'] = $conf_old['language']; if($conf['language'] == '{language}') $conf['language'] = 'en'; 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"]; if(isset($conf_old["dbmaster_user"])) $conf["mysql"]["master_ispconfig_user"] = $conf_old["dbmaster_user"]; if(isset($conf_old["dbmaster_password"])) $conf["mysql"]["master_ispconfig_password"] = $conf_old["dbmaster_password"]; //* Check if this is a master / slave setup $conf['mysql']['master_slave_setup'] = 'n'; if($conf["mysql"]["master_host"] != '' && $conf["mysql"]["host"] != $conf["mysql"]["master_host"]) { $conf['mysql']['master_slave_setup'] = 'y'; } // Resolve the IP address of the mysql hostname. if(!$conf['mysql']['ip'] = gethostbyname($conf['mysql']['host'])) die('Unable to resolve hostname'.$conf['mysql']['host']); $conf['server_id'] = intval($conf_old["server_id"]); $conf['ispconfig_log_priority'] = $conf_old["log_priority"]; $inst = new installer(); $inst->is_update = true; //** Detect the installed applications $inst->find_installed_apps(); //** Initialize the MySQL server connection include_once 'lib/mysql.lib.php'; //** Database update is a bit brute force and should be rebuild later ;) /* * Try to read the DB-admin settings */ $clientdb_host = ''; $clientdb_user = ''; $clientdb_password = ''; include_once "/usr/local/ispconfig/server/lib/mysql_clientdb.conf"; $conf["mysql"]["admin_user"] = $clientdb_user; $conf["mysql"]["admin_password"] = $clientdb_password; $clientdb_host = ''; $clientdb_user = ''; $clientdb_password = ''; //** There is a error if user for mysql admin_password if empty if( empty($conf["mysql"]["admin_password"]) ) { die("internal error - MYSQL-Root passord not known"); } //** Test mysql root connection if(!@mysql_connect($conf["mysql"]["host"], $conf["mysql"]["admin_user"], $conf["mysql"]["admin_password"])) { die("internal error - MYSQL-Root passord wrong"); } /* * Check all tables */ checkDbHealth(); /* * Prepare the dump of the database */ prepareDBDump(); //* initialize the database $inst->db = new db(); /* * The next line is a bit tricky! * At the automated update we have no connection to the master-db (we don't need it, because * there are only TWO points, where this is needed) * 1) update the rights --> the autoupdater sets the rights of all clients when the server is * autoupdated) * 2) update the server-settings (is web installed, is mail installed) --> the autoupdates * doesn't change any of this settings, so there ist no need to update this. * This means, the autoupdater did not need any connection to the master-db (only to the local bd * of the master-server). To avoid any problems, we set the master-db to the local one. */ $inst->dbmaster = $inst->db; /* * If it is NOT a master-slave - Setup then we are at the Master-DB. So set all rights */ if($conf['mysql']['master_slave_setup'] != 'y') { $inst->grant_master_database_rights(true); } /* * dump the new Database and reconfigure the server.ini */ updateDbAndIni(); /* * Reconfigure all Services */ if($conf['services']['mail'] == true) { //** Configure postfix swriteln('Configuring Postfix'); $inst->configure_postfix('dont-create-certs'); //** Configure mailman swriteln('Configuring Mailman'); $inst->configure_mailman('update'); //* Configure Jailkit swriteln('Configuring Jailkit'); $inst->configure_jailkit(); if($conf['dovecot']['installed'] == true) { //* Configure dovecot swriteln('Configuring Dovecot'); $inst->configure_dovecot(); } else { //** 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(); } if($conf['services']['web'] == true) { //** Configure Pureftpd swriteln('Configuring Pureftpd'); $inst->configure_pureftpd(); } if($conf['services']['dns'] == true) { //* Configure DNS if($conf['powerdns']['installed'] == true) { swriteln('Configuring PowerDNS'); $inst->configure_powerdns(); } elseif($conf['bind']['installed'] == true) { swriteln('Configuring BIND'); $inst->configure_bind(); } else { swriteln('Configuring MyDNS'); $inst->configure_mydns(); } } if($conf['services']['web']) { if($conf['webserver']['server_type'] == 'apache'){ //** Configure Apache swriteln('Configuring Apache'); $inst->configure_apache(); //** Configure vlogger swriteln('Configuring vlogger'); $inst->configure_vlogger(); } else { //** Configure nginx swriteln('Configuring nginx'); $inst->configure_nginx(); } //** Configure apps vhost swriteln('Configuring Apps vhost'); $inst->configure_apps_vhost(); } //* Configure DBServer swriteln('Configuring Database'); $inst->configure_dbserver(); //if(@is_dir('/etc/Bastille')) { //* Configure Firewall swriteln('Configuring Firewall'); $inst->configure_firewall(); //} //** Configure ISPConfig swriteln('Updating ISPConfig'); //** Customise the port ISPConfig runs on $conf['apache']['vhost_port'] = get_ispconfig_port_number(); $inst->install_ispconfig(); //** Configure Crontab swriteln('Updating Crontab'); $inst->install_crontab(); //** Restart services: swriteln('Restarting services ...'); if($conf['mysql']['installed'] == true && $conf['mysql']['init_script'] != '') system($inst->getinitcommand($conf['mysql']['init_script'], 'reload')); if($conf['services']['mail']) { if($conf['postfix']['installed'] == true && $conf['postfix']['init_script'] != '') system($inst->getinitcommand($conf['postfix']['init_script'], 'restart')); if($conf['saslauthd']['installed'] == true && $conf['saslauthd']['init_script'] != '') system($inst->getinitcommand($conf['saslauthd']['init_script'], 'restart')); if($conf['amavis']['installed'] == true && $conf['amavis']['init_script'] != '') system($inst->getinitcommand($conf['amavis']['init_script'], 'restart')); if($conf['clamav']['installed'] == true && $conf['clamav']['init_script'] != '') system($inst->getinitcommand($conf['clamav']['init_script'], 'restart')); if($conf['courier']['installed'] == true){ if($conf['courier']['courier-authdaemon'] != '') system($inst->getinitcommand($conf['courier']['courier-authdaemon'], 'restart')); if($conf['courier']['courier-imap'] != '') system($inst->getinitcommand($conf['courier']['courier-imap'], 'restart')); if($conf['courier']['courier-imap-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-imap-ssl'], 'restart')); if($conf['courier']['courier-pop'] != '') system($inst->getinitcommand($conf['courier']['courier-pop'], 'restart')); if($conf['courier']['courier-pop-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-pop-ssl'], 'restart')); } if($conf['dovecot']['installed'] == true && $conf['dovecot']['init_script'] != '') system($inst->getinitcommand($conf['dovecot']['init_script'], 'restart')); if($conf['mailman']['installed'] == true && $conf['mailman']['init_script'] != '') system($inst->getinitcommand($conf['mailman']['init_script'], 'restart')); } if($conf['services']['web']) { if($conf['webserver']['server_type'] == 'apache' && $conf['apache']['init_script'] != '') system($inst->getinitcommand($conf['apache']['init_script'], 'restart')); //* Reload is enough for nginx if($conf['webserver']['server_type'] == 'nginx' && $conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'reload')); if($conf['pureftpd']['installed'] == true && $conf['pureftpd']['init_script'] != '') system($inst->getinitcommand($conf['pureftpd']['init_script'], 'restart')); } if($conf['services']['dns']) { if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '') system($inst->getinitcommand($conf['mydns']['init_script'], 'restart').' &> /dev/null'); if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '') system($inst->getinitcommand($conf['powerdns']['init_script'], 'restart').' &> /dev/null'); if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '') system($inst->getinitcommand($conf['bind']['init_script'], 'restart').' &> /dev/null'); } echo "Update finished.\n"; ?>