Skip to content

Commit 3b0f4a4

Browse files
author
Till Brehm
committed
Added PHP-FPM Restart mode. See System > Interface config > Web > PHP-FPM reload mode. Fixes #4816
1 parent faff70c commit 3b0f4a4

File tree

6 files changed

+34
-10
lines changed

6 files changed

+34
-10
lines changed

install/tpl/server.ini.master

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ overquota_db_notify_admin=y
116116
overquota_db_notify_client=y
117117
overquota_notify_onok=n
118118
logging=yes
119+
php_fpm_reload_mode=reload
119120

120121
[dns]
121122
bind_user=root

interface/web/admin/form/server_config.tform.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1376,6 +1376,14 @@
13761376
1 => 'y'
13771377
)
13781378
),
1379+
'php_fpm_reload_mode' => array(
1380+
'datatype' => 'VARCHAR',
1381+
'formtype' => 'SELECT',
1382+
'default' => 'reload',
1383+
'value' => array('reload' => 'Reload', 'restart' => 'Restart'),
1384+
'width' => '40',
1385+
'maxlength' => '255'
1386+
),
13791387
//#################################
13801388
// ENDE Datatable fields
13811389
//#################################

interface/web/admin/lib/lang/de_server_config.lng

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,4 +295,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0';
295295
$wb['php_default_name_txt'] = 'Beschreibung Standard PHP';
296296
$wb['php_default_name_error_empty'] = 'Beschreibung Standard PHP ist leer.';
297297
$wb['error_mailbox_message_size_txt'] = 'Mailboxgröße muss gleich oder größer als max. Nachrichtengröße sein.';
298+
$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload Modus';
298299
?>

interface/web/admin/lib/lang/en_server_config.lng

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,4 +296,5 @@ $wb['log_retention_error_ispositive'] = 'Log retention must be a number > 0';
296296
$wb['php_default_name_txt'] = 'Description Default PHP-Version';
297297
$wb['php_default_name_error_empty'] = 'Description Default PHP-Version must not be empty';
298298
$wb['error_mailbox_message_size_txt'] = 'Mailbox size must be larger or equal to message size';
299+
$wb['php_fpm_reload_mode_txt'] = 'PHP-FPM reload mode';
299300
?>

interface/web/admin/templates/server_config_web_edit.htm

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,12 @@ <h4 class="panel-title">
299299
{tmpl_var name='php_fpm_incron_reload'}
300300
</div>
301301
</div>
302+
<div class="form-group">
303+
<label class="col-sm-3 control-label">{tmpl_var name='php_fpm_reload_mode_txt'}</label>
304+
<div class="col-sm-9"><select name="php_fpm_reload_mode" id="php_fpm_reload_mode" class="form-control">
305+
{tmpl_var name='php_fpm_reload_mode'}
306+
</select></div>
307+
</div>
302308
<!-- End content -->
303309
</div>
304310
</div>

server/plugins-available/apache2_plugin.inc.php

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3058,6 +3058,8 @@ private function php_fpm_pool_update ($data, $web_config, $pool_dir, $pool_name,
30583058

30593059
$app->uses("getconf");
30603060
$web_config = $app->getconf->get_server_config($conf["server_id"], 'web');
3061+
3062+
$php_fpm_reload_mode = ($web_config['php_fpm_reload_mode'] == 'reload')?'reload':'restart';
30613063

30623064
if($data['new']['php'] != 'php-fpm'){
30633065
if(@is_file($pool_dir.$pool_name.'.conf')){
@@ -3066,9 +3068,9 @@ private function php_fpm_pool_update ($data, $web_config, $pool_dir, $pool_name,
30663068
}
30673069
if($data['old']['php'] == 'php-fpm'){
30683070
if(!$default_php_fpm){
3069-
$app->services->restartService('php-fpm', 'reload:'.$custom_php_fpm_init_script);
3071+
$app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$custom_php_fpm_init_script);
30703072
} else {
3071-
$app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
3073+
$app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
30723074
}
30733075
}
30743076
//if($reload == true) $app->services->restartService('php-fpm','reload');
@@ -3205,7 +3207,7 @@ private function php_fpm_pool_update ($data, $web_config, $pool_dir, $pool_name,
32053207
if ( @is_file($default_pool_dir.$pool_name.'.conf') ) {
32063208
$app->system->unlink($default_pool_dir.$pool_name.'.conf');
32073209
$app->log('Removed PHP-FPM config file: '.$default_pool_dir.$pool_name.'.conf', LOGLEVEL_DEBUG);
3208-
$app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
3210+
$app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
32093211
}
32103212
}
32113213
$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,17 +3219,17 @@ private function php_fpm_pool_update ($data, $web_config, $pool_dir, $pool_name,
32173219
if ( @is_file($php_version['php_fpm_pool_dir'].$pool_name.'.conf') ) {
32183220
$app->system->unlink($php_version['php_fpm_pool_dir'].$pool_name.'.conf');
32193221
$app->log('Removed PHP-FPM config file: '.$php_version['php_fpm_pool_dir'].$pool_name.'.conf', LOGLEVEL_DEBUG);
3220-
$app->services->restartService('php-fpm', 'reload:'.$php_version['php_fpm_init_script']);
3222+
$app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$php_version['php_fpm_init_script']);
32213223
}
32223224
}
32233225
}
32243226
}
32253227
// Reload current PHP-FPM after all others
32263228
sleep(1);
32273229
if(!$default_php_fpm){
3228-
$app->services->restartService('php-fpm', 'reload:'.$custom_php_fpm_init_script);
3230+
$app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$custom_php_fpm_init_script);
32293231
} else {
3230-
$app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
3232+
$app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
32313233
}
32323234

32333235
//$reload = true;
@@ -3238,6 +3240,11 @@ private function php_fpm_pool_update ($data, $web_config, $pool_dir, $pool_name,
32383240
//* Delete the PHP-FPM pool configuration file
32393241
private function php_fpm_pool_delete ($data, $web_config) {
32403242
global $app, $conf;
3243+
3244+
$app->uses("getconf");
3245+
$web_config = $app->getconf->get_server_config($conf["server_id"], 'web');
3246+
3247+
$php_fpm_reload_mode = ($web_config['php_fpm_reload_mode'] == 'reload')?'reload':'restart';
32413248

32423249
if(trim($data['old']['fastcgi_php_version']) != '' && $data['old']['php'] == 'php-fpm'){
32433250
$default_php_fpm = false;
@@ -3271,7 +3278,7 @@ private function php_fpm_pool_delete ($data, $web_config) {
32713278
if ( @is_file($default_pool_dir.$pool_name.'.conf') ) {
32723279
$app->system->unlink($default_pool_dir.$pool_name.'.conf');
32733280
$app->log('Removed PHP-FPM config file: '.$default_pool_dir.$pool_name.'.conf', LOGLEVEL_DEBUG);
3274-
$app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
3281+
$app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
32753282
}
32763283
}
32773284
$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 @@ private function php_fpm_pool_delete ($data, $web_config) {
32833290
if ( @is_file($php_version['php_fpm_pool_dir'].$pool_name.'.conf') ) {
32843291
$app->system->unlink($php_version['php_fpm_pool_dir'].$pool_name.'.conf');
32853292
$app->log('Removed PHP-FPM config file: '.$php_version['php_fpm_pool_dir'].$pool_name.'.conf', LOGLEVEL_DEBUG);
3286-
$app->services->restartService('php-fpm', 'reload:'.$php_version['php_fpm_init_script']);
3293+
$app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$php_version['php_fpm_init_script']);
32873294
}
32883295
}
32893296
}
@@ -3292,9 +3299,9 @@ private function php_fpm_pool_delete ($data, $web_config) {
32923299
// Reload current PHP-FPM after all others
32933300
sleep(1);
32943301
if(!$default_php_fpm){
3295-
$app->services->restartService('php-fpm', 'reload:'.$custom_php_fpm_init_script);
3302+
$app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$custom_php_fpm_init_script);
32963303
} else {
3297-
$app->services->restartService('php-fpm', 'reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
3304+
$app->services->restartService('php-fpm', $php_fpm_reload_mode.':'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']);
32983305
}
32993306
}
33003307

0 commit comments

Comments
 (0)