diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 3ad7bc9e03ba00548db55d8b12080f1b2b82c440..c333a5ef1fa02d1e940973e1c26c39f1121e393a 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -175,6 +175,19 @@ class installer_base { return $force; } + public function reconfigure_app($service, $reconfigure_services_answer) { + $reconfigure = false; + if ($reconfigure_services_answer != 'selected') { + $reconfigure = true; + } else { + if(strtolower($this->simple_query("Reconfigure $service", array('y', 'n'), 'y') ) == 'y') { + $reconfigure = true; + } else { + swriteln("Skip reconfigure $service\n"); + } + } + return $reconfigure; + } /** Create the database for ISPConfig */ diff --git a/install/update.php b/install/update.php index 1fec2cccb106ab41a00fb2b47da1bf272665c5b0..970a107fb254d6a937d4d64835b40f161a43dd61 100644 --- a/install/update.php +++ b/install/update.php @@ -300,30 +300,35 @@ if($reconfigure_master_database_rights_answer == 'yes') { //} //** Shall the services be reconfigured during update -$reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no'), 'yes','reconfigure_services'); +$reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no', 'selected'), 'yes','reconfigure_services'); -if($reconfigure_services_answer == 'yes') { +if($reconfigure_services_answer == 'yes' || $reconfigure_services_answer == 'selected') { if($conf['services']['mail']) { + //** Configure postfix - swriteln('Configuring Postfix'); - $inst->configure_postfix('dont-create-certs'); + if($inst->reconfigure_app('Postfix', $reconfigure_services_answer)) { + swriteln('Configuring Postfix'); + $inst->configure_postfix('dont-create-certs'); + } //** Configure mailman - if($conf['mailman']['installed'] == true) { + if($conf['mailman']['installed'] == true && $inst->reconfigure_app('Mailman', $reconfigure_services_answer)) { swriteln('Configuring Mailman'); $inst->configure_mailman('update'); } //* Configure Jailkit - swriteln('Configuring Jailkit'); - $inst->configure_jailkit(); + if($inst->reconfigure_app('Jailkit', $reconfigure_services_answer)) { + swriteln('Configuring Jailkit'); + $inst->configure_jailkit(); + } - if($conf['dovecot']['installed'] == true) { + if($conf['dovecot']['installed'] == true && $inst->reconfigure_app('Dovecot', $reconfigure_services_answer)) { //* Configure dovecot swriteln('Configuring Dovecot'); $inst->configure_dovecot(); - } else { + } elseif ($conf['courier']['installed'] == true && $inst->reconfigure_app('Courier', $reconfigure_services_answer)) { //** Configure saslauthd swriteln('Configuring SASL'); $inst->configure_saslauthd(); @@ -338,27 +343,25 @@ if($reconfigure_services_answer == 'yes') { } //** Configure Spamasassin - swriteln('Configuring Spamassassin'); - $inst->configure_spamassassin(); + if($inst->reconfigure_app('Spamassassin', $reconfigure_services_answer)) { + swriteln('Configuring Spamassassin'); + $inst->configure_spamassassin(); + } //** Configure Amavis - if($conf['amavis']['installed'] == true) { + if($conf['amavis']['installed'] == true && $inst->reconfigure_app('Amavisd', $reconfigure_services_answer)) { swriteln('Configuring Amavisd'); $inst->configure_amavis(); } //** Configure Getmail - swriteln('Configuring Getmail'); - $inst->configure_getmail(); - } - - if($conf['services']['web'] && $conf['pureftpd']['installed'] == true) { - //** Configure Pureftpd - swriteln('Configuring Pureftpd'); - $inst->configure_pureftpd(); + if ($inst->reconfigure_app('Getmail', $reconfigure_services_answer)) { + swriteln('Configuring Getmail'); + $inst->configure_getmail(); + } } - if($conf['services']['dns']) { + if($conf['services']['dns'] && $inst->reconfigure_app('DNS', $reconfigure_services_answer)) { //* Configure DNS if($conf['powerdns']['installed'] == true) { swriteln('Configuring PowerDNS'); @@ -373,37 +376,40 @@ if($reconfigure_services_answer == 'yes') { } 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(); + + if($conf['pureftpd']['installed'] == true && $inst->reconfigure_app('Pureftpd', $reconfigure_services_answer)) { + //** Configure Pureftpd + swriteln('Configuring Pureftpd'); + $inst->configure_pureftpd(); } - //** Configure apps vhost - swriteln('Configuring Apps vhost'); - $inst->configure_apps_vhost(); - } + if($inst->reconfigure_app('Web-Server', $reconfigure_services_answer)) { + 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(); + } + } - if($conf['services']['xmpp']) { + if($conf['services']['xmpp'] && $inst->reconfigure_app('XMPP', $reconfigure_services_answer)) { //** Configure Metronome XMPP $inst->configure_xmpp('dont-create-certs'); } - - //* Configure DBServer - swriteln('Configuring Database'); - $inst->configure_dbserver(); - - - if($conf['services']['firewall']) { + if($conf['services']['firewall'] && $inst->reconfigure_app('Firewall', $reconfigure_services_answer)) { if($conf['ufw']['installed'] == true) { //* Configure Ubuntu Firewall $conf['services']['firewall'] = true; @@ -416,6 +422,10 @@ if($reconfigure_services_answer == 'yes') { } } + //* Configure DBServer + swriteln('Configuring Database'); + $inst->configure_dbserver(); + /* if($conf['squid']['installed'] == true) { swriteln('Configuring Squid');