- Improved recognition of when a service (Apache, nginx, etc.) was really restarted/reloaded successfully. Checking port 80 is not enough because nginx reloads silently, ignoring faulty configuration files, but returns a value > 0. If we don't check the return value, nginx will refuse to start when someone issues a restart the next time.
| | |
| | | } else { |
| | | isset($_SERVER['HTTPS'])? $http = 'https' : $http = 'http'; |
| | | if($web_config['server_type'] == 'nginx') { |
| | | header('location:' . $http . '://' . $serverData['server_name'] . ':8081/phpmyadmin'); |
| | | header('Location: http://' . $serverData['server_name'] . ':8081/phpmyadmin'); |
| | | } else { |
| | | header('location:' . $http . '://' . $serverData['server_name'] . '/phpmyadmin'); |
| | | header('Location: ' . $http . '://' . $serverData['server_name'] . '/phpmyadmin'); |
| | | } |
| | | } |
| | | exit; |
| | |
| | | $function_name = $this->registered_services[$service_name]['function']; |
| | | $app->log("Calling function '$function_name' from module '$module_name'.",LOGLEVEL_DEBUG); |
| | | // call_user_method($function_name,$app->loaded_modules[$module_name],$action); |
| | | call_user_func(array($app->loaded_modules[$module_name],$function_name),$action); |
| | | return call_user_func(array($app->loaded_modules[$module_name],$function_name),$action); |
| | | } else { |
| | | $app->log("Unable to restart $service_name. Service not registered.",LOGLEVEL_WARNING); |
| | | return 0; |
| | | } |
| | | |
| | | } |
| | |
| | | } |
| | | |
| | | if($action == 'restart') { |
| | | exec($conf['init_scripts'] . '/' . $daemon . ' restart'); |
| | | exec($conf['init_scripts'] . '/' . $daemon . ' restart', $output, $retval); |
| | | } else { |
| | | exec($conf['init_scripts'] . '/' . $daemon . ' reload'); |
| | | exec($conf['init_scripts'] . '/' . $daemon . ' reload', $output, $retval); |
| | | } |
| | | |
| | | return $retval; |
| | | } |
| | | |
| | | function restartPowerDNS($action = 'restart') { |
| | |
| | | $daemon = 'pdns'; |
| | | } |
| | | |
| | | exec($conf['init_scripts'] . '/' . $daemon . ' restart'); |
| | | exec($conf['init_scripts'] . '/' . $daemon . ' restart', $output, $retval); |
| | | |
| | | // unset $tmps; |
| | | return $retval; |
| | | |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | if($action == 'restart') { |
| | | exec($conf['init_scripts'] . '/' . $daemon . ' restart'); |
| | | exec($conf['init_scripts'] . '/' . $daemon . ' restart', $output, $retval); |
| | | } else { |
| | | exec($conf['init_scripts'] . '/' . $daemon . ' reload'); |
| | | exec($conf['init_scripts'] . '/' . $daemon . ' reload', $output, $retval); |
| | | } |
| | | |
| | | return $retval; |
| | | } |
| | | |
| | | function restartPHP_FPM($action = 'restart') { |
| | |
| | | |
| | | if(!$init_script) $init_script = $conf['init_scripts'].'/'.$web_config['php_fpm_init_script']; |
| | | |
| | | exec($init_script.' '.$action); |
| | | exec($init_script.' '.$action, $output, $retval); |
| | | return $retval; |
| | | } |
| | | |
| | | } // end class |
| | |
| | | $apache_online_status_before_restart = $this->_checkTcp('localhost',80); |
| | | $app->log('Apache status is: '.$apache_online_status_before_restart,LOGLEVEL_DEBUG); |
| | | |
| | | $app->services->restartService('httpd','restart'); |
| | | $retval = $app->services->restartService('httpd','restart'); // $retval is 0 on success and > 0 on failure |
| | | $app->log('Apache restart return value is: '.$retval,LOGLEVEL_DEBUG); |
| | | |
| | | // wait a few seconds, before we test the apache status again |
| | | $apache_online_status_after_restart = false; |
| | |
| | | } |
| | | //* Check if apache restarted successfully if it was online before |
| | | $app->log('Apache online status after restart is: '.$apache_online_status_after_restart,LOGLEVEL_DEBUG); |
| | | if($apache_online_status_before_restart && !$apache_online_status_after_restart) { |
| | | $app->log('Apache did not restart after the configuration change for website '.$data['new']['domain'].' Reverting the configuration. Saved non-working config as '.$vhost_file.'.err',LOGLEVEL_WARN); |
| | | if($apache_online_status_before_restart && !$apache_online_status_after_restart || $retval > 0) { |
| | | $app->log('Apache did not restart after the configuration change for website '.$data['new']['domain'].'. Reverting the configuration. Saved non-working config as '.$vhost_file.'.err',LOGLEVEL_WARN); |
| | | $app->system->copy($vhost_file,$vhost_file.'.err'); |
| | | if(is_file($vhost_file.'~')) { |
| | | //* Copy back the last backup file |
| | |
| | | $nginx_online_status_before_restart = $this->_checkTcp('localhost',80); |
| | | $app->log('nginx status is: '.$nginx_online_status_before_restart,LOGLEVEL_DEBUG); |
| | | |
| | | $app->services->restartService('httpd','restart'); |
| | | $retval = $app->services->restartService('httpd','restart'); // $retval is 0 on success and > 0 on failure |
| | | $app->log('nginx restart return value is: '.$retval,LOGLEVEL_DEBUG); |
| | | |
| | | // wait a few seconds, before we test the apache status again |
| | | sleep(2); |
| | |
| | | //* Check if nginx restarted successfully if it was online before |
| | | $nginx_online_status_after_restart = $this->_checkTcp('localhost',80); |
| | | $app->log('nginx online status after restart is: '.$nginx_online_status_after_restart,LOGLEVEL_DEBUG); |
| | | if($nginx_online_status_before_restart && !$nginx_online_status_after_restart) { |
| | | $app->log('nginx did not restart after the configuration change for website '.$data['new']['domain'].' Reverting the configuration. Saved non-working config as '.$vhost_file.'.err',LOGLEVEL_WARN); |
| | | if($nginx_online_status_before_restart && !$nginx_online_status_after_restart || $retval > 0) { |
| | | $app->log('nginx did not restart after the configuration change for website '.$data['new']['domain'].'. Reverting the configuration. Saved non-working config as '.$vhost_file.'.err',LOGLEVEL_WARN); |
| | | $app->system->copy($vhost_file,$vhost_file.'.err'); |
| | | if(is_file($vhost_file.'~')) { |
| | | //* Copy back the last backup file |