diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master
index 406881010ebc6ca33cf74fbaebd312e9804d60e8..6441609cabd2a1c326bdd22bc31abfe8a623b321 100644
--- a/install/tpl/server.ini.master
+++ b/install/tpl/server.ini.master
@@ -116,6 +116,7 @@ overquota_db_notify_admin=y
overquota_db_notify_client=y
overquota_notify_onok=n
logging=yes
+php_fpm_reload_mode=reload
[dns]
bind_user=root
diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php
index e0cf897abd1f066afba44f40d16c0703044649ac..1a6c8070cb462ef079efa137b6f297b4456f01af 100644
--- a/interface/web/admin/form/server_config.tform.php
+++ b/interface/web/admin/form/server_config.tform.php
@@ -1376,6 +1376,14 @@ $form["tabs"]['web'] = array(
1 => 'y'
)
),
+ 'php_fpm_reload_mode' => array(
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'SELECT',
+ 'default' => 'reload',
+ 'value' => array('reload' => 'Reload', 'restart' => 'Restart'),
+ 'width' => '40',
+ 'maxlength' => '255'
+ ),
//#################################
// ENDE Datatable fields
//#################################
diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng
index 73c6609a1ad8d0423dbfcd7d0456b890d636527f..108bf96de8799eab514ed5e6940a07fbe7308396 100644
--- a/interface/web/admin/lib/lang/de_server_config.lng
+++ b/interface/web/admin/lib/lang/de_server_config.lng
@@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0';
$wb['php_default_name_txt'] = 'Beschreibung Standard PHP';
$wb['php_default_name_error_empty'] = 'Beschreibung Standard PHP ist leer.';
$wb['error_mailbox_message_size_txt'] = 'Mailboxgröße muss gleich oder größer als max. Nachrichtengröße sein.';
+$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload Modus';
?>
diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng
index 7ca9967922b68b20a9e0d1f1d88dbc5a1fde4d85..ac0ee42b9015004de1b0a9aa458e2436ea9c8af7 100644
--- a/interface/web/admin/lib/lang/en_server_config.lng
+++ b/interface/web/admin/lib/lang/en_server_config.lng
@@ -296,4 +296,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0';
$wb['php_default_name_txt'] = 'Description Default PHP-Version';
$wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty';
$wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size';
+$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode';
?>
diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm
index 8231e45cb7539d4d7a19ee095d94152f9bba2000..eb285bbc078c6663ad4681e16493d4f131088555 100644
--- a/interface/web/admin/templates/server_config_web_edit.htm
+++ b/interface/web/admin/templates/server_config_web_edit.htm
@@ -299,6 +299,12 @@
{tmpl_var name='php_fpm_incron_reload'}
+
diff --git a/server/plugins-available/apache2_plugin.inc.php b/server/plugins-available/apache2_plugin.inc.php
index 6fa3101ed76bb59d4ed7f0aa1ebe121217c079a7..7ecbb76109110f0d85945626168ecbfa0cccb7b3 100644
--- a/server/plugins-available/apache2_plugin.inc.php
+++ b/server/plugins-available/apache2_plugin.inc.php
@@ -3058,6 +3058,8 @@ class apache2_plugin {
$app->uses("getconf");
$web_config = $app->getconf->get_server_config($conf["server_id"], 'web');
+
+ $php_fpm_reload_mode = ($web_config['php_fpm_reload_mode'] == 'reload')?'reload':'restart';
if($data['new']['php'] != 'php-fpm'){
if(@is_file($pool_dir.$pool_name.'.conf')){
@@ -3066,9 +3068,9 @@ class apache2_plugin {
}
if($data['old']['php'] == 'php-fpm'){
if(!$default_php_fpm){
- $app->services->restartService('php-fpm', 'reload:'.$custom_php_fpm_init_script);
+ $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$custom_php_fpm_init_script);
} else {
- $app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
+ $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
}
}
//if($reload == true) $app->services->restartService('php-fpm','reload');
@@ -3205,7 +3207,7 @@ class apache2_plugin {
if ( @is_file($default_pool_dir.$pool_name.'.conf') ) {
$app->system->unlink($default_pool_dir.$pool_name.'.conf');
$app->log('Removed PHP-FPM config file: '.$default_pool_dir.$pool_name.'.conf', LOGLEVEL_DEBUG);
- $app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
+ $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
}
}
$php_versions = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ?", $conf["server_id"]);
@@ -3217,7 +3219,7 @@ class apache2_plugin {
if ( @is_file($php_version['php_fpm_pool_dir'].$pool_name.'.conf') ) {
$app->system->unlink($php_version['php_fpm_pool_dir'].$pool_name.'.conf');
$app->log('Removed PHP-FPM config file: '.$php_version['php_fpm_pool_dir'].$pool_name.'.conf', LOGLEVEL_DEBUG);
- $app->services->restartService('php-fpm', 'reload:'.$php_version['php_fpm_init_script']);
+ $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$php_version['php_fpm_init_script']);
}
}
}
@@ -3225,9 +3227,9 @@ class apache2_plugin {
// Reload current PHP-FPM after all others
sleep(1);
if(!$default_php_fpm){
- $app->services->restartService('php-fpm', 'reload:'.$custom_php_fpm_init_script);
+ $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$custom_php_fpm_init_script);
} else {
- $app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
+ $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
}
//$reload = true;
@@ -3238,6 +3240,11 @@ class apache2_plugin {
//* Delete the PHP-FPM pool configuration file
private function php_fpm_pool_delete ($data, $web_config) {
global $app, $conf;
+
+ $app->uses("getconf");
+ $web_config = $app->getconf->get_server_config($conf["server_id"], 'web');
+
+ $php_fpm_reload_mode = ($web_config['php_fpm_reload_mode'] == 'reload')?'reload':'restart';
if(trim($data['old']['fastcgi_php_version']) != '' && $data['old']['php'] == 'php-fpm'){
$default_php_fpm = false;
@@ -3271,7 +3278,7 @@ class apache2_plugin {
if ( @is_file($default_pool_dir.$pool_name.'.conf') ) {
$app->system->unlink($default_pool_dir.$pool_name.'.conf');
$app->log('Removed PHP-FPM config file: '.$default_pool_dir.$pool_name.'.conf', LOGLEVEL_DEBUG);
- $app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
+ $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
}
}
$php_versions = $app->db->queryAllRecords("SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ?", $data['old']['server_id']);
@@ -3283,7 +3290,7 @@ class apache2_plugin {
if ( @is_file($php_version['php_fpm_pool_dir'].$pool_name.'.conf') ) {
$app->system->unlink($php_version['php_fpm_pool_dir'].$pool_name.'.conf');
$app->log('Removed PHP-FPM config file: '.$php_version['php_fpm_pool_dir'].$pool_name.'.conf', LOGLEVEL_DEBUG);
- $app->services->restartService('php-fpm', 'reload:'.$php_version['php_fpm_init_script']);
+ $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$php_version['php_fpm_init_script']);
}
}
}
@@ -3292,9 +3299,9 @@ class apache2_plugin {
// Reload current PHP-FPM after all others
sleep(1);
if(!$default_php_fpm){
- $app->services->restartService('php-fpm', 'reload:'.$custom_php_fpm_init_script);
+ $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$custom_php_fpm_init_script);
} else {
- $app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
+ $app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
}
}