Skip to content

Commit 4986189

Browse files
committed
Added custom php.ini directives to nginx + PHP-FPM.
1 parent 40cf983 commit 4986189

File tree

3 files changed

+45
-39
lines changed

3 files changed

+45
-39
lines changed

interface/web/admin/templates/server_config_web_edit.htm

Lines changed: 4 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -171,46 +171,14 @@ <h2><tmpl_var name="list_head_txt"></h2>
171171
function adjustForm(serverType){
172172
if(serverType == "nginx"){
173173
jQuery('.nginx').show();
174-
/*
175-
jQuery('#nginx_vhost_conf_dir').closest('div.ctrlHolder').show();
176-
jQuery('#nginx_vhost_conf_enabled_dir').closest('div.ctrlHolder').show();
177-
jQuery('#nginx_user').closest('div.ctrlHolder').show();
178-
jQuery('#nginx_group').closest('div.ctrlHolder').show();
179-
jQuery('#nginx_cgi_socket').closest('div.ctrlHolder').show();
180-
*/
181-
182174
jQuery('.apache').hide();
183-
/*
184-
jQuery('#vhost_conf_dir').closest('div.ctrlHolder').hide();
185-
jQuery('#vhost_conf_enabled_dir').closest('div.ctrlHolder').hide();
186-
jQuery('#security_level').closest('div.ctrlHolder').hide();
187-
jQuery('#check_apache_config').closest('div.ctrlHolder').hide();
188-
jQuery('#user').closest('div.ctrlHolder').hide();
189-
jQuery('#group').closest('div.ctrlHolder').hide();
190-
jQuery('#php_ini_path_apache').closest('div.ctrlHolder').hide();
191-
jQuery('#htaccess_allow_override').closest('div.ctrlHolder').hide();
192-
*/
175+
//jQuery('.tabbox_tabs li').find(":contains('FastCGI')").hide();
176+
//jQuery('.tabbox_tabs li').find(":contains('FastCGI')").remove();
193177
} else {
194178
jQuery('.nginx').hide();
195-
/*
196-
jQuery('#nginx_vhost_conf_dir').closest('div.ctrlHolder').hide();
197-
jQuery('#nginx_vhost_conf_enabled_dir').closest('div.ctrlHolder').hide();
198-
jQuery('#nginx_user').closest('div.ctrlHolder').hide();
199-
jQuery('#nginx_group').closest('div.ctrlHolder').hide();
200-
jQuery('#nginx_cgi_socket').closest('div.ctrlHolder').hide();
201-
*/
202-
203179
jQuery('.apache').show();
204-
/*
205-
jQuery('#vhost_conf_dir').closest('div.ctrlHolder').show();
206-
jQuery('#vhost_conf_enabled_dir').closest('div.ctrlHolder').show();
207-
jQuery('#security_level').closest('div.ctrlHolder').show();
208-
jQuery('#check_apache_config').closest('div.ctrlHolder').show();
209-
jQuery('#user').closest('div.ctrlHolder').show();
210-
jQuery('#group').closest('div.ctrlHolder').show();
211-
jQuery('#php_ini_path_apache').closest('div.ctrlHolder').show();
212-
jQuery('#htaccess_allow_override').closest('div.ctrlHolder').show();
213-
*/
180+
//jQuery('.tabbox_tabs li').find(":contains('FastCGI')").show();
181+
//jQuery('.tabbox_tabs li:eq(4)').after('<li><a href="javascript:changeTab(\'fastcgi\',\'admin/server_config_edit.php\')">FastCGI</a></li>');
214182
}
215183
}
216184
</script>

server/conf/php_fpm_pool.conf.master

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,7 @@ pm.max_spare_servers = 35
1313

1414
chdir = /
1515

16-
<tmpl_var name='enable_php_open_basedir'>php_admin_value[open_basedir] = <tmpl_var name='php_open_basedir'>
16+
<tmpl_var name='enable_php_open_basedir'>php_admin_value[open_basedir] = <tmpl_var name='php_open_basedir'>
17+
<tmpl_loop name="custom_php_ini_settings">
18+
<tmpl_var name='ini_setting'>
19+
</tmpl_loop>

server/plugins-available/nginx_plugin.inc.php

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1065,7 +1065,7 @@ private function php_fpm_pool_update ($data,$web_config) {
10651065
return;
10661066
}
10671067

1068-
if(!@is_file($pool_dir.'/'.$data['new']['domain'].'.conf') || ($data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain'])) {
1068+
//if(!@is_file($pool_dir.'/'.$data['new']['domain'].'.conf') || ($data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain'])) {
10691069
if ( @is_file($pool_dir.'/'.$data['old']['domain'].'.conf') ) {
10701070
unlink($pool_dir.'/'.$data['old']['domain'].'.conf');
10711071
}
@@ -1089,11 +1089,46 @@ private function php_fpm_pool_update ($data,$web_config) {
10891089
$tpl->setVar('enable_php_open_basedir', ';');
10901090
}
10911091

1092+
// Custom php.ini settings
1093+
$final_php_ini_settings = array();
1094+
$custom_php_ini_settings = trim($data['new']['custom_php_ini']);
1095+
if($custom_php_ini_settings != ''){
1096+
// Make sure we only have Unix linebreaks
1097+
$custom_php_ini_settings = str_replace("\r\n", "\n", $custom_php_ini_settings);
1098+
$custom_php_ini_settings = str_replace("\r", "\n", $custom_php_ini_settings);
1099+
$ini_settings = explode("\n", $custom_php_ini_settings);
1100+
if(is_array($ini_settings) && !empty($ini_settings)){
1101+
foreach($ini_settings as $ini_setting){
1102+
list($key, $value) = explode('=', $ini_setting);
1103+
if($value){
1104+
$value = trim($value);
1105+
$key = trim($key);
1106+
switch (strtolower($value)) {
1107+
case 'on':
1108+
case 'off':
1109+
case '1':
1110+
case '0':
1111+
case 'true':
1112+
case 'false':
1113+
case 'yes':
1114+
case 'no':
1115+
$final_php_ini_settings[] = array('ini_setting' => 'php_admin_flag['.$key.'] = '.$value);
1116+
break;
1117+
default:
1118+
$final_php_ini_settings[] = array('ini_setting' => 'php_admin_value['.$key.'] = '.$value);
1119+
}
1120+
}
1121+
}
1122+
}
1123+
}
1124+
1125+
$tpl->setLoop('custom_php_ini_settings', $final_php_ini_settings);
1126+
10921127
file_put_contents($pool_dir.'/'.$data['new']['domain'].'.conf',$tpl->grab());
10931128
$app->log('Writing the PHP-FPM config file: '.$pool_dir.'/'.$data['new']['domain'].'.conf',LOGLEVEL_DEBUG);
10941129
unset($tpl);
10951130
//$reload = true;
1096-
}
1131+
//}
10971132
//if($reload == true) $app->services->restartService('php-fpm','reload');
10981133
}
10991134

0 commit comments

Comments
 (0)