Marius Cramer
2015-08-06 37b29231e47a0c4458dc1c15d98588f16f07e1e2
commit | author | age
8896ab 1 <?php
N 2
3 /*
4 Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh
5 All rights reserved.
6
7 Redistribution and use in source and binary forms, with or without modification,
8 are permitted provided that the following conditions are met:
9
10     * Redistributions of source code must retain the above copyright notice,
11       this list of conditions and the following disclaimer.
12     * Redistributions in binary form must reproduce the above copyright notice,
13       this list of conditions and the following disclaimer in the documentation
14       and/or other materials provided with the distribution.
15     * Neither the name of ISPConfig nor the names of its contributors
16       may be used to endorse or promote products derived from this software without
17       specific prior written permission.
18
19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
26 OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */
30
31 /*
32     ISPConfig 3 updater.
b04e82 33     
TB 34     -------------------------------------------------------------------------------------
35     - Interactive update
36     -------------------------------------------------------------------------------------
37     run:
38     
39     php update.php
40     
41     -------------------------------------------------------------------------------------
42     - Noninteractive (autoupdate) mode
43     -------------------------------------------------------------------------------------
44     
45     The autoupdate mode can read the updater questions from a .ini style file or from
46     a php config file. Examples for both file types are in the docs folder. 
47     See autoinstall.ini.sample and autoinstall.conf_sample.php.
48     
49     run:
50     
51     php update.php --autoinstall=autoinstall.ini
52     
53     or
54     
55     php update.php --autoinstall=autoinstall.conf.php
56     
8896ab 57 */
N 58
59 error_reporting(E_ALL|E_STRICT);
60
992797 61 define('INSTALLER_RUN', true);
MC 62
8896ab 63 //** The banner on the command line
b1a6a5 64 echo "\n\n".str_repeat('-', 80)."\n";
8896ab 65 echo " _____ ___________   _____              __ _         ____
N 66 |_   _/  ___| ___ \ /  __ \            / _(_)       /__  \
67   | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _    _/ /
68   | |  `--. \  __/  | |    / _ \| '_ \|  _| |/ _` |  |_ |
69  _| |_/\__/ / |     | \__/\ (_) | | | | | | | (_| | ___\ \
70  \___/\____/\_|      \____/\___/|_| |_|_| |_|\__, | \____/
71                                               __/ |
72                                              |___/ ";
b1a6a5 73 echo "\n".str_repeat('-', 80)."\n";
8896ab 74 echo "\n\n>> Update  \n\n";
N 75
76 //** Include the library with the basic installer functions
b1a6a5 77 require_once 'lib/install.lib.php';
8896ab 78
N 79 //** Include the library with the basic updater functions
b1a6a5 80 require_once 'lib/update.lib.php';
8896ab 81
N 82 //** Include the base class of the installer class
b1a6a5 83 require_once 'lib/installer_base.lib.php';
8896ab 84
N 85 //** Ensure that current working directory is install directory
86 $cur_dir = getcwd();
87 if(realpath(dirname(__FILE__)) != $cur_dir) die("Please run installation/update from _inside_ the install directory!\n");
88
89 //** Install logfile
90 define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log');
91 define('ISPC_INSTALL_ROOT', realpath(dirname(__FILE__).'/../'));
92
ccbf14 93 //** Include the templating lib
TB 94 require_once 'lib/classes/tpl.inc.php';
95
8896ab 96 //** Check for ISPConfig 2.x versions
N 97 if(is_dir('/root/ispconfig') || is_dir('/home/admispconfig')) {
98     die('This software cannot be installed on a server wich runs ISPConfig 2.x.');
99 }
100
101 //** Get distribution identifier
102 $dist = get_distname();
103
b1a6a5 104 include_once "/usr/local/ispconfig/server/lib/config.inc.php";
8896ab 105 $conf_old = $conf;
N 106 unset($conf);
107
108 if($dist['id'] == '') die('Linux distribution or version not recognized.');
109
bcd725 110 //** Include the autoinstaller configuration (for non-interactive setups)
FT 111 error_reporting(E_ALL ^ E_NOTICE);
b04e82 112
TB 113 //** Get commandline options
114 $cmd_opt = getopt('', array('autoinstall::'));
115
116 //** Load autoinstall file
117 if(isset($cmd_opt['autoinstall']) && is_file($cmd_opt['autoinstall'])) {
118     $path_parts = pathinfo($cmd_opt['autoinstall']);
119     if($path_parts['extension'] == 'php') {
120         include_once $cmd_opt['autoinstall'];
121     } elseif($path_parts['extension'] == 'ini') {
122         $tmp = ini_to_array(file_get_contents('autoinstall.ini'));
123         $autoinstall = $tmp['install'] + $tmp['ssl_cert'] + $tmp['expert'] + $tmp['update'];
124         unset($tmp);
125     }
126     unset($path_parts);
127     define('AUTOINSTALL', true);
128 } else {
129     $autoinstall = array();
130     define('AUTOINSTALL', false);
131 }
bcd725 132
8896ab 133 //** Include the distribution-specific installer class library and configuration
b1a6a5 134 if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once 'dist/lib/'.$dist['baseid'].'.lib.php';
MC 135 include_once 'dist/lib/'.$dist['id'].'.lib.php';
136 include_once 'dist/conf/'.$dist['id'].'.conf.php';
8896ab 137
N 138 //** Get hostname
139 exec('hostname -f', $tmp_out);
140 $conf['hostname'] = $tmp_out[0];
141 unset($tmp_out);
142
143 //** Set the mysql login information
144 $conf["mysql"]["host"] = $conf_old["db_host"];
145 $conf["mysql"]["database"] = $conf_old["db_database"];
146 $conf['mysql']['charset'] = 'utf8';
147 $conf["mysql"]["ispconfig_user"] = $conf_old["db_user"];
148 $conf["mysql"]["ispconfig_password"] = $conf_old["db_password"];
149 $conf['language'] = $conf_old['language'];
d6b361 150 $conf['theme'] = $conf_old['theme'];
8896ab 151 if($conf['language'] == '{language}') $conf['language'] = 'en';
355efb 152 $conf['timezone'] = (isset($conf_old['timezone']))?$conf_old['timezone']:'UTC';
8cf78b 153 if($conf['timezone'] == '{timezone}' or trim($conf['timezone']) == '') $conf['timezone'] = 'UTC';
992797 154 $conf['language_file_import_enabled'] = (isset($conf_old['language_file_import_enabled']))?$conf_old['language_file_import_enabled']:true;
8896ab 155
N 156 if(isset($conf_old["dbmaster_host"])) $conf["mysql"]["master_host"] = $conf_old["dbmaster_host"];
157 if(isset($conf_old["dbmaster_database"])) $conf["mysql"]["master_database"] = $conf_old["dbmaster_database"];
158 if(isset($conf_old["dbmaster_user"])) $conf["mysql"]["master_ispconfig_user"] = $conf_old["dbmaster_user"];
159 if(isset($conf_old["dbmaster_password"])) $conf["mysql"]["master_ispconfig_password"] = $conf_old["dbmaster_password"];
160
161 //* Check if this is a master / slave setup
162 if($conf["mysql"]["master_host"] != '' && $conf["mysql"]["host"] != $conf["mysql"]["master_host"]) {
163     $conf['mysql']['master_slave_setup'] = 'y';
164 }
165
166 // Resolve the IP address of the mysql hostname.
167 if(!$conf['mysql']['ip'] = gethostbyname($conf['mysql']['host'])) die('Unable to resolve hostname'.$conf['mysql']['host']);
168
169 $conf['server_id'] = intval($conf_old["server_id"]);
170 $conf['ispconfig_log_priority'] = $conf_old["log_priority"];
171
172 $inst = new installer();
173 $inst->is_update = true;
174
175 //** Detect the installed applications
176 $inst->find_installed_apps();
177
8cf78b 178 echo "This application will update ISPConfig 3 on your server.\n\n";
T 179
180 //* Make a backup before we start the update
b04e82 181 $do_backup = $inst->simple_query('Shall the script create a ISPConfig backup in /var/backup/ now?', array('yes', 'no'), 'yes','do_backup');
bcd725 182
8cf78b 183 if($do_backup == 'yes') {
b1a6a5 184
8cf78b 185     //* Create the backup directory
cc6568 186     $backup_path = '/var/backup/ispconfig_'.@date('Y-m-d_H-i');
8cf78b 187     $conf['backup_path'] = $backup_path;
T 188     exec("mkdir -p $backup_path");
189     exec("chown root:root $backup_path");
190     exec("chmod 700 $backup_path");
b1a6a5 191
8cf78b 192     //* Do the backup
T 193     swriteln('Creating backup of "/usr/local/ispconfig" directory...');
b1a6a5 194     exec("tar pcfz $backup_path/ispconfig_software.tar.gz /usr/local/ispconfig 2> /dev/null", $out, $returnvar);
8cf78b 195     if($returnvar != 0) die("Backup failed. We stop here...\n");
b1a6a5 196
8cf78b 197     swriteln('Creating backup of "/etc" directory...');
b1a6a5 198     exec("tar pcfz $backup_path/etc.tar.gz /etc 2> /dev/null", $out, $returnvar);
8cf78b 199     if($returnvar != 0) die("Backup failed. We stop here...\n");
b1a6a5 200
8cf78b 201     exec("chown root:root $backup_path/*.tar.gz");
T 202     exec("chmod 700 $backup_path/*.tar.gz");
203 }
204
8896ab 205
N 206 //** Initialize the MySQL server connection
b1a6a5 207 include_once 'lib/mysql.lib.php';
8896ab 208
N 209 //** Database update is a bit brute force and should be rebuild later ;)
210
211 /*
212  * Try to read the DB-admin settings
213  */
b1a6a5 214 $clientdb_host   = '';
MC 215 $clientdb_user   = '';
216 $clientdb_password  = '';
217 include_once "/usr/local/ispconfig/server/lib/mysql_clientdb.conf";
8896ab 218 $conf["mysql"]["admin_user"] = $clientdb_user;
N 219 $conf["mysql"]["admin_password"] = $clientdb_password;
b1a6a5 220 $clientdb_host   = '';
MC 221 $clientdb_user   = '';
222 $clientdb_password  = '';
8896ab 223
edf806 224 //** Test mysql root connection
T 225 $finished = false;
226 do {
b1a6a5 227     if(@mysql_connect($conf["mysql"]["host"], $conf["mysql"]["admin_user"], $conf["mysql"]["admin_password"])) {
edf806 228         $finished = true;
T 229     } else {
230         swriteln($inst->lng('Unable to connect to mysql server').' '.mysql_error());
b04e82 231         $conf["mysql"]["admin_password"] = $inst->free_query('MySQL root password', $conf['mysql']['admin_password'],'mysql_root_password');
edf806 232     }
T 233 } while ($finished == false);
234 unset($finished);
8896ab 235
N 236 /*
b1a6a5 237  *  Prepare the dump of the database
8896ab 238  */
N 239 prepareDBDump();
240
241 //* initialize the database
242 $inst->db = new db();
243
244 //* initialize the master DB, if we have a multiserver setup
245 if($conf['mysql']['master_slave_setup'] == 'y') {
b1a6a5 246     //** Get MySQL root credentials
MC 247     $finished = false;
248     do {
b04e82 249         $tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host'],'mysql_master_hostname');
82e9b9 250         $tmp_mysql_server_port = $inst->free_query('MySQL master server port', $conf['mysql']['master_port'],'mysql_master_port');
b04e82 251         $tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user'],'mysql_master_root_user');     
TB 252         $tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password'],'mysql_master_root_password');
253         $tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database'],'mysql_master_database');
b1a6a5 254
MC 255         //* Initialize the MySQL server connection
7de1b7 256         if(@mysql_connect($tmp_mysql_server_host . ':' . (int)$tmp_mysql_server_port, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) {
b1a6a5 257             $conf['mysql']['master_host'] = $tmp_mysql_server_host;
82e9b9 258             $conf['mysql']['master_port'] = $tmp_mysql_server_port;
b1a6a5 259             $conf['mysql']['master_admin_user'] = $tmp_mysql_server_admin_user;
MC 260             $conf['mysql']['master_admin_password'] = $tmp_mysql_server_admin_password;
261             $conf['mysql']['master_database'] = $tmp_mysql_server_database;
262             $finished = true;
263         } else {
264             swriteln($inst->lng('Unable to connect to mysql server').' '.mysql_error());
265         }
266     } while ($finished == false);
267     unset($finished);
268
269     // initialize the connection to the master database
270     $inst->dbmaster = new db();
271     if($inst->dbmaster->linkId) $inst->dbmaster->closeConn();
305dda 272     $inst->dbmaster->setDBData($conf['mysql']["master_host"], $conf['mysql']["master_admin_user"], $conf['mysql']["master_admin_password"]);
MC 273     $inst->dbmaster->setDBName($conf['mysql']["master_database"]);
8896ab 274 } else {
N 275     $inst->dbmaster = $inst->db;
276 }
277
278 /*
279  *  Check all tables
280 */
281 checkDbHealth();
282
283 /*
284  *  dump the new Database and reconfigure the server.ini
285  */
286 updateDbAndIni();
287
288 /*
289  * Reconfigure the permisson if needed
290  * (if this is done at client side, only this client is updated.
291  * If this is done at server side, all clients are updated.
292  */
293 //if($conf_old['dbmaster_user'] != '' or $conf_old['dbmaster_host'] != '') {
b1a6a5 294 //** Update master database rights
b04e82 295 $reconfigure_master_database_rights_answer = $inst->simple_query('Reconfigure Permissions in master database?', array('yes', 'no'), 'no','reconfigure_permissions_in_master_database');
8896ab 296
b1a6a5 297 if($reconfigure_master_database_rights_answer == 'yes') {
MC 298     $inst->grant_master_database_rights();
299 }
8896ab 300 //}
N 301
302 //** Shall the services be reconfigured during update
b04e82 303 $reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no'), 'yes','reconfigure_services');
8896ab 304
N 305 if($reconfigure_services_answer == 'yes') {
b1a6a5 306
8896ab 307     if($conf['services']['mail']) {
N 308         //** Configure postfix
309         swriteln('Configuring Postfix');
310         $inst->configure_postfix('dont-create-certs');
b1a6a5 311
8896ab 312         //** Configure mailman
f9d95c 313         if($conf['mailman']['installed'] == true) {
CS 314             swriteln('Configuring Mailman');
315             $inst->configure_mailman('update');
316         }
b1a6a5 317
8896ab 318         //* Configure Jailkit
N 319         swriteln('Configuring Jailkit');
320         $inst->configure_jailkit();
321
322         if($conf['dovecot']['installed'] == true) {
323             //* Configure dovecot
324             swriteln('Configuring Dovecot');
325             $inst->configure_dovecot();
326         } else {
327             //** Configure saslauthd
328             swriteln('Configuring SASL');
329             $inst->configure_saslauthd();
b1a6a5 330
8896ab 331             //** Configure PAM
N 332             swriteln('Configuring PAM');
333             $inst->configure_pam();
b1a6a5 334
8896ab 335             //* Configure courier
N 336             swriteln('Configuring Courier');
337             $inst->configure_courier();
338         }
339
340         //** Configure Spamasassin
341         swriteln('Configuring Spamassassin');
342         $inst->configure_spamassassin();
343
344         //** Configure Amavis
e7516a 345         if($conf['amavis']['installed'] == true) {
CS 346             swriteln('Configuring Amavisd');
347             $inst->configure_amavis();
348         }
8896ab 349
N 350         //** Configure Getmail
351         swriteln('Configuring Getmail');
352         $inst->configure_getmail();
353     }
b1a6a5 354
8896ab 355     if($conf['services']['web'] && $conf['pureftpd']['installed'] == true) {
N 356         //** Configure Pureftpd
357         swriteln('Configuring Pureftpd');
358         $inst->configure_pureftpd();
359     }
b1a6a5 360
8896ab 361     if($conf['services']['dns']) {
N 362         //* Configure DNS
363         if($conf['powerdns']['installed'] == true) {
364             swriteln('Configuring PowerDNS');
365             $inst->configure_powerdns();
366         } elseif($conf['bind']['installed'] == true) {
367             swriteln('Configuring BIND');
368             $inst->configure_bind();
369         } else {
370             swriteln('Configuring MyDNS');
371             $inst->configure_mydns();
372         }
373     }
b1a6a5 374
8896ab 375     if($conf['services']['web']) {
4ffb51 376         if($conf['webserver']['server_type'] == 'apache'){
F 377             //** Configure Apache
378             swriteln('Configuring Apache');
379             $inst->configure_apache();
b1a6a5 380
4ffb51 381             //** Configure vlogger
F 382             swriteln('Configuring vlogger');
383             $inst->configure_vlogger();
384         } else {
385             //** Configure nginx
386             swriteln('Configuring nginx');
387             $inst->configure_nginx();
388         }
b1a6a5 389
8896ab 390         //** Configure apps vhost
N 391         swriteln('Configuring Apps vhost');
392         $inst->configure_apps_vhost();
393     }
394
fbe2d6 395     if($conf['services']['xmpp']) {
MF 396         //** Configure Metronome XMPP
397         $inst->configure_xmpp('dont-create-certs');
398     }
399
8896ab 400
N 401     //* Configure DBServer
402     swriteln('Configuring Database');
403     $inst->configure_dbserver();
404
b1a6a5 405
8896ab 406     if($conf['services']['firewall']) {
bd68aa 407         if($conf['ufw']['installed'] == true) {
MC 408             //* Configure Ubuntu Firewall
409             $conf['services']['firewall'] = true;
410             swriteln('Configuring Ubuntu Firewall');
411             $inst->configure_ufw_firewall();
412         } else {
8896ab 413             //* Configure Bastille Firewall
N 414             swriteln('Configuring Bastille Firewall');
bd68aa 415             $inst->configure_bastille_firewall();
8896ab 416         }
N 417     }
b1a6a5 418
4ffb51 419     /*
8896ab 420     if($conf['squid']['installed'] == true) {
N 421         swriteln('Configuring Squid');
422         $inst->configure_squid();
423     } else if($conf['nginx']['installed'] == true) {
424         swriteln('Configuring Nginx');
425         $inst->configure_nginx();
426     }
4ffb51 427     */
8896ab 428 }
N 429
430 //** Configure ISPConfig
431 swriteln('Updating ISPConfig');
6ba4fa 432 if($conf['apache']['installed'] == true){
FT 433     if(!is_file($conf['apache']['vhost_conf_dir'].'/ispconfig.vhost')) $inst->install_ispconfig_interface = false;
434 }
435 if($conf['nginx']['installed'] == true){
436     if(!is_file($conf['nginx']['vhost_conf_dir'].'/ispconfig.vhost')) $inst->install_ispconfig_interface = false;
437 }
8896ab 438
b67344 439 if ($conf['services']['web'] && $inst->install_ispconfig_interface) {
8896ab 440     //** Customise the port ISPConfig runs on
N 441     $ispconfig_port_number = get_ispconfig_port_number();
bcd725 442     if($autoupdate['ispconfig_port'] == 'default') $autoupdate['ispconfig_port'] = $ispconfig_port_number;
4ffb51 443     if($conf['webserver']['server_type'] == 'nginx'){
b04e82 444         $conf['nginx']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number,'ispconfig_port');
4ffb51 445     } else {
b04e82 446         $conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number,'ispconfig_port');
4ffb51 447     }
b1a6a5 448
MC 449
8896ab 450     // $ispconfig_ssl_default = (is_ispconfig_ssl_enabled() == true)?'y':'n';
b04e82 451     if(strtolower($inst->simple_query('Create new ISPConfig SSL certificate', array('yes', 'no'), 'no','create_new_ispconfig_ssl_cert')) == 'yes') {
8896ab 452         $inst->make_ispconfig_ssl_cert();
N 453     }
454 }
455
456 $inst->install_ispconfig();
457
5b3f25 458 // Cleanup
TB 459 $inst->cleanup_ispconfig();
460
8896ab 461 //** Configure Crontab
b04e82 462 $update_crontab_answer = $inst->simple_query('Reconfigure Crontab?', array('yes', 'no'), 'yes','reconfigure_crontab');
8896ab 463 if($update_crontab_answer == 'yes') {
N 464     swriteln('Updating Crontab');
465     $inst->install_crontab();
466 }
467
468 //** Restart services:
469 if($reconfigure_services_answer == 'yes') {
470     swriteln('Restarting services ...');
1e67c1 471     if($conf['mysql']['installed'] == true && $conf['mysql']['init_script'] != '') system($inst->getinitcommand($conf['mysql']['init_script'], 'restart').' >/dev/null 2>&1');
8896ab 472     if($conf['services']['mail']) {
3327ed 473         if($conf['postfix']['installed'] == true && $conf['postfix']['init_script'] != '') system($inst->getinitcommand($conf['postfix']['init_script'], 'restart'));
FT 474         if($conf['saslauthd']['installed'] == true && $conf['saslauthd']['init_script'] != '') system($inst->getinitcommand($conf['saslauthd']['init_script'], 'restart'));
475         if($conf['amavis']['installed'] == true && $conf['amavis']['init_script'] != '') system($inst->getinitcommand($conf['amavis']['init_script'], 'restart'));
476         if($conf['clamav']['installed'] == true && $conf['clamav']['init_script'] != '') system($inst->getinitcommand($conf['clamav']['init_script'], 'restart'));
477         if($conf['courier']['installed'] == true){
478             if($conf['courier']['courier-authdaemon'] != '') system($inst->getinitcommand($conf['courier']['courier-authdaemon'], 'restart'));
479             if($conf['courier']['courier-imap'] != '') system($inst->getinitcommand($conf['courier']['courier-imap'], 'restart'));
480             if($conf['courier']['courier-imap-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-imap-ssl'], 'restart'));
481             if($conf['courier']['courier-pop'] != '') system($inst->getinitcommand($conf['courier']['courier-pop'], 'restart'));
482             if($conf['courier']['courier-pop-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-pop-ssl'], 'restart'));
483         }
484         if($conf['dovecot']['installed'] == true && $conf['dovecot']['init_script'] != '') system($inst->getinitcommand($conf['dovecot']['init_script'], 'restart'));
485         if($conf['mailman']['installed'] == true && $conf['mailman']['init_script'] != '') system('nohup '.$inst->getinitcommand($conf['mailman']['init_script'], 'restart').' >/dev/null 2>&1 &');
8896ab 486     }
N 487     if($conf['services']['web']) {
33bcd0 488         if($conf['webserver']['server_type'] == 'apache' && $conf['apache']['init_script'] != '') system($inst->getinitcommand($conf['apache']['init_script'], 'restart'));
4ffb51 489         //* Reload is enough for nginx
F 490         if($conf['webserver']['server_type'] == 'nginx'){
33bcd0 491             if($conf['nginx']['php_fpm_init_script'] != '') system($inst->getinitcommand($conf['nginx']['php_fpm_init_script'], 'reload'));
FT 492             if($conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'reload'));
4ffb51 493         }
3327ed 494         if($conf['pureftpd']['installed'] == true && $conf['pureftpd']['init_script'] != '') system($inst->getinitcommand($conf['pureftpd']['init_script'], 'restart'));
8896ab 495     }
N 496     if($conf['services']['dns']) {
33bcd0 497         if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '') system($inst->getinitcommand($conf['mydns']['init_script'], 'restart').' &> /dev/null');
FT 498         if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '') system($inst->getinitcommand($conf['powerdns']['init_script'], 'restart').' &> /dev/null');
499         if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '') system($inst->getinitcommand($conf['bind']['init_script'], 'restart').' &> /dev/null');
8896ab 500     }
b1a6a5 501
fbe2d6 502     if($conf['services']['xmpp']) {
MF 503         if($conf['xmpp']['installed'] == true && $conf['xmpp']['init_script'] != '') system($inst->getinitcommand($conf['xmpp']['init_script'], 'restart').' &> /dev/null');
504     }
505
8896ab 506     if($conf['services']['proxy']) {
b1a6a5 507         // if($conf['squid']['installed'] == true && $conf['squid']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['squid']['init_script']))     system($conf['init_scripts'].'/'.$conf['squid']['init_script'].' restart &> /dev/null');
33bcd0 508         if($conf['nginx']['installed'] == true && $conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'restart').' &> /dev/null');
8896ab 509     }
b1a6a5 510
8896ab 511     if($conf['services']['firewall']) {
b1a6a5 512         if($conf['ufw']['installed'] == true && $conf['ufw']['init_script'] != '' && is_executable($conf['init_scripts'].'/'.$conf['ufw']['init_script']))     system($conf['init_scripts'].'/'.$conf['ufw']['init_script'].' restart &> /dev/null');
8896ab 513     }
N 514 }
515
75b7fc 516 //* Set default servers
MC 517 setDefaultServers();
518
d5f2d5 519 $inst->create_mount_script();
MC 520
1ed92e 521 //* Create md5 filelist
TB 522 $md5_filename = '/usr/local/ispconfig/security/data/file_checksums_'.date('Y-m-d_h-i').'.md5';
523 exec('find /usr/local/ispconfig -type f -print0 | xargs -0 md5sum > '.$md5_filename);
524 chmod($md5_filename,0700);
525
8896ab 526 echo "Update finished.\n";
N 527
528 ?>