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 | 57 ++++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 48 insertions(+), 9 deletions(-) diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index bfc4e09..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,31 +1802,70 @@ } 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; - // systemd - if(is_executable('/bin/systemd') || is_executable('/usr/bin/systemctl')){ - return 'systemctl '.$action.' '.$servicename.'.service'; - } // upstart if(is_executable('/sbin/initctl')){ exec('/sbin/initctl version 2>/dev/null | /bin/grep -q upstart', $retval['output'], $retval['retval']); if(intval($retval['retval']) == 0) return 'service '.$servicename.' '.$action; + } + // systemd + if(is_executable('/bin/systemd') || is_executable('/usr/bin/systemctl')){ + return 'systemctl '.$action.' '.$servicename.'.service'; } // sysvinit if($init_script_directory == '') $init_script_directory = $conf['init_scripts']; @@ -1863,8 +1902,8 @@ global $app; $cmd = ''; - if(is_installed('apache2ctl')) $cmd = 'apache2ctl -t -D DUMP_MODULES'; - elseif(is_installed('apachectl')) $cmd = 'apachectl -t -D DUMP_MODULES'; + if($this->is_installed('apache2ctl')) $cmd = 'apache2ctl -t -D DUMP_MODULES'; + elseif($this->is_installed('apachectl')) $cmd = 'apachectl -t -D DUMP_MODULES'; else { $app->log("Could not check apache modules, apachectl not found.", LOGLEVEL_WARN); return array(); -- Gitblit v1.9.1