From 4986189f63d2f6178ac973f5ac12555e52c0a226 Mon Sep 17 00:00:00 2001 From: ftimme Date: Mon, 19 Sep 2011 13:21:28 +0000 Subject: [PATCH] Added custom php.ini directives to nginx + PHP-FPM. --- .../templates/server_config_web_edit.htm | 40 ++----------------- server/conf/php_fpm_pool.conf.master | 5 ++- server/plugins-available/nginx_plugin.inc.php | 39 +++++++++++++++++- 3 files changed, 45 insertions(+), 39 deletions(-) diff --git a/interface/web/admin/templates/server_config_web_edit.htm b/interface/web/admin/templates/server_config_web_edit.htm index 60ad32c78e..796fabc672 100644 --- a/interface/web/admin/templates/server_config_web_edit.htm +++ b/interface/web/admin/templates/server_config_web_edit.htm @@ -171,46 +171,14 @@ function adjustForm(serverType){ if(serverType == "nginx"){ jQuery('.nginx').show(); - /* - jQuery('#nginx_vhost_conf_dir').closest('div.ctrlHolder').show(); - jQuery('#nginx_vhost_conf_enabled_dir').closest('div.ctrlHolder').show(); - jQuery('#nginx_user').closest('div.ctrlHolder').show(); - jQuery('#nginx_group').closest('div.ctrlHolder').show(); - jQuery('#nginx_cgi_socket').closest('div.ctrlHolder').show(); - */ - jQuery('.apache').hide(); - /* - jQuery('#vhost_conf_dir').closest('div.ctrlHolder').hide(); - jQuery('#vhost_conf_enabled_dir').closest('div.ctrlHolder').hide(); - jQuery('#security_level').closest('div.ctrlHolder').hide(); - jQuery('#check_apache_config').closest('div.ctrlHolder').hide(); - jQuery('#user').closest('div.ctrlHolder').hide(); - jQuery('#group').closest('div.ctrlHolder').hide(); - jQuery('#php_ini_path_apache').closest('div.ctrlHolder').hide(); - jQuery('#htaccess_allow_override').closest('div.ctrlHolder').hide(); - */ + //jQuery('.tabbox_tabs li').find(":contains('FastCGI')").hide(); + //jQuery('.tabbox_tabs li').find(":contains('FastCGI')").remove(); } else { jQuery('.nginx').hide(); - /* - jQuery('#nginx_vhost_conf_dir').closest('div.ctrlHolder').hide(); - jQuery('#nginx_vhost_conf_enabled_dir').closest('div.ctrlHolder').hide(); - jQuery('#nginx_user').closest('div.ctrlHolder').hide(); - jQuery('#nginx_group').closest('div.ctrlHolder').hide(); - jQuery('#nginx_cgi_socket').closest('div.ctrlHolder').hide(); - */ - jQuery('.apache').show(); - /* - jQuery('#vhost_conf_dir').closest('div.ctrlHolder').show(); - jQuery('#vhost_conf_enabled_dir').closest('div.ctrlHolder').show(); - jQuery('#security_level').closest('div.ctrlHolder').show(); - jQuery('#check_apache_config').closest('div.ctrlHolder').show(); - jQuery('#user').closest('div.ctrlHolder').show(); - jQuery('#group').closest('div.ctrlHolder').show(); - jQuery('#php_ini_path_apache').closest('div.ctrlHolder').show(); - jQuery('#htaccess_allow_override').closest('div.ctrlHolder').show(); - */ + //jQuery('.tabbox_tabs li').find(":contains('FastCGI')").show(); + //jQuery('.tabbox_tabs li:eq(4)').after('
  • FastCGI
  • '); } } \ No newline at end of file diff --git a/server/conf/php_fpm_pool.conf.master b/server/conf/php_fpm_pool.conf.master index 91d8656055..73ebffb6a1 100644 --- a/server/conf/php_fpm_pool.conf.master +++ b/server/conf/php_fpm_pool.conf.master @@ -13,4 +13,7 @@ pm.max_spare_servers = 35 chdir = / -php_admin_value[open_basedir] = \ No newline at end of file +php_admin_value[open_basedir] = + + + \ No newline at end of file diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index 44cd26b99c..01c9e5cc3a 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -1065,7 +1065,7 @@ class nginx_plugin { return; } - if(!@is_file($pool_dir.'/'.$data['new']['domain'].'.conf') || ($data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain'])) { + //if(!@is_file($pool_dir.'/'.$data['new']['domain'].'.conf') || ($data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain'])) { if ( @is_file($pool_dir.'/'.$data['old']['domain'].'.conf') ) { unlink($pool_dir.'/'.$data['old']['domain'].'.conf'); } @@ -1089,11 +1089,46 @@ class nginx_plugin { $tpl->setVar('enable_php_open_basedir', ';'); } + // Custom php.ini settings + $final_php_ini_settings = array(); + $custom_php_ini_settings = trim($data['new']['custom_php_ini']); + if($custom_php_ini_settings != ''){ + // Make sure we only have Unix linebreaks + $custom_php_ini_settings = str_replace("\r\n", "\n", $custom_php_ini_settings); + $custom_php_ini_settings = str_replace("\r", "\n", $custom_php_ini_settings); + $ini_settings = explode("\n", $custom_php_ini_settings); + if(is_array($ini_settings) && !empty($ini_settings)){ + foreach($ini_settings as $ini_setting){ + list($key, $value) = explode('=', $ini_setting); + if($value){ + $value = trim($value); + $key = trim($key); + switch (strtolower($value)) { + case 'on': + case 'off': + case '1': + case '0': + case 'true': + case 'false': + case 'yes': + case 'no': + $final_php_ini_settings[] = array('ini_setting' => 'php_admin_flag['.$key.'] = '.$value); + break; + default: + $final_php_ini_settings[] = array('ini_setting' => 'php_admin_value['.$key.'] = '.$value); + } + } + } + } + } + + $tpl->setLoop('custom_php_ini_settings', $final_php_ini_settings); + file_put_contents($pool_dir.'/'.$data['new']['domain'].'.conf',$tpl->grab()); $app->log('Writing the PHP-FPM config file: '.$pool_dir.'/'.$data['new']['domain'].'.conf',LOGLEVEL_DEBUG); unset($tpl); //$reload = true; - } + //} //if($reload == true) $app->services->restartService('php-fpm','reload'); } -- GitLab