Marius Cramer
2015-11-17 c8509bf2e438adcf80591a6bc072359d6d44ed97
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
7fe908 64 echo "\n\n".str_repeat('-', 80)."\n";
8896ab 65 echo " _____ ___________   _____              __ _         ____
N 66 |_   _/  ___| ___ \ /  __ \            / _(_)       /__  \
67   | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _    _/ /
68   | |  `--. \  __/  | |    / _ \| '_ \|  _| |/ _` |  |_ |
69  _| |_/\__/ / |     | \__/\ (_) | | | | | | | (_| | ___\ \
70  \___/\____/\_|      \____/\___/|_| |_|_| |_|\__, | \____/
71                                               __/ |
72                                              |___/ ";
7fe908 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
7fe908 77 require_once 'lib/install.lib.php';
8896ab 78
N 79 //** Include the library with the basic updater functions
7fe908 80 require_once 'lib/update.lib.php';
8896ab 81
N 82 //** Include the base class of the installer class
7fe908 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
7fe908 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'));
c8509b 123         if(!is_array($tmp['install'])) $tmp['install'] = array();
MC 124         if(!is_array($tmp['ssl_cert'])) $tmp['ssl_cert'] = array();
125         if(!is_array($tmp['expert'])) $tmp['expert'] = array();
126         if(!is_array($tmp['update'])) $tmp['update'] = array();
b04e82 127         $autoinstall = $tmp['install'] + $tmp['ssl_cert'] + $tmp['expert'] + $tmp['update'];
TB 128         unset($tmp);
129     }
130     unset($path_parts);
131     define('AUTOINSTALL', true);
132 } else {
133     $autoinstall = array();
134     define('AUTOINSTALL', false);
135 }
bcd725 136
8896ab 137 //** Include the distribution-specific installer class library and configuration
7fe908 138 if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once 'dist/lib/'.$dist['baseid'].'.lib.php';
MC 139 include_once 'dist/lib/'.$dist['id'].'.lib.php';
140 include_once 'dist/conf/'.$dist['id'].'.conf.php';
8896ab 141
N 142 //** Get hostname
143 exec('hostname -f', $tmp_out);
144 $conf['hostname'] = $tmp_out[0];
145 unset($tmp_out);
146
147 //** Set the mysql login information
148 $conf["mysql"]["host"] = $conf_old["db_host"];
149 $conf["mysql"]["database"] = $conf_old["db_database"];
150 $conf['mysql']['charset'] = 'utf8';
151 $conf["mysql"]["ispconfig_user"] = $conf_old["db_user"];
152 $conf["mysql"]["ispconfig_password"] = $conf_old["db_password"];
153 $conf['language'] = $conf_old['language'];
d6b361 154 $conf['theme'] = $conf_old['theme'];
8896ab 155 if($conf['language'] == '{language}') $conf['language'] = 'en';
355efb 156 $conf['timezone'] = (isset($conf_old['timezone']))?$conf_old['timezone']:'UTC';
8cf78b 157 if($conf['timezone'] == '{timezone}' or trim($conf['timezone']) == '') $conf['timezone'] = 'UTC';
992797 158 $conf['language_file_import_enabled'] = (isset($conf_old['language_file_import_enabled']))?$conf_old['language_file_import_enabled']:true;
8896ab 159
N 160 if(isset($conf_old["dbmaster_host"])) $conf["mysql"]["master_host"] = $conf_old["dbmaster_host"];
161 if(isset($conf_old["dbmaster_database"])) $conf["mysql"]["master_database"] = $conf_old["dbmaster_database"];
162 if(isset($conf_old["dbmaster_user"])) $conf["mysql"]["master_ispconfig_user"] = $conf_old["dbmaster_user"];
163 if(isset($conf_old["dbmaster_password"])) $conf["mysql"]["master_ispconfig_password"] = $conf_old["dbmaster_password"];
164
165 //* Check if this is a master / slave setup
166 if($conf["mysql"]["master_host"] != '' && $conf["mysql"]["host"] != $conf["mysql"]["master_host"]) {
167     $conf['mysql']['master_slave_setup'] = 'y';
168 }
169
170 // Resolve the IP address of the mysql hostname.
171 if(!$conf['mysql']['ip'] = gethostbyname($conf['mysql']['host'])) die('Unable to resolve hostname'.$conf['mysql']['host']);
172
173 $conf['server_id'] = intval($conf_old["server_id"]);
174 $conf['ispconfig_log_priority'] = $conf_old["log_priority"];
175
176 $inst = new installer();
177 $inst->is_update = true;
178
179 //** Detect the installed applications
180 $inst->find_installed_apps();
181
8cf78b 182 echo "This application will update ISPConfig 3 on your server.\n\n";
T 183
184 //* Make a backup before we start the update
b04e82 185 $do_backup = $inst->simple_query('Shall the script create a ISPConfig backup in /var/backup/ now?', array('yes', 'no'), 'yes','do_backup');
bcd725 186
8cf78b 187 if($do_backup == 'yes') {
7fe908 188
8cf78b 189     //* Create the backup directory
cc6568 190     $backup_path = '/var/backup/ispconfig_'.@date('Y-m-d_H-i');
8cf78b 191     $conf['backup_path'] = $backup_path;
T 192     exec("mkdir -p $backup_path");
193     exec("chown root:root $backup_path");
194     exec("chmod 700 $backup_path");
7fe908 195
8cf78b 196     //* Do the backup
T 197     swriteln('Creating backup of "/usr/local/ispconfig" directory...');
7fe908 198     exec("tar pcfz $backup_path/ispconfig_software.tar.gz /usr/local/ispconfig 2> /dev/null", $out, $returnvar);
8cf78b 199     if($returnvar != 0) die("Backup failed. We stop here...\n");
7fe908 200
8cf78b 201     swriteln('Creating backup of "/etc" directory...');
7fe908 202     exec("tar pcfz $backup_path/etc.tar.gz /etc 2> /dev/null", $out, $returnvar);
8cf78b 203     if($returnvar != 0) die("Backup failed. We stop here...\n");
7fe908 204
8cf78b 205     exec("chown root:root $backup_path/*.tar.gz");
T 206     exec("chmod 700 $backup_path/*.tar.gz");
207 }
208
8896ab 209
N 210 //** Initialize the MySQL server connection
7fe908 211 include_once 'lib/mysql.lib.php';
8896ab 212
N 213 //** Database update is a bit brute force and should be rebuild later ;)
214
215 /*
216  * Try to read the DB-admin settings
217  */
7fe908 218 $clientdb_host   = '';
MC 219 $clientdb_user   = '';
220 $clientdb_password  = '';
221 include_once "/usr/local/ispconfig/server/lib/mysql_clientdb.conf";
8896ab 222 $conf["mysql"]["admin_user"] = $clientdb_user;
N 223 $conf["mysql"]["admin_password"] = $clientdb_password;
7fe908 224 $clientdb_host   = '';
MC 225 $clientdb_user   = '';
226 $clientdb_password  = '';
8896ab 227
edf806 228 //** Test mysql root connection
T 229 $finished = false;
230 do {
7fe908 231     if(@mysql_connect($conf["mysql"]["host"], $conf["mysql"]["admin_user"], $conf["mysql"]["admin_password"])) {
edf806 232         $finished = true;
T 233     } else {
234         swriteln($inst->lng('Unable to connect to mysql server').' '.mysql_error());
b04e82 235         $conf["mysql"]["admin_password"] = $inst->free_query('MySQL root password', $conf['mysql']['admin_password'],'mysql_root_password');
edf806 236     }
T 237 } while ($finished == false);
238 unset($finished);
8896ab 239
N 240 /*
7fe908 241  *  Prepare the dump of the database
8896ab 242  */
N 243 prepareDBDump();
244
245 //* initialize the database
246 $inst->db = new db();
247
248 //* initialize the master DB, if we have a multiserver setup
249 if($conf['mysql']['master_slave_setup'] == 'y') {
7fe908 250     //** Get MySQL root credentials
MC 251     $finished = false;
252     do {
b04e82 253         $tmp_mysql_server_host = $inst->free_query('MySQL master server hostname', $conf['mysql']['master_host'],'mysql_master_hostname');
TB 254         $tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user'],'mysql_master_root_user');     
255         $tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password'],'mysql_master_root_password');
256         $tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database'],'mysql_master_database');
7fe908 257
MC 258         //* Initialize the MySQL server connection
259         if(@mysql_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) {
260             $conf['mysql']['master_host'] = $tmp_mysql_server_host;
261             $conf['mysql']['master_admin_user'] = $tmp_mysql_server_admin_user;
262             $conf['mysql']['master_admin_password'] = $tmp_mysql_server_admin_password;
263             $conf['mysql']['master_database'] = $tmp_mysql_server_database;
264             $finished = true;
265         } else {
266             swriteln($inst->lng('Unable to connect to mysql server').' '.mysql_error());
267         }
268     } while ($finished == false);
269     unset($finished);
270
271     // initialize the connection to the master database
272     $inst->dbmaster = new db();
273     if($inst->dbmaster->linkId) $inst->dbmaster->closeConn();
274     $inst->dbmaster->dbHost = $conf['mysql']["master_host"];
275     $inst->dbmaster->dbName = $conf['mysql']["master_database"];
276     $inst->dbmaster->dbUser = $conf['mysql']["master_admin_user"];
277     $inst->dbmaster->dbPass = $conf['mysql']["master_admin_password"];
8896ab 278 } else {
N 279     $inst->dbmaster = $inst->db;
280 }
281
282 /*
283  *  Check all tables
284 */
285 checkDbHealth();
286
287 /*
288  *  dump the new Database and reconfigure the server.ini
289  */
290 updateDbAndIni();
291
292 /*
293  * Reconfigure the permisson if needed
294  * (if this is done at client side, only this client is updated.
295  * If this is done at server side, all clients are updated.
296  */
297 //if($conf_old['dbmaster_user'] != '' or $conf_old['dbmaster_host'] != '') {
7fe908 298 //** Update master database rights
b04e82 299 $reconfigure_master_database_rights_answer = $inst->simple_query('Reconfigure Permissions in master database?', array('yes', 'no'), 'no','reconfigure_permissions_in_master_database');
8896ab 300
7fe908 301 if($reconfigure_master_database_rights_answer == 'yes') {
MC 302     $inst->grant_master_database_rights();
303 }
8896ab 304 //}
N 305
306 //** Shall the services be reconfigured during update
b04e82 307 $reconfigure_services_answer = $inst->simple_query('Reconfigure Services?', array('yes', 'no'), 'yes','reconfigure_services');
8896ab 308
N 309 if($reconfigure_services_answer == 'yes') {
7fe908 310
8896ab 311     if($conf['services']['mail']) {
N 312         //** Configure postfix
313         swriteln('Configuring Postfix');
314         $inst->configure_postfix('dont-create-certs');
7fe908 315
8896ab 316         //** Configure mailman
f9d95c 317         if($conf['mailman']['installed'] == true) {
CS 318             swriteln('Configuring Mailman');
319             $inst->configure_mailman('update');
320         }
7fe908 321
8896ab 322         //* Configure Jailkit
N 323         swriteln('Configuring Jailkit');
324         $inst->configure_jailkit();
325
326         if($conf['dovecot']['installed'] == true) {
327             //* Configure dovecot
328             swriteln('Configuring Dovecot');
329             $inst->configure_dovecot();
330         } else {
331             //** Configure saslauthd
332             swriteln('Configuring SASL');
333             $inst->configure_saslauthd();
7fe908 334
8896ab 335             //** Configure PAM
N 336             swriteln('Configuring PAM');
337             $inst->configure_pam();
7fe908 338
8896ab 339             //* Configure courier
N 340             swriteln('Configuring Courier');
341             $inst->configure_courier();
342         }
343
344         //** Configure Spamasassin
345         swriteln('Configuring Spamassassin');
346         $inst->configure_spamassassin();
347
348         //** Configure Amavis
349         swriteln('Configuring Amavisd');
350         $inst->configure_amavis();
351
352         //** Configure Getmail
353         swriteln('Configuring Getmail');
354         $inst->configure_getmail();
355     }
7fe908 356
8896ab 357     if($conf['services']['web'] && $conf['pureftpd']['installed'] == true) {
N 358         //** Configure Pureftpd
359         swriteln('Configuring Pureftpd');
360         $inst->configure_pureftpd();
361     }
7fe908 362
8896ab 363     if($conf['services']['dns']) {
N 364         //* Configure DNS
365         if($conf['powerdns']['installed'] == true) {
366             swriteln('Configuring PowerDNS');
367             $inst->configure_powerdns();
368         } elseif($conf['bind']['installed'] == true) {
369             swriteln('Configuring BIND');
370             $inst->configure_bind();
371         } else {
372             swriteln('Configuring MyDNS');
373             $inst->configure_mydns();
374         }
375     }
7fe908 376
8896ab 377     if($conf['services']['web']) {
4ffb51 378         if($conf['webserver']['server_type'] == 'apache'){
F 379             //** Configure Apache
380             swriteln('Configuring Apache');
381             $inst->configure_apache();
7fe908 382
4ffb51 383             //** Configure vlogger
F 384             swriteln('Configuring vlogger');
385             $inst->configure_vlogger();
386         } else {
387             //** Configure nginx
388             swriteln('Configuring nginx');
389             $inst->configure_nginx();
390         }
7fe908 391
8896ab 392         //** Configure apps vhost
N 393         swriteln('Configuring Apps vhost');
394         $inst->configure_apps_vhost();
395     }
396
397
398     //* Configure DBServer
399     swriteln('Configuring Database');
400     $inst->configure_dbserver();
401
7fe908 402
8896ab 403     if($conf['services']['firewall']) {
992797 404         if($conf['bastille']['installed'] == true) {
8896ab 405             //* Configure Bastille Firewall
N 406             swriteln('Configuring Bastille Firewall');
992797 407             $inst->configure_firewall();
8896ab 408         }
N 409     }
7fe908 410
4ffb51 411     /*
8896ab 412     if($conf['squid']['installed'] == true) {
N 413         swriteln('Configuring Squid');
414         $inst->configure_squid();
415     } else if($conf['nginx']['installed'] == true) {
416         swriteln('Configuring Nginx');
417         $inst->configure_nginx();
418     }
4ffb51 419     */
8896ab 420 }
N 421
422 //** Configure ISPConfig
423 swriteln('Updating ISPConfig');
6ba4fa 424 if($conf['apache']['installed'] == true){
FT 425     if(!is_file($conf['apache']['vhost_conf_dir'].'/ispconfig.vhost')) $inst->install_ispconfig_interface = false;
426 }
427 if($conf['nginx']['installed'] == true){
428     if(!is_file($conf['nginx']['vhost_conf_dir'].'/ispconfig.vhost')) $inst->install_ispconfig_interface = false;
429 }
8896ab 430
b67344 431 if ($conf['services']['web'] && $inst->install_ispconfig_interface) {
8896ab 432     //** Customise the port ISPConfig runs on
N 433     $ispconfig_port_number = get_ispconfig_port_number();
bcd725 434     if($autoupdate['ispconfig_port'] == 'default') $autoupdate['ispconfig_port'] = $ispconfig_port_number;
4ffb51 435     if($conf['webserver']['server_type'] == 'nginx'){
b04e82 436         $conf['nginx']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number,'ispconfig_port');
4ffb51 437     } else {
b04e82 438         $conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number,'ispconfig_port');
4ffb51 439     }
7fe908 440
MC 441
8896ab 442     // $ispconfig_ssl_default = (is_ispconfig_ssl_enabled() == true)?'y':'n';
b04e82 443     if(strtolower($inst->simple_query('Create new ISPConfig SSL certificate', array('yes', 'no'), 'no','create_new_ispconfig_ssl_cert')) == 'yes') {
8896ab 444         $inst->make_ispconfig_ssl_cert();
N 445     }
446 }
447
448 $inst->install_ispconfig();
449
5b3f25 450 // Cleanup
TB 451 $inst->cleanup_ispconfig();
452
8896ab 453 //** Configure Crontab
b04e82 454 $update_crontab_answer = $inst->simple_query('Reconfigure Crontab?', array('yes', 'no'), 'yes','reconfigure_crontab');
8896ab 455 if($update_crontab_answer == 'yes') {
N 456     swriteln('Updating Crontab');
457     $inst->install_crontab();
458 }
459
460 //** Restart services:
461 if($reconfigure_services_answer == 'yes') {
462     swriteln('Restarting services ...');
1e67c1 463     if($conf['mysql']['installed'] == true && $conf['mysql']['init_script'] != '') system($inst->getinitcommand($conf['mysql']['init_script'], 'restart').' >/dev/null 2>&1');
8896ab 464     if($conf['services']['mail']) {
3327ed 465         if($conf['postfix']['installed'] == true && $conf['postfix']['init_script'] != '') system($inst->getinitcommand($conf['postfix']['init_script'], 'restart'));
FT 466         if($conf['saslauthd']['installed'] == true && $conf['saslauthd']['init_script'] != '') system($inst->getinitcommand($conf['saslauthd']['init_script'], 'restart'));
467         if($conf['amavis']['installed'] == true && $conf['amavis']['init_script'] != '') system($inst->getinitcommand($conf['amavis']['init_script'], 'restart'));
468         if($conf['clamav']['installed'] == true && $conf['clamav']['init_script'] != '') system($inst->getinitcommand($conf['clamav']['init_script'], 'restart'));
469         if($conf['courier']['installed'] == true){
470             if($conf['courier']['courier-authdaemon'] != '') system($inst->getinitcommand($conf['courier']['courier-authdaemon'], 'restart'));
471             if($conf['courier']['courier-imap'] != '') system($inst->getinitcommand($conf['courier']['courier-imap'], 'restart'));
472             if($conf['courier']['courier-imap-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-imap-ssl'], 'restart'));
473             if($conf['courier']['courier-pop'] != '') system($inst->getinitcommand($conf['courier']['courier-pop'], 'restart'));
474             if($conf['courier']['courier-pop-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-pop-ssl'], 'restart'));
475         }
476         if($conf['dovecot']['installed'] == true && $conf['dovecot']['init_script'] != '') system($inst->getinitcommand($conf['dovecot']['init_script'], 'restart'));
477         if($conf['mailman']['installed'] == true && $conf['mailman']['init_script'] != '') system('nohup '.$inst->getinitcommand($conf['mailman']['init_script'], 'restart').' >/dev/null 2>&1 &');
8896ab 478     }
N 479     if($conf['services']['web']) {
33bcd0 480         if($conf['webserver']['server_type'] == 'apache' && $conf['apache']['init_script'] != '') system($inst->getinitcommand($conf['apache']['init_script'], 'restart'));
4ffb51 481         //* Reload is enough for nginx
F 482         if($conf['webserver']['server_type'] == 'nginx'){
33bcd0 483             if($conf['nginx']['php_fpm_init_script'] != '') system($inst->getinitcommand($conf['nginx']['php_fpm_init_script'], 'reload'));
FT 484             if($conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'reload'));
4ffb51 485         }
3327ed 486         if($conf['pureftpd']['installed'] == true && $conf['pureftpd']['init_script'] != '') system($inst->getinitcommand($conf['pureftpd']['init_script'], 'restart'));
8896ab 487     }
N 488     if($conf['services']['dns']) {
33bcd0 489         if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '') system($inst->getinitcommand($conf['mydns']['init_script'], 'restart').' &> /dev/null');
FT 490         if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '') system($inst->getinitcommand($conf['powerdns']['init_script'], 'restart').' &> /dev/null');
491         if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '') system($inst->getinitcommand($conf['bind']['init_script'], 'restart').' &> /dev/null');
8896ab 492     }
7fe908 493
8896ab 494     if($conf['services']['proxy']) {
7fe908 495         // 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 496         if($conf['nginx']['installed'] == true && $conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'restart').' &> /dev/null');
8896ab 497     }
7fe908 498
8896ab 499     if($conf['services']['firewall']) {
7fe908 500         //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 501     }
N 502 }
503
1ed92e 504 //* Create md5 filelist
TB 505 $md5_filename = '/usr/local/ispconfig/security/data/file_checksums_'.date('Y-m-d_h-i').'.md5';
506 exec('find /usr/local/ispconfig -type f -print0 | xargs -0 md5sum > '.$md5_filename);
507 chmod($md5_filename,0700);
508
8896ab 509 echo "Update finished.\n";
N 510
511 ?>