| | |
| | | $daemon = $web_config['server_type']; |
| | | break; |
| | | default: |
| | | if(is_file($conf['init_scripts'] . '/' . 'httpd')) { |
| | | if(is_file($conf['init_scripts'] . '/' . 'httpd') || is_dir('/etc/httpd')) { |
| | | $daemon = 'httpd'; |
| | | } else { |
| | | $daemon = 'apache2'; |
| | |
| | | |
| | | $retval = array('output' => '', 'retval' => 0); |
| | | if($action == 'restart') { |
| | | exec($app->system->getinitcommand($daemon, 'restart').' 2>&1', $retval['output'], $retval['retval']); |
| | | |
| | | $cmd = $app->system->getinitcommand($daemon, 'restart'); |
| | | } else { |
| | | exec($app->system->getinitcommand($daemon, 'reload').' 2>&1', $retval['output'], $retval['retval']); |
| | | $cmd = $app->system->getinitcommand($daemon, 'reload'); |
| | | } |
| | | |
| | | // nginx: do a syntax check because on some distributions, the init script always returns 0 - even if the syntax is not ok (how stupid is that?) |
| | | if($web_config['server_type'] == 'nginx' && $retval['retval'] == 0 && is_executable('/usr/sbin/nginx')){ |
| | | exec('/usr/sbin/nginx -t 2>&1', $retval['output'], $retval['retval']); |
| | | if($web_config['server_type'] == 'nginx'){ |
| | | $app->log("Checking nginx configuration...", LOGLEVEL_DEBUG); |
| | | exec('nginx -t 2>&1', $retval['output'], $retval['retval']); |
| | | if($retval['retval'] == 0){ |
| | | $app->log("nginx configuration ok!", LOGLEVEL_DEBUG); |
| | | } else { |
| | | $app->log("nginx config test failed!", LOGLEVEL_DEBUG); |
| | | return $retval; |
| | | } |
| | | } |
| | | |
| | | exec($cmd.' 2>&1', $retval['output'], $retval['retval']); |
| | | |
| | | // if restart failed despite successful syntax check => try again |
| | | if($web_config['server_type'] == 'nginx' && $retval['retval'] > 0){ |
| | | sleep(2); |
| | | exec($cmd.' 2>&1', $retval['output'], $retval['retval']); |
| | | } |
| | | $app->log("Restarting httpd: $cmd", LOGLEVEL_DEBUG); |
| | | |
| | | // nginx: do a syntax check because on some distributions, the init script always returns 0 - even if the syntax is not ok (how stupid is that?) |
| | | //if($web_config['server_type'] == 'nginx' && $retval['retval'] == 0){ |
| | | //exec('nginx -t 2>&1', $retval['output'], $retval['retval']); |
| | | //} |
| | | return $retval; |
| | | } |
| | | |
| | |
| | | // @see: https://bugs.launchpad.net/ubuntu/+source/php5/+bug/1242376 |
| | | if(file_exists('/etc/os-release')) { |
| | | $tmp = file_get_contents('/etc/os-release'); |
| | | if(preg_match('/^ID=ubuntu/m', $tmp) && preg_match('/^VERSION_ID="14\.04"/m', $tmp)) { |
| | | //if(preg_match('/^ID=ubuntu/m', $tmp) && preg_match('/^VERSION_ID="14\.04"/m', $tmp)) { |
| | | if(preg_match('/^ID=ubuntu/m', $tmp) && preg_match('/^VERSION_ID="14\.04"/m', $tmp) && stristr(phpversion(), 'deb.sury.org') === false) { |
| | | $initcommand = '/sbin/start-stop-daemon --stop --signal USR2 --quiet --pidfile /var/run/php5-fpm.pid --name php5-fpm'; |
| | | } |
| | | // And the next workaround, php-fpm reloads in centos 7 downt work as well. |
| | | /* |
| | | if(preg_match('/^ID=centos/m', $tmp) && preg_match('/^VERSION_ID="7"/m', $tmp)) { |
| | | $initcommand = 'systemctl restart php-fpm.service'; |
| | | } |
| | | */ |
| | | unset($tmp); |
| | | } |
| | | } |
| | | /* |
| | | if($action == 'reload') { |
| | | // And the next workaround, php-fpm reloads in centos 7 downt work as well. |
| | | if(file_exists('/etc/os-release')) { |
| | | $tmp = file_get_contents('/etc/os-release'); |
| | | // And the next workaround, php-fpm reloads in centos 7 downt work as well. |
| | | if(preg_match('/^ID="centos"/m', $tmp) && preg_match('/^VERSION_ID="7"/m', $tmp)) { |
| | | $initcommand = 'systemctl restart php-fpm.service'; |
| | | } |
| | | unset($tmp); |
| | | } |
| | | } |
| | | */ |
| | | } |
| | | |
| | | $retval = array('output' => '', 'retval' => 0); |
| | | exec($initcommand.' 2>&1', $retval['output'], $retval['retval']); |
| | | $app->log("Restarting php-fpm: $initcommand", LOGLEVEL_DEBUG); |
| | | return $retval; |
| | | } |
| | | |