Till Brehm
2014-10-27 1e67c170df357c0d0831d223e93a6512d84c523e
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'));
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
7fe908 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') {
7fe908 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");
7fe908 191
8cf78b 192     //* Do the backup
T 193     swriteln('Creating backup of "/usr/local/ispconfig" directory...');
7fe908 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");
7fe908 196
8cf78b 197     swriteln('Creating backup of "/etc" directory...');
7fe908 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");
7fe908 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
7fe908 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  */
7fe908 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;
7fe908 220 $clientdb_host   = '';
MC 221 $clientdb_user   = '';
222 $clientdb_password  = '';
8896ab 223
edf806 224 //** Test mysql root connection
T 225 $finished = false;
226 do {
7fe908 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 /*
7fe908 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') {
7fe908 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');
TB 250         $tmp_mysql_server_admin_user = $inst->free_query('MySQL master server root username', $conf['mysql']['master_admin_user'],'mysql_master_root_user');     
251         $tmp_mysql_server_admin_password = $inst->free_query('MySQL master server root password', $conf['mysql']['master_admin_password'],'mysql_master_root_password');
252         $tmp_mysql_server_database = $inst->free_query('MySQL master server database name', $conf['mysql']['master_database'],'mysql_master_database');
7fe908 253
MC 254         //* Initialize the MySQL server connection
255         if(@mysql_connect($tmp_mysql_server_host, $tmp_mysql_server_admin_user, $tmp_mysql_server_admin_password)) {
256             $conf['mysql']['master_host'] = $tmp_mysql_server_host;
257             $conf['mysql']['master_admin_user'] = $tmp_mysql_server_admin_user;
258             $conf['mysql']['master_admin_password'] = $tmp_mysql_server_admin_password;
259             $conf['mysql']['master_database'] = $tmp_mysql_server_database;
260             $finished = true;
261         } else {
262             swriteln($inst->lng('Unable to connect to mysql server').' '.mysql_error());
263         }
264     } while ($finished == false);
265     unset($finished);
266
267     // initialize the connection to the master database
268     $inst->dbmaster = new db();
269     if($inst->dbmaster->linkId) $inst->dbmaster->closeConn();
270     $inst->dbmaster->dbHost = $conf['mysql']["master_host"];
271     $inst->dbmaster->dbName = $conf['mysql']["master_database"];
272     $inst->dbmaster->dbUser = $conf['mysql']["master_admin_user"];
273     $inst->dbmaster->dbPass = $conf['mysql']["master_admin_password"];
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'] != '') {
7fe908 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
7fe908 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') {
7fe908 306
8896ab 307     if($conf['services']['mail']) {
N 308         //** Configure postfix
309         swriteln('Configuring Postfix');
310         $inst->configure_postfix('dont-create-certs');
7fe908 311
8896ab 312         //** Configure mailman
f9d95c 313         if($conf['mailman']['installed'] == true) {
CS 314             swriteln('Configuring Mailman');
315             $inst->configure_mailman('update');
316         }
7fe908 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();
7fe908 330
8896ab 331             //** Configure PAM
N 332             swriteln('Configuring PAM');
333             $inst->configure_pam();
7fe908 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
345         swriteln('Configuring Amavisd');
346         $inst->configure_amavis();
347
348         //** Configure Getmail
349         swriteln('Configuring Getmail');
350         $inst->configure_getmail();
351     }
7fe908 352
8896ab 353     if($conf['services']['web'] && $conf['pureftpd']['installed'] == true) {
N 354         //** Configure Pureftpd
355         swriteln('Configuring Pureftpd');
356         $inst->configure_pureftpd();
357     }
7fe908 358
8896ab 359     if($conf['services']['dns']) {
N 360         //* Configure DNS
361         if($conf['powerdns']['installed'] == true) {
362             swriteln('Configuring PowerDNS');
363             $inst->configure_powerdns();
364         } elseif($conf['bind']['installed'] == true) {
365             swriteln('Configuring BIND');
366             $inst->configure_bind();
367         } else {
368             swriteln('Configuring MyDNS');
369             $inst->configure_mydns();
370         }
371     }
7fe908 372
8896ab 373     if($conf['services']['web']) {
4ffb51 374         if($conf['webserver']['server_type'] == 'apache'){
F 375             //** Configure Apache
376             swriteln('Configuring Apache');
377             $inst->configure_apache();
7fe908 378
4ffb51 379             //** Configure vlogger
F 380             swriteln('Configuring vlogger');
381             $inst->configure_vlogger();
382         } else {
383             //** Configure nginx
384             swriteln('Configuring nginx');
385             $inst->configure_nginx();
386         }
7fe908 387
8896ab 388         //** Configure apps vhost
N 389         swriteln('Configuring Apps vhost');
390         $inst->configure_apps_vhost();
391     }
392
393
394     //* Configure DBServer
395     swriteln('Configuring Database');
396     $inst->configure_dbserver();
397
7fe908 398
8896ab 399     if($conf['services']['firewall']) {
992797 400         if($conf['bastille']['installed'] == true) {
8896ab 401             //* Configure Bastille Firewall
N 402             swriteln('Configuring Bastille Firewall');
992797 403             $inst->configure_firewall();
8896ab 404         }
N 405     }
7fe908 406
4ffb51 407     /*
8896ab 408     if($conf['squid']['installed'] == true) {
N 409         swriteln('Configuring Squid');
410         $inst->configure_squid();
411     } else if($conf['nginx']['installed'] == true) {
412         swriteln('Configuring Nginx');
413         $inst->configure_nginx();
414     }
4ffb51 415     */
8896ab 416 }
N 417
418 //** Configure ISPConfig
419 swriteln('Updating ISPConfig');
6ba4fa 420 if($conf['apache']['installed'] == true){
FT 421     if(!is_file($conf['apache']['vhost_conf_dir'].'/ispconfig.vhost')) $inst->install_ispconfig_interface = false;
422 }
423 if($conf['nginx']['installed'] == true){
424     if(!is_file($conf['nginx']['vhost_conf_dir'].'/ispconfig.vhost')) $inst->install_ispconfig_interface = false;
425 }
8896ab 426
b67344 427 if ($conf['services']['web'] && $inst->install_ispconfig_interface) {
8896ab 428     //** Customise the port ISPConfig runs on
N 429     $ispconfig_port_number = get_ispconfig_port_number();
bcd725 430     if($autoupdate['ispconfig_port'] == 'default') $autoupdate['ispconfig_port'] = $ispconfig_port_number;
4ffb51 431     if($conf['webserver']['server_type'] == 'nginx'){
b04e82 432         $conf['nginx']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number,'ispconfig_port');
4ffb51 433     } else {
b04e82 434         $conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number,'ispconfig_port');
4ffb51 435     }
7fe908 436
MC 437
8896ab 438     // $ispconfig_ssl_default = (is_ispconfig_ssl_enabled() == true)?'y':'n';
b04e82 439     if(strtolower($inst->simple_query('Create new ISPConfig SSL certificate', array('yes', 'no'), 'no','create_new_ispconfig_ssl_cert')) == 'yes') {
8896ab 440         $inst->make_ispconfig_ssl_cert();
N 441     }
442 }
443
444 $inst->install_ispconfig();
445
5b3f25 446 // Cleanup
TB 447 $inst->cleanup_ispconfig();
448
8896ab 449 //** Configure Crontab
b04e82 450 $update_crontab_answer = $inst->simple_query('Reconfigure Crontab?', array('yes', 'no'), 'yes','reconfigure_crontab');
8896ab 451 if($update_crontab_answer == 'yes') {
N 452     swriteln('Updating Crontab');
453     $inst->install_crontab();
454 }
455
456 //** Restart services:
457 if($reconfigure_services_answer == 'yes') {
458     swriteln('Restarting services ...');
1e67c1 459     if($conf['mysql']['installed'] == true && $conf['mysql']['init_script'] != '') system($inst->getinitcommand($conf['mysql']['init_script'], 'restart').' >/dev/null 2>&1');
8896ab 460     if($conf['services']['mail']) {
3327ed 461         if($conf['postfix']['installed'] == true && $conf['postfix']['init_script'] != '') system($inst->getinitcommand($conf['postfix']['init_script'], 'restart'));
FT 462         if($conf['saslauthd']['installed'] == true && $conf['saslauthd']['init_script'] != '') system($inst->getinitcommand($conf['saslauthd']['init_script'], 'restart'));
463         if($conf['amavis']['installed'] == true && $conf['amavis']['init_script'] != '') system($inst->getinitcommand($conf['amavis']['init_script'], 'restart'));
464         if($conf['clamav']['installed'] == true && $conf['clamav']['init_script'] != '') system($inst->getinitcommand($conf['clamav']['init_script'], 'restart'));
465         if($conf['courier']['installed'] == true){
466             if($conf['courier']['courier-authdaemon'] != '') system($inst->getinitcommand($conf['courier']['courier-authdaemon'], 'restart'));
467             if($conf['courier']['courier-imap'] != '') system($inst->getinitcommand($conf['courier']['courier-imap'], 'restart'));
468             if($conf['courier']['courier-imap-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-imap-ssl'], 'restart'));
469             if($conf['courier']['courier-pop'] != '') system($inst->getinitcommand($conf['courier']['courier-pop'], 'restart'));
470             if($conf['courier']['courier-pop-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-pop-ssl'], 'restart'));
471         }
472         if($conf['dovecot']['installed'] == true && $conf['dovecot']['init_script'] != '') system($inst->getinitcommand($conf['dovecot']['init_script'], 'restart'));
473         if($conf['mailman']['installed'] == true && $conf['mailman']['init_script'] != '') system('nohup '.$inst->getinitcommand($conf['mailman']['init_script'], 'restart').' >/dev/null 2>&1 &');
8896ab 474     }
N 475     if($conf['services']['web']) {
33bcd0 476         if($conf['webserver']['server_type'] == 'apache' && $conf['apache']['init_script'] != '') system($inst->getinitcommand($conf['apache']['init_script'], 'restart'));
4ffb51 477         //* Reload is enough for nginx
F 478         if($conf['webserver']['server_type'] == 'nginx'){
33bcd0 479             if($conf['nginx']['php_fpm_init_script'] != '') system($inst->getinitcommand($conf['nginx']['php_fpm_init_script'], 'reload'));
FT 480             if($conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'reload'));
4ffb51 481         }
3327ed 482         if($conf['pureftpd']['installed'] == true && $conf['pureftpd']['init_script'] != '') system($inst->getinitcommand($conf['pureftpd']['init_script'], 'restart'));
8896ab 483     }
N 484     if($conf['services']['dns']) {
33bcd0 485         if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '') system($inst->getinitcommand($conf['mydns']['init_script'], 'restart').' &> /dev/null');
FT 486         if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '') system($inst->getinitcommand($conf['powerdns']['init_script'], 'restart').' &> /dev/null');
487         if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '') system($inst->getinitcommand($conf['bind']['init_script'], 'restart').' &> /dev/null');
8896ab 488     }
7fe908 489
8896ab 490     if($conf['services']['proxy']) {
7fe908 491         // 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 492         if($conf['nginx']['installed'] == true && $conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'restart').' &> /dev/null');
8896ab 493     }
7fe908 494
8896ab 495     if($conf['services']['firewall']) {
7fe908 496         //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 497     }
N 498 }
499
1ed92e 500 //* Create md5 filelist
TB 501 $md5_filename = '/usr/local/ispconfig/security/data/file_checksums_'.date('Y-m-d_h-i').'.md5';
502 exec('find /usr/local/ispconfig -type f -print0 | xargs -0 md5sum > '.$md5_filename);
503 chmod($md5_filename,0700);
504
8896ab 505 echo "Update finished.\n";
N 506
507 ?>