From b4687b3fa3df9f144a4b713028ccd30add749292 Mon Sep 17 00:00:00 2001 From: ftimme <ft@falkotimme.com> Date: Fri, 23 Mar 2012 08:43:03 -0400 Subject: [PATCH] - nginx: added support for multiple PHP-FPM versions (FS#1963 now complete). --- interface/web/sites/web_domain_edit.php | 48 +++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 41 insertions(+), 7 deletions(-) diff --git a/interface/web/sites/web_domain_edit.php b/interface/web/sites/web_domain_edit.php index a372a5b..d74fae3 100644 --- a/interface/web/sites/web_domain_edit.php +++ b/interface/web/sites/web_domain_edit.php @@ -86,6 +86,8 @@ function onShowEnd() { global $app, $conf; + + $app->uses('ini_parser,getconf'); //* Client: If the logged in user is not admin and has no sub clients (no reseller) if($_SESSION["s"]["user"]["typ"] != 'admin' && !$app->auth->has_clients($_SESSION['s']['user']['userid'])) { @@ -130,12 +132,23 @@ unset($ips); //PHP Version Selection (FastCGI) - $sql = "SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ".$client['default_webserver']." AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")"; + $server_type = 'apache'; + $web_config = $app->getconf->get_server_config($client['default_webserver'], 'web'); + if(!empty($web_config['server_type'])) $server_type = $web_config['server_type']; + if($server_type == 'nginx'){ + $sql = "SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ".$client['default_webserver']." AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")"; + } else { + $sql = "SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ".$client['default_webserver']." AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")"; + } $php_records = $app->db->queryAllRecords($sql); $php_select = "<option value=''>Default</option>"; if(is_array($php_records) && !empty($php_records)) { foreach( $php_records as $php_record) { - $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; + if($server_type == 'nginx'){ + $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; + } else { + $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; + } $selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':''; $php_select .= "<option value='$php_version' $selected>".$php_record['name']."</option>\r\n"; } @@ -200,12 +213,23 @@ unset($ips); //PHP Version Selection (FastCGI) - $sql = "SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ".$client['default_webserver']." AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")"; + $server_type = 'apache'; + $web_config = $app->getconf->get_server_config($client['default_webserver'], 'web'); + if(!empty($web_config['server_type'])) $server_type = $web_config['server_type']; + if($server_type == 'nginx'){ + $sql = "SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = ".$client['default_webserver']." AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")"; + } else { + $sql = "SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = ".$client['default_webserver']." AND (client_id = 0 OR client_id=".$_SESSION['s']['user']['client_id'].")"; + } $php_records = $app->db->queryAllRecords($sql); $php_select = "<option value=''>Default</option>"; if(is_array($php_records) && !empty($php_records)) { foreach( $php_records as $php_record) { - $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; + if($server_type == 'nginx'){ + $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; + } else { + $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; + } $selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':''; $php_select .= "<option value='$php_version' $selected>".$php_record['name']."</option>\r\n"; } @@ -256,12 +280,23 @@ unset($ips); //PHP Version Selection (FastCGI) - $sql = "SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = $server_id"; + $server_type = 'apache'; + $web_config = $app->getconf->get_server_config($server_id, 'web'); + if(!empty($web_config['server_type'])) $server_type = $web_config['server_type']; + if($server_type == 'nginx'){ + $sql = "SELECT * FROM server_php WHERE php_fpm_init_script != '' AND php_fpm_ini_dir != '' AND php_fpm_pool_dir != '' AND server_id = $server_id"; + } else { + $sql = "SELECT * FROM server_php WHERE php_fastcgi_binary != '' AND php_fastcgi_ini_dir != '' AND server_id = $server_id"; + } $php_records = $app->db->queryAllRecords($sql); $php_select = "<option value=''>Default</option>"; if(is_array($php_records) && !empty($php_records)) { foreach( $php_records as $php_record) { - $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; + if($server_type == 'nginx'){ + $php_version = $php_record['name'].':'.$php_record['php_fpm_init_script'].':'.$php_record['php_fpm_ini_dir'].':'.$php_record['php_fpm_pool_dir']; + } else { + $php_version = $php_record['name'].':'.$php_record['php_fastcgi_binary'].':'.$php_record['php_fastcgi_ini_dir']; + } $selected = ($php_version == $this->dataRecord["fastcgi_php_version"])?'SELECTED':''; $php_select .= "<option value='$php_version' $selected>".$php_record['name']."</option>\r\n"; } @@ -314,7 +349,6 @@ * Now we have to check, if we should use the domain-module to select the domain * or not */ - $app->uses('ini_parser,getconf'); $settings = $app->getconf->get_global_config('domains'); if ($settings['use_domain_module'] == 'y') { /* -- Gitblit v1.9.1