Marius Cramer
2014-10-31 1102cc886cf42a23cb3145cd9cc8b0d8f6123b61
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');
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');
b1a6a5 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'] != '') {
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
395
396     //* Configure DBServer
397     swriteln('Configuring Database');
398     $inst->configure_dbserver();
399
b1a6a5 400
8896ab 401     if($conf['services']['firewall']) {
bd68aa 402         if($conf['ufw']['installed'] == true) {
MC 403             //* Configure Ubuntu Firewall
404             $conf['services']['firewall'] = true;
405             swriteln('Configuring Ubuntu Firewall');
406             $inst->configure_ufw_firewall();
407         } else {
8896ab 408             //* Configure Bastille Firewall
N 409             swriteln('Configuring Bastille Firewall');
bd68aa 410             $inst->configure_bastille_firewall();
8896ab 411         }
N 412     }
b1a6a5 413
4ffb51 414     /*
8896ab 415     if($conf['squid']['installed'] == true) {
N 416         swriteln('Configuring Squid');
417         $inst->configure_squid();
418     } else if($conf['nginx']['installed'] == true) {
419         swriteln('Configuring Nginx');
420         $inst->configure_nginx();
421     }
4ffb51 422     */
8896ab 423 }
N 424
425 //** Configure ISPConfig
426 swriteln('Updating ISPConfig');
6ba4fa 427 if($conf['apache']['installed'] == true){
FT 428     if(!is_file($conf['apache']['vhost_conf_dir'].'/ispconfig.vhost')) $inst->install_ispconfig_interface = false;
429 }
430 if($conf['nginx']['installed'] == true){
431     if(!is_file($conf['nginx']['vhost_conf_dir'].'/ispconfig.vhost')) $inst->install_ispconfig_interface = false;
432 }
8896ab 433
b67344 434 if ($conf['services']['web'] && $inst->install_ispconfig_interface) {
8896ab 435     //** Customise the port ISPConfig runs on
N 436     $ispconfig_port_number = get_ispconfig_port_number();
bcd725 437     if($autoupdate['ispconfig_port'] == 'default') $autoupdate['ispconfig_port'] = $ispconfig_port_number;
4ffb51 438     if($conf['webserver']['server_type'] == 'nginx'){
b04e82 439         $conf['nginx']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number,'ispconfig_port');
4ffb51 440     } else {
b04e82 441         $conf['apache']['vhost_port'] = $inst->free_query('ISPConfig Port', $ispconfig_port_number,'ispconfig_port');
4ffb51 442     }
b1a6a5 443
MC 444
8896ab 445     // $ispconfig_ssl_default = (is_ispconfig_ssl_enabled() == true)?'y':'n';
b04e82 446     if(strtolower($inst->simple_query('Create new ISPConfig SSL certificate', array('yes', 'no'), 'no','create_new_ispconfig_ssl_cert')) == 'yes') {
8896ab 447         $inst->make_ispconfig_ssl_cert();
N 448     }
449 }
450
451 $inst->install_ispconfig();
452
5b3f25 453 // Cleanup
TB 454 $inst->cleanup_ispconfig();
455
8896ab 456 //** Configure Crontab
b04e82 457 $update_crontab_answer = $inst->simple_query('Reconfigure Crontab?', array('yes', 'no'), 'yes','reconfigure_crontab');
8896ab 458 if($update_crontab_answer == 'yes') {
N 459     swriteln('Updating Crontab');
460     $inst->install_crontab();
461 }
462
463 //** Restart services:
464 if($reconfigure_services_answer == 'yes') {
465     swriteln('Restarting services ...');
1e67c1 466     if($conf['mysql']['installed'] == true && $conf['mysql']['init_script'] != '') system($inst->getinitcommand($conf['mysql']['init_script'], 'restart').' >/dev/null 2>&1');
8896ab 467     if($conf['services']['mail']) {
3327ed 468         if($conf['postfix']['installed'] == true && $conf['postfix']['init_script'] != '') system($inst->getinitcommand($conf['postfix']['init_script'], 'restart'));
FT 469         if($conf['saslauthd']['installed'] == true && $conf['saslauthd']['init_script'] != '') system($inst->getinitcommand($conf['saslauthd']['init_script'], 'restart'));
470         if($conf['amavis']['installed'] == true && $conf['amavis']['init_script'] != '') system($inst->getinitcommand($conf['amavis']['init_script'], 'restart'));
471         if($conf['clamav']['installed'] == true && $conf['clamav']['init_script'] != '') system($inst->getinitcommand($conf['clamav']['init_script'], 'restart'));
472         if($conf['courier']['installed'] == true){
473             if($conf['courier']['courier-authdaemon'] != '') system($inst->getinitcommand($conf['courier']['courier-authdaemon'], 'restart'));
474             if($conf['courier']['courier-imap'] != '') system($inst->getinitcommand($conf['courier']['courier-imap'], 'restart'));
475             if($conf['courier']['courier-imap-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-imap-ssl'], 'restart'));
476             if($conf['courier']['courier-pop'] != '') system($inst->getinitcommand($conf['courier']['courier-pop'], 'restart'));
477             if($conf['courier']['courier-pop-ssl'] != '') system($inst->getinitcommand($conf['courier']['courier-pop-ssl'], 'restart'));
478         }
479         if($conf['dovecot']['installed'] == true && $conf['dovecot']['init_script'] != '') system($inst->getinitcommand($conf['dovecot']['init_script'], 'restart'));
480         if($conf['mailman']['installed'] == true && $conf['mailman']['init_script'] != '') system('nohup '.$inst->getinitcommand($conf['mailman']['init_script'], 'restart').' >/dev/null 2>&1 &');
8896ab 481     }
N 482     if($conf['services']['web']) {
33bcd0 483         if($conf['webserver']['server_type'] == 'apache' && $conf['apache']['init_script'] != '') system($inst->getinitcommand($conf['apache']['init_script'], 'restart'));
4ffb51 484         //* Reload is enough for nginx
F 485         if($conf['webserver']['server_type'] == 'nginx'){
33bcd0 486             if($conf['nginx']['php_fpm_init_script'] != '') system($inst->getinitcommand($conf['nginx']['php_fpm_init_script'], 'reload'));
FT 487             if($conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'reload'));
4ffb51 488         }
3327ed 489         if($conf['pureftpd']['installed'] == true && $conf['pureftpd']['init_script'] != '') system($inst->getinitcommand($conf['pureftpd']['init_script'], 'restart'));
8896ab 490     }
N 491     if($conf['services']['dns']) {
33bcd0 492         if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '') system($inst->getinitcommand($conf['mydns']['init_script'], 'restart').' &> /dev/null');
FT 493         if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '') system($inst->getinitcommand($conf['powerdns']['init_script'], 'restart').' &> /dev/null');
494         if($conf['bind']['installed'] == true && $conf['bind']['init_script'] != '') system($inst->getinitcommand($conf['bind']['init_script'], 'restart').' &> /dev/null');
8896ab 495     }
b1a6a5 496
8896ab 497     if($conf['services']['proxy']) {
b1a6a5 498         // 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 499         if($conf['nginx']['installed'] == true && $conf['nginx']['init_script'] != '') system($inst->getinitcommand($conf['nginx']['init_script'], 'restart').' &> /dev/null');
8896ab 500     }
b1a6a5 501
8896ab 502     if($conf['services']['firewall']) {
b1a6a5 503         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 504     }
N 505 }
506
1ed92e 507 //* Create md5 filelist
TB 508 $md5_filename = '/usr/local/ispconfig/security/data/file_checksums_'.date('Y-m-d_h-i').'.md5';
509 exec('find /usr/local/ispconfig -type f -print0 | xargs -0 md5sum > '.$md5_filename);
510 chmod($md5_filename,0700);
511
8896ab 512 echo "Update finished.\n";
N 513
514 ?>