interface/web/sites/ajax_get_json.php | ●●●●● patch | view | raw | blame | history | |
interface/web/sites/web_domain_edit.php | ●●●●● patch | view | raw | blame | history | |
server/plugins-available/nginx_plugin.inc.php | ●●●●● patch | view | raw | blame | history |
interface/web/sites/ajax_get_json.php
@@ -34,6 +34,8 @@ //* Check permissions for module $app->auth->check_module_permissions('sites'); $app->uses('getconf'); $server_id = intval($_GET["server_id"]); $web_id = intval($_GET["web_id"]); $type = $_GET["type"]; @@ -43,7 +45,6 @@ if($type == 'getservertype'){ $json = '{"servertype":"'; $server_type = 'apache'; $app->uses('getconf'); $web_config = $app->getconf->get_server_config($server_id, 'web'); if(!empty($web_config['server_type'])) $server_type = $web_config['server_type']; $json .= $server_type; @@ -62,12 +63,24 @@ if($type == 'getphpfastcgi'){ $json = '{'; $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 = ""; if(is_array($php_records) && !empty($php_records)) { foreach( $php_records as $php_record) { 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']; } $json .= '"'.$php_version.'": "'.$php_record['name'].'",'; } } interface/web/sites/web_domain_edit.php
@@ -87,6 +87,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) $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) { 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) $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) { 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) $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) { 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') { /* server/plugins-available/nginx_plugin.inc.php
@@ -712,7 +712,20 @@ if($data['new']['ipv6_address'] != '') $tpl->setVar('ipv6_enabled', 1); // PHP-FPM // Support for multiple PHP versions if(trim($data['new']['fastcgi_php_version']) != ''){ $default_php_fpm = false; list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['new']['fastcgi_php_version'])); if(substr($custom_php_fpm_ini_dir,-1) != '/') $custom_php_fpm_ini_dir .= '/'; } else { $default_php_fpm = true; } if($default_php_fpm){ $pool_dir = escapeshellcmd($web_config['php_fpm_pool_dir']); } else { $pool_dir = $custom_php_fpm_pool_dir; } if(substr($pool_dir,-1) != '/') $pool_dir .= '/'; $pool_name = 'web'.$data['new']['domain_id']; $socket_dir = escapeshellcmd($web_config['php_fpm_socket_dir']); @@ -1386,6 +1399,14 @@ global $app, $conf; //$reload = false; if(trim($data['new']['fastcgi_php_version']) != ''){ $default_php_fpm = false; list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['new']['fastcgi_php_version'])); if(substr($custom_php_fpm_ini_dir,-1) != '/') $custom_php_fpm_ini_dir .= '/'; } else { $default_php_fpm = true; } if($data['new']['php'] == 'no'){ if(@is_file($pool_dir.$pool_name.'.conf')){ unlink($pool_dir.$pool_name.'.conf'); @@ -1474,6 +1495,36 @@ file_put_contents($pool_dir.$pool_name.'.conf',$tpl->grab()); $app->log('Writing the PHP-FPM config file: '.$pool_dir.$pool_name.'.conf',LOGLEVEL_DEBUG); unset($tpl); // delete pool in all other PHP versions $default_pool_dir = escapeshellcmd($web_config['php_fpm_pool_dir']); if(substr($default_pool_dir,-1) != '/') $default_pool_dir .= '/'; if($default_pool_dir != $pool_dir){ if ( @is_file($default_pool_dir.$pool_name.'.conf') ) { unlink($default_pool_dir.$pool_name.'.conf'); $app->log('Removed PHP-FPM config file: '.$default_pool_dir.$pool_name.'.conf',LOGLEVEL_DEBUG); exec($conf['init_scripts'] . '/' . $web_config['php_fpm_init_script'] . ' reload'); } } $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"]); if(is_array($php_versions) && !empty($php_versions)){ foreach($php_versions as $php_version){ if(substr($php_version['php_fpm_pool_dir'],-1) != '/') $php_version['php_fpm_pool_dir'] .= '/'; if($php_version['php_fpm_pool_dir'] != $pool_dir){ if ( @is_file($php_version['php_fpm_pool_dir'].$pool_name.'.conf') ) { 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); exec($php_version['php_fpm_init_script'] . ' reload'); } } } } // Reload current PHP-FPM after all others if(!$default_php_fpm){ sleep(1); exec($custom_php_fpm_init_script . ' reload'); } //$reload = true; //if($reload == true) $app->services->restartService('php-fpm','reload'); @@ -1481,17 +1532,61 @@ //* Delete the PHP-FPM pool configuration file private function php_fpm_pool_delete ($data,$web_config) { global $app; global $app, $conf; if(trim($data['old']['fastcgi_php_version']) != ''){ $default_php_fpm = false; list($custom_php_fpm_name, $custom_php_fpm_init_script, $custom_php_fpm_ini_dir, $custom_php_fpm_pool_dir) = explode(':', trim($data['old']['fastcgi_php_version'])); if(substr($custom_php_fpm_ini_dir,-1) != '/') $custom_php_fpm_ini_dir .= '/'; } else { $default_php_fpm = true; } if($default_php_fpm){ $pool_dir = escapeshellcmd($web_config['php_fpm_pool_dir']); } else { $pool_dir = $custom_php_fpm_pool_dir; } if(substr($pool_dir,-1) != '/') $pool_dir .= '/'; $pool_name = 'web'.$data['old']['domain_id']; if ( @is_file($pool_dir.$pool_name.'.conf') ) { unlink($pool_dir.$pool_name.'.conf'); $app->log('Removed PHP-FPM config file: '.$pool_dir.$pool_name.'.conf',LOGLEVEL_DEBUG); //$app->services->restartService('php-fpm','reload'); } // delete pool in all other PHP versions $default_pool_dir = escapeshellcmd($web_config['php_fpm_pool_dir']); if(substr($default_pool_dir,-1) != '/') $default_pool_dir .= '/'; if($default_pool_dir != $pool_dir){ if ( @is_file($default_pool_dir.$pool_name.'.conf') ) { unlink($default_pool_dir.$pool_name.'.conf'); $app->log('Removed PHP-FPM config file: '.$default_pool_dir.$pool_name.'.conf',LOGLEVEL_DEBUG); exec($conf['init_scripts'] . '/' . $web_config['php_fpm_init_script'] . ' reload'); } } $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']); if(is_array($php_versions) && !empty($php_versions)){ foreach($php_versions as $php_version){ if(substr($php_version['php_fpm_pool_dir'],-1) != '/') $php_version['php_fpm_pool_dir'] .= '/'; if($php_version['php_fpm_pool_dir'] != $pool_dir){ if ( @is_file($php_version['php_fpm_pool_dir'].$pool_name.'.conf') ) { 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); exec($php_version['php_fpm_init_script'] . ' reload'); } } } } // Reload current PHP-FPM after all others if(!$default_php_fpm){ sleep(1); exec($custom_php_fpm_init_script . ' reload'); } } function client_delete($event_name,$data) {