| | |
| | | |
| | | // 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($data['new']['php'] != 'no'){ |
| | | 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; |
| | | } |
| | | } else { |
| | | if(trim($data['old']['fastcgi_php_version']) != '' && $data['old']['php'] != 'no'){ |
| | | $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){ |
| | |
| | | $fpm_socket = $socket_dir.$pool_name.'.sock'; |
| | | $tpl->setVar('fpm_socket', $fpm_socket); |
| | | $vhost_data['fpm_port'] = $web_config['php_fpm_start_port'] + $data['new']['domain_id'] - 1; |
| | | |
| | | // backwards compatibility; since ISPConfig 3.0.5, the PHP mode for nginx is called 'php-fpm' instead of 'fast-cgi'. The following line makes sure that old web sites that have 'fast-cgi' in the database still get PHP-FPM support. |
| | | if($vhost_data['php'] == 'fast-cgi') $vhost_data['php'] = 'php-fpm'; |
| | | |
| | | // Custom nginx directives |
| | | $final_nginx_directives = array(); |
| | |
| | | exec('rm -rf '.$fastcgi_starter_path); |
| | | } |
| | | } |
| | | |
| | | // remove PHP-FPM pool |
| | | if ($data['old']['php'] == 'php-fpm') { |
| | | $this->php_fpm_pool_delete($data,$web_config); |
| | | } |
| | | |
| | | //remove the php cgi starter script if available |
| | | if ($data['old']['php'] == 'cgi') { |
| | |
| | | //* Update the PHP-FPM pool configuration file |
| | | private function php_fpm_pool_update ($data,$web_config,$pool_dir,$pool_name,$socket_dir) { |
| | | 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(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; |
| | | } |
| | | } else { |
| | | if(trim($data['old']['fastcgi_php_version']) != '' && $data['old']['php'] != 'no'){ |
| | | $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; |
| | | } |
| | | } |
| | | |
| | | $app->uses("getconf"); |
| | |
| | | if($data['new']['php'] == 'no'){ |
| | | if(@is_file($pool_dir.$pool_name.'.conf')){ |
| | | unlink($pool_dir.$pool_name.'.conf'); |
| | | //$reload = true; |
| | | } |
| | | if($data['old']['php'] != 'no'){ |
| | | if(!$default_php_fpm){ |
| | |
| | | $app->services->restartService('php-fpm','reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); |
| | | } |
| | | } |
| | | //if($reload == true) $app->services->restartService('php-fpm','reload'); |
| | | return; |
| | | } |
| | | |
| | |
| | | $tpl->setVar('fpm_port', $web_config['php_fpm_start_port'] + $data['new']['domain_id'] - 1); |
| | | $tpl->setVar('fpm_user', $data['new']['system_user']); |
| | | $tpl->setVar('fpm_group', $data['new']['system_group']); |
| | | $tpl->setVar('pm', $data['new']['pm']); |
| | | $tpl->setVar('pm_max_children', $data['new']['pm_max_children']); |
| | | $tpl->setVar('pm_start_servers', $data['new']['pm_start_servers']); |
| | | $tpl->setVar('pm_min_spare_servers', $data['new']['pm_min_spare_servers']); |
| | | $tpl->setVar('pm_max_spare_servers', $data['new']['pm_max_spare_servers']); |
| | | $tpl->setVar('pm_process_idle_timeout', $data['new']['pm_process_idle_timeout']); |
| | | $tpl->setVar('pm_max_requests', $data['new']['pm_max_requests']); |
| | | $tpl->setVar('document_root', $data['new']['document_root']); |
| | | $tpl->setVar('security_level',$web_config['security_level']); |
| | | $php_open_basedir = ($data['new']['php_open_basedir'] == '')?escapeshellcmd($data['new']['document_root']):escapeshellcmd($data['new']['php_open_basedir']); |
| | |
| | | } else { |
| | | $app->services->restartService('php-fpm','reload:'.$conf['init_scripts'].'/'.$web_config['php_fpm_init_script']); |
| | | } |
| | | |
| | | //$reload = true; |
| | | |
| | | //if($reload == true) $app->services->restartService('php-fpm','reload'); |
| | | } |
| | | |
| | | //* Delete the PHP-FPM pool configuration file |
| | | private function php_fpm_pool_delete ($data,$web_config) { |
| | | global $app, $conf; |
| | | |
| | | if(trim($data['old']['fastcgi_php_version']) != ''){ |
| | | if(trim($data['old']['fastcgi_php_version']) != '' && $data['old']['php'] != 'no'){ |
| | | $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 .= '/'; |
| | |
| | | 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 |