Marius Cramer
2014-01-27 e4e2a430bbbf2cd9516f4d01f2b49a10ff981d5c
install/autoupdate.php
@@ -31,6 +31,8 @@
   ISPConfig 3 updater.
*/
die("Autoupdate has been removed.\nPlease start the update on the shell with the command ispconfig_update.sh as root user.\n");
error_reporting(E_ALL|E_STRICT);
/*
@@ -39,7 +41,7 @@
if (!file_exists('autoupdate')) {
   //** The banner on the command line
   echo "\n\n".str_repeat('-',80)."\n";
   echo "\n\n".str_repeat('-', 80)."\n";
   echo " _____ ___________   _____              __ _         ____
|_   _/  ___| ___ \ /  __ \            / _(_)       /__  \
  | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _    _/ /
@@ -48,19 +50,19 @@
 \___/\____/\_|      \____/\___/|_| |_|_| |_|\__, | \____/
                                              __/ |
                                             |___/ ";
   echo "\n".str_repeat('-',80)."\n";
   echo "\n".str_repeat('-', 80)."\n";
   echo "\n\n>>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');
require_once 'lib/install.lib.php';
//** Include the library with the basic updater functions
require_once('lib/update.lib.php');
require_once 'lib/update.lib.php';
//** Include the base class of the installer class
require_once('lib/installer_base.lib.php');
require_once 'lib/installer_base.lib.php';
//** Ensure that current working directory is install directory
$cur_dir = getcwd();
@@ -73,16 +75,16 @@
//** Get distribution identifier
$dist = get_distname();
include_once("/usr/local/ispconfig/server/lib/config.inc.php");
include_once "/usr/local/ispconfig/server/lib/config.inc.php";
$conf_old = $conf;
unset($conf);
if($dist['id'] == '') die('Linux Dustribution or Version not recognized.');
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');
//** 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);
@@ -122,30 +124,40 @@
$inst->find_installed_apps();
//** Initialize the MySQL server connection
include_once('lib/mysql.lib.php');
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");
 */
$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      = '';
$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");
}
/*
 *  Prepare the dump of the database
 *  Check all tables
*/
checkDbHealth();
/*
 *  Prepare the dump of the database
*/
prepareDBDump();
@@ -153,43 +165,59 @@
$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->dbmaster = $inst->db;
   $inst->grant_master_database_rights();
   $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();
   //** Configure saslauthd
   swriteln('Configuring SASL');
   $inst->configure_saslauthd();
   //** Configure PAM
   swriteln('Configuring PAM');
   $inst->configure_pam();
   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();
@@ -200,8 +228,10 @@
   $inst->configure_spamassassin();
   //** Configure Amavis
   swriteln('Configuring Amavisd');
   $inst->configure_amavis();
   if($conf['amavis']['installed'] == true) {
      swriteln('Configuring Amavisd');
      $inst->configure_amavis();
   }
   //** Configure Getmail
   swriteln('Configuring Getmail');
@@ -228,14 +258,20 @@
   }
}
if($conf['services']['web'] == true) {
   //** Configure Apache
   swriteln('Configuring Apache');
   $inst->configure_apache();
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();
      //** Configure vlogger
      swriteln('Configuring vlogger');
      $inst->configure_vlogger();
   } else {
      //** Configure nginx
      swriteln('Configuring nginx');
      $inst->configure_nginx();
   }
   //** Configure apps vhost
   swriteln('Configuring Apps vhost');
@@ -251,7 +287,7 @@
//if(@is_dir('/etc/Bastille')) {
//* Configure Firewall
swriteln('Configuring Firewall');
$inst->configure_firewall();
$inst->configure_bastille_firewall();
//}
//** Configure ISPConfig
@@ -259,7 +295,7 @@
//** Customise the port ISPConfig runs on
$conf['apache']['vhost_port'] = '8080';
$conf['apache']['vhost_port'] = get_ispconfig_port_number();
$inst->install_ispconfig();
@@ -269,29 +305,34 @@
//** Restart services:
swriteln('Restarting services ...');
if($conf['mysql']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['mysql']['init_script']))               system($conf['init_scripts'].'/'.$conf['mysql']['init_script'].' restart');
if($conf['mysql']['installed'] == true && $conf['mysql']['init_script'] != '') system($inst->getinitcommand($conf['mysql']['init_script'], 'reload'));
if($conf['services']['mail']) {
   if($conf['postfix']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['postfix']['init_script']))            system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart');
   if($conf['saslauthd']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['saslauthd']['init_script']))         system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart');
   if($conf['amavis']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['amavis']['init_script']))               system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart');
   if($conf['clamav']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['clamav']['init_script']))               system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart');
   if($conf['courier']['courier-authdaemon'] != '' && is_file($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'])) system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart');
   if($conf['courier']['courier-imap'] != '' && is_file($conf['init_scripts'].'/'.$conf['courier']['courier-imap']))          system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart');
   if($conf['courier']['courier-imap-ssl'] != '' && is_file($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl']))    system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart');
   if($conf['courier']['courier-pop'] != '' && is_file($conf['init_scripts'].'/'.$conf['courier']['courier-pop']))             system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart');
   if($conf['courier']['courier-pop-ssl'] != '' && is_file($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl']))       system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart');
   if($conf['dovecot']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['dovecot']['init_script']))       system($conf['init_scripts'].'/'.$conf['dovecot']['init_script'].' restart');
   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['apache']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['apache']['init_script']))             system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart');
   if($conf['pureftpd']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['pureftpd']['init_script']))            system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart');
   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'] != '' && is_file($conf['init_scripts'].'/'.$conf['mydns']['init_script']))               system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null');
   if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['powerdns']['init_script']))               system($conf['init_scripts'].'/'.$conf['powerdns']['init_script'].' restart &> /dev/null');
   if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['bind']['init_script']))               system($conf['init_scripts'].'/'.$conf['bind']['init_script'].' restart &> /dev/null');
   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";
?>
?>