From 4ffb51e51f89a45256836fb55ad1c29f5e06beb2 Mon Sep 17 00:00:00 2001 From: ftimme <ft@falkotimme.com> Date: Mon, 19 Sep 2011 06:17:52 -0400 Subject: [PATCH] - Added nginx support to the installer. --- server/plugins-available/nginx_plugin.inc.php | 113 ++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 89 insertions(+), 24 deletions(-) diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index cd2b351..8ff7258 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -435,42 +435,42 @@ // Copy the error pages if($data['new']['errordocs']) { $error_page_path = escapeshellcmd($data['new']['document_root']).'/web/error/'; - if (file_exists($conf['templates'] . '-custom/error/'.substr(escapeshellcmd($conf['language']),0,2))) { - exec('cp ' . $conf['templates'] . '-custom/error/'.substr(escapeshellcmd($conf['language']),0,2).'/* '.$error_page_path); + if (file_exists($conf['rootpath'].'/conf-custom/error/'.substr(escapeshellcmd($conf['language']),0,2))) { + exec('cp ' . $conf['rootpath'].'/conf-custom/error/'.substr(escapeshellcmd($conf['language']),0,2).'/* '.$error_page_path); } else { - if (file_exists($conf['templates'] . '-custom/error/400.html')) { - exec('cp '. $conf['templates'] .'-custom/error/*.html '.$error_page_path); + if (file_exists($conf['rootpath'].'/conf-custom/error/400.html')) { + exec('cp '. $conf['rootpath'].'/conf-custom/error/*.html '.$error_page_path); } else { - exec('cp ' . $conf['templates'] . '/error/'.substr(escapeshellcmd($conf['language']),0,2).'/* '.$error_page_path); + exec('cp ' . $conf['rootpath'] . '/conf/error/'.substr(escapeshellcmd($conf['language']),0,2).'/* '.$error_page_path); } } exec('chmod -R a+r '.$error_page_path); } - if (file_exists($conf['templates'] . '-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']),0,2))) { - exec('cp ' . $conf['templates'] . '-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']),0,2).' '.escapeshellcmd($data['new']['document_root']).'/web/index.html'); + if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']),0,2))) { + exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html_'.substr(escapeshellcmd($conf['language']),0,2).' '.escapeshellcmd($data['new']['document_root']).'/web/index.html'); - if(is_file($conf['templates'] . '-custom/index/favicon.ico')) { - exec('cp ' . $conf['templates'] . '-custom/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/web/'); + if(is_file($conf['rootpath'] . '/conf-custom/index/favicon.ico')) { + exec('cp ' . $conf['rootpath'] . '/conf-custom/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/web/'); } - if(is_file($conf['templates'] . '-custom/index/robots.txt')) { - exec('cp ' . $conf['templates'] . '-custom/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/web/'); + if(is_file($conf['rootpath'] . '/conf-custom/index/robots.txt')) { + exec('cp ' . $conf['rootpath'] . '/conf-custom/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/web/'); } - if(is_file($conf['templates'] . '-custom/index/.htaccess')) { - exec('cp ' . $conf['templates'] . '-custom/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/web/'); + if(is_file($conf['rootpath'] . '/conf-custom/index/.htaccess')) { + exec('cp ' . $conf['rootpath'] . '/conf-custom/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/web/'); } } else { - if (file_exists($conf['templates'] . '-custom/index/standard_index.html')) { - exec('cp ' . $conf['templates'] . '-custom/index/standard_index.html '.escapeshellcmd($data['new']['document_root']).'/web/index.html'); + if (file_exists($conf['rootpath'] . '/conf-custom/index/standard_index.html')) { + exec('cp ' . $conf['rootpath'] . '/conf-custom/index/standard_index.html '.escapeshellcmd($data['new']['document_root']).'/web/index.html'); } else { - exec('cp ' . $conf['templates'] . '/index/standard_index.html_'.substr(escapeshellcmd($conf['language']),0,2).' '.escapeshellcmd($data['new']['document_root']).'/web/index.html'); - if(is_file($conf['templates'] . '/index/favicon.ico')) exec('cp ' . $conf['templates'] . '/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/web/'); - if(is_file($conf['templates'] . '/index/robots.txt')) exec('cp ' . $conf['templates'] . '/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/web/'); - if(is_file($conf['templates'] . '/index/.htaccess')) exec('cp ' . $conf['templates'] . '/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/web/'); + exec('cp ' . $conf['rootpath'] . '/conf/index/standard_index.html_'.substr(escapeshellcmd($conf['language']),0,2).' '.escapeshellcmd($data['new']['document_root']).'/web/index.html'); + if(is_file($conf['rootpath'] . '/conf/index/favicon.ico')) exec('cp ' . $conf['rootpath'] . '/conf/index/favicon.ico '.escapeshellcmd($data['new']['document_root']).'/web/'); + if(is_file($conf['rootpath'] . '/conf/index/robots.txt')) exec('cp ' . $conf['rootpath'] . '/conf/index/robots.txt '.escapeshellcmd($data['new']['document_root']).'/web/'); + if(is_file($conf['rootpath'] . '/conf/index/.htaccess')) exec('cp ' . $conf['rootpath'] . '/conf/index/.htaccess '.escapeshellcmd($data['new']['document_root']).'/web/'); } } exec('chmod -R a+r '.escapeshellcmd($data['new']['document_root']).'/web/'); @@ -479,15 +479,15 @@ } elseif ($this->action == 'update' && $data['new']['type'] == 'vhost' && $data['old']['errordocs'] == 0 && $data['new']['errordocs'] == 1) { $error_page_path = escapeshellcmd($data['new']['document_root']).'/web/error/'; - if (file_exists($conf['templates'] . '-custom/error/'.substr(escapeshellcmd($conf['language']),0,2))) { - exec('cp ' . $conf['templates'] . '-custom/error/'.substr(escapeshellcmd($conf['language']),0,2).'/* '.$error_page_path); + if (file_exists($conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']),0,2))) { + exec('cp ' . $conf['rootpath'] . '/conf-custom/error/'.substr(escapeshellcmd($conf['language']),0,2).'/* '.$error_page_path); } else { - if (file_exists($conf['templates'] . '-custom/error/400.html')) { - exec('cp ' . $conf['templates'] . '-custom/error/*.html '.$error_page_path); + if (file_exists($conf['rootpath'] . '/conf-custom/error/400.html')) { + exec('cp ' . $conf['rootpath'] . '/conf-custom/error/*.html '.$error_page_path); } else { - exec('cp ' . $conf['templates'] . '/error/'.substr(escapeshellcmd($conf['language']),0,2).'/* '.$error_page_path); + exec('cp ' . $conf['rootpath'] . '/conf/error/'.substr(escapeshellcmd($conf['language']),0,2).'/* '.$error_page_path); } } exec('chmod -R a+r '.$error_page_path); @@ -644,6 +644,7 @@ $vhost_data['ssl_domain'] = $data['new']['ssl_domain']; //$vhost_data['has_custom_php_ini'] = $has_custom_php_ini; //$vhost_data['custom_php_ini_dir'] = escapeshellcmd($custom_php_ini_dir); + $vhost_data['fpm_port'] = $web_config['php_fpm_start_port'] + $data['new']['domain_id']; // Check if a SSL cert exists $ssl_dir = $data['new']['document_root'].'/ssl'; @@ -843,6 +844,8 @@ $this->awstats_update($data,$web_config); } + $this->php_fpm_pool_update($data,$web_config); + if($web_config['check_apache_config'] == 'y') { //* Test if nginx starts with the new configuration file $nginx_online_status_before_restart = $this->_checkTcp('localhost',80); @@ -976,6 +979,10 @@ if($data['old']['stats_type'] == 'awstats') { $this->awstats_delete($data,$web_config); } + + if($data['old']['php'] == 'fast-cgi') { + $this->php_fpm_pool_delete($data,$web_config); + } } } @@ -1039,6 +1046,64 @@ } } + //* Update the PHP-FPM pool configuration file + private function php_fpm_pool_update ($data,$web_config) { + global $app, $conf; + + $pool_dir = $web_config['php_fpm_pool_dir']; + //$reload = false; + + if($data['new']['php'] == 'no'){ + if(@is_file($pool_dir.'/'.$data['old']['domain'].'.conf')){ + unlink($pool_dir.'/'.$data['old']['domain'].'.conf'); + //$reload = true; + } + if(@is_file($pool_dir.'/'.$data['new']['domain'].'.conf')){ + unlink($pool_dir.'/'.$data['new']['domain'].'.conf'); + //$reload = true; + } + //if($reload == true) $app->services->restartService('php-fpm','reload'); + 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['old']['domain'].'.conf') ) { + unlink($pool_dir.'/'.$data['old']['domain'].'.conf'); + } + + $app->uses("getconf"); + $web_config = $app->getconf->get_server_config($conf["server_id"], 'web'); + + $app->load('tpl'); + $tpl = new tpl(); + $tpl->newTemplate('php_fpm_pool.conf.master'); + + $tpl->setVar('fpm_pool', $data['new']['domain']); + $tpl->setVar('fpm_port', $web_config['php_fpm_start_port'] + $data['new']['domain_id']); + $tpl->setVar('fpm_user', $data['new']['system_user']); + $tpl->setVar('fpm_group', $data['new']['system_group']); + + 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'); + } + + //* Delete the PHP-FPM pool configuration file + private function php_fpm_pool_delete ($data,$web_config) { + global $app; + + $pool_dir = $web_config['php_fpm_pool_dir']; + + if ( @is_file($pool_dir.'/'.$data['old']['domain'].'.conf') ) { + unlink($pool_dir.'/'.$data['old']['domain'].'.conf'); + $app->log('Removed PHP-FPM config file: '.$pool_dir.'/'.$data['old']['domain'].'.conf',LOGLEVEL_DEBUG); + $app->services->restartService('php-fpm','reload'); + } + } + function client_delete($event_name,$data) { global $app, $conf; -- Gitblit v1.9.1