From f1926a01df8871cdacb29c97ffbfd7ff18d1610a Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Tue, 09 Feb 2016 11:56:40 -0500 Subject: [PATCH] Fixed problems that prevented ISPConfig to run on PHP 7, Issue #3716 --- server/lib/classes/system.inc.php | 45 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 42 insertions(+), 3 deletions(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 75dc73d..2c36c38 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -44,7 +44,7 @@ */ - public function system(){ + public function __construct(){ //global $go_info; //$this->server_id = $go_info['isp']['server_id']; //$this->server_conf = $go_info['isp']['server_conf']; @@ -1802,21 +1802,60 @@ } function mount_backup_dir($backup_dir, $mount_cmd = '/usr/local/ispconfig/server/scripts/backup_dir_mount.sh'){ + global $app, $conf; + $mounted = true; if ( is_file($mount_cmd) && is_executable($mount_cmd) && fileowner($mount_cmd) === 0 ) { if (!$this->is_mounted($backup_dir)){ - exec($backup_dir_mount_cmd); + exec($mount_cmd); sleep(1); if (!$this->is_mounted($backup_dir)) $mounted = false; } } else $mounted = false; + if (!$mounted) { + //* send email to admin that backup directory could not be mounted + $global_config = $app->getconf->get_global_config('mail'); + if($global_config['admin_mail'] != ''){ + $subject = 'Backup directory '.$backup_dir.' could not be mounted'; + $message = "Backup directory ".$backup_dir." could not be mounted.\n\nThe command\n\n".$mount_cmd."\n\nfailed."; + mail($global_config['admin_mail'], $subject, $message); + } + } return $mounted; } - + + function umount_backup_dir($backup_dir, $mount_cmd = '/usr/local/ispconfig/server/scripts/backup_dir_umount.sh'){ + global $app, $conf; + + if ( is_file($mount_cmd) && + is_executable($mount_cmd) && + fileowner($mount_cmd) === 0 + ) { + if ($this->is_mounted($backup_dir)){ + exec($mount_cmd); + sleep(1); + } + } + + $unmounted = $this->is_mounted($backup_dir) == 0 ? true : false; + if(!$unmounted) { + //* send email to admin that backup directory could not be unmounted + $global_config = $app->getconf->get_global_config('mail'); + if($global_config['admin_mail'] != ''){ + $subject = 'Backup directory '.$backup_dir.' could not be unmounted'; + $message = "Backup directory ".$backup_dir." could not be unmounted.\n\nThe command\n\n".$mount_cmd."\n\nfailed."; + mail($global_config['admin_mail'], $subject, $message); + } + } + + return $unmounted; + + } + function getinitcommand($servicename, $action, $init_script_directory = ''){ global $conf; // upstart -- Gitblit v1.9.1