From 181529089411d6f55333b22d169e87d3f5137eb5 Mon Sep 17 00:00:00 2001 From: latham <latham@ispconfig3> Date: Thu, 30 Jun 2011 12:03:31 -0400 Subject: [PATCH] Remove Microsoft Line endings. Some files have mixed line endings that make Subverison unhappy --- server/plugins-available/nginx_plugin.inc.php | 736 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 368 insertions(+), 368 deletions(-) diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index a200daf..7016ad1 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -1,368 +1,368 @@ -<?php - -class nginx_plugin { - - var $plugin_name = 'nginx_plugin'; - var $class_name = 'nginx_plugin'; - - // private variables - var $action = ''; - - //* This function is called during ispconfig installation to determine - // if a symlink shall be created for this plugin. - function onInstall() { - global $conf; - - if($conf['services']['proxy'] == true && $conf['nginx']['installed'] == true) { - return true; - } else { - return false; - } - - } - - - /* - This function is called when the plugin is loaded - */ - - function onLoad() { - global $app; - - /* - Register for the events - */ - - $app->plugins->registerEvent('web_domain_insert',$this->plugin_name,'ssl'); - $app->plugins->registerEvent('web_domain_update',$this->plugin_name,'ssl'); - $app->plugins->registerEvent('web_domain_delete',$this->plugin_name,'ssl'); - - $app->plugins->registerEvent('web_domain_insert',$this->plugin_name,'insert'); - $app->plugins->registerEvent('web_domain_update',$this->plugin_name,'update'); - $app->plugins->registerEvent('web_domain_delete',$this->plugin_name,'delete'); - - // $app->plugins->registerEvent('proxy_reverse_insert',$this->plugin_name,'rewrite_insert'); - // $app->plugins->registerEvent('proxy_reverse_update',$this->plugin_name,'rewrite_update'); - // $app->plugins->registerEvent('proxy_reverse_delete',$this->plugin_name,'rewrite_delete'); - - - - } - - - function insert($event_name,$data) { - global $app, $conf; - - // just run the update function - $this->update($event_name,$data); - } - - - function update($event_name,$data) { - global $app, $conf; - - if($this->action != 'insert') $this->action = 'update'; - - if($data['new']['type'] != 'vhost' && $data['new']['parent_domain_id'] > 0) { - - $old_parent_domain_id = intval($data['old']['parent_domain_id']); - $new_parent_domain_id = intval($data['new']['parent_domain_id']); - - // If the parent_domain_id has been chenged, we will have to update the old site as well. - if($this->action == 'update' && $data['new']['parent_domain_id'] != $data['old']['parent_domain_id']) { - $tmp = $app->dbmaster->queryOneRecord('SELECT * FROM web_domain WHERE domain_id = '.$old_parent_domain_id." AND active = 'y'"); - $data['new'] = $tmp; - $data['old'] = $tmp; - $this->action = 'update'; - $this->update($event_name,$data); - } - - // This is not a vhost, so we need to update the parent record instead. - $tmp = $app->dbmaster->queryOneRecord('SELECT * FROM web_domain WHERE domain_id = '.$new_parent_domain_id." AND active = 'y'"); - $data['new'] = $tmp; - $data['old'] = $tmp; - $this->action = 'update'; - } - - - - - // load the server configuration options - $app->uses('getconf'); - $nginx_config = $app->getconf->get_server_config($conf['server_id'], 'nginx'); - - // Create group and user, if not exist - $app->uses('system'); - - //* Create the vhost config file - $app->load('tpl'); - - $tpl = new tpl(); - $tpl->newTemplate('nginx_vhost.conf.master'); - - $vhost_data = $data['new']; - $vhost_data['config_dir'] = $config['nginx']['config_dir']; - - $vhost_data['ssl_domain'] = $data['new']['ssl_domain']; - // Check if a SSL cert exists - $ssl_dir = $config['nginx']['config_dir'].'/ssl'; - $domain = $data['new']['ssl_domain']; - $key_file = $ssl_dir.'/'.$domain.'.key'; - $crt_file = $ssl_dir.'/'.$domain.'.crt'; - $bundle_file = $ssl_dir.'/'.$domain.'.bundle'; - - $vhost_data['nginx_directives'] = preg_replace("/\[IP\]/", $vhost_data['ip_address'], $vhost_data['nginx_directives']); - - - if($data['new']['ssl'] == 'y' && @is_file($crt_file) && @is_file($key_file)) { - $vhost_data['ssl_enabled'] = 1; - $app->log('Enable SSL for: '.$domain,LOGLEVEL_DEBUG); - } else { - $vhost_data['ssl_enabled'] = 0; - $app->log('Disable SSL for: '.$domain,LOGLEVEL_DEBUG); - } - - if(@is_file($bundle_file)) $vhost_data['has_bundle_cert'] = 1; - - - $tpl->setVar($vhost_data); - - - - // get alias domains (co-domains and subdomains) - $aliases = $app->dbmaster->queryAllRecords('SELECT * FROM web_domain WHERE parent_domain_id = '.$data['new']['domain_id']." AND active = 'y'"); - $server_alias = array(); - switch($data['new']['subdomain']) { - case 'www': - $server_alias[] .= 'www.'.$data['new']['domain'].' '; - break; - case '*': - $server_alias[] .= '*.'.$data['new']['domain'].' '; - break; - } - if(is_array($aliases)) { - foreach($aliases as $alias) { - switch($alias['subdomain']) { - case 'www': - $server_alias[] .= 'www.'.$alias['domain'].' '.$alias['domain'].' '; - break; - case '*': - $server_alias[] .= '*.'.$alias['domain'].' '.$alias['domain'].' '; - break; - default: - $server_alias[] .= $alias['domain'].' '; - break; - } - $app->log('Add server alias: '.$alias['domain'],LOGLEVEL_DEBUG); - - } - } - - //* If we have some alias records - if(count($server_alias) > 0) { - $server_alias_str = ''; - $n = 0; - - // begin a new ServerAlias line after 30 alias domains - foreach($server_alias as $tmp_alias) { - if($n % 30 == 0) $server_alias_str .= " "; - $server_alias_str .= $tmp_alias; - } - unset($tmp_alias); - - $tpl->setVar('alias',trim($server_alias_str)); - } else { - $tpl->setVar('alias',''); - } - - - $vhost_file = escapeshellcmd($nginx_config['vhost_conf_dir'].'/'.$data['new']['domain'].'.vhost'); - //* Make a backup copy of vhost file - copy($vhost_file,$vhost_file.'~'); - - //* Write vhost file - file_put_contents($vhost_file,$tpl->grab()); - $app->log('Writing the vhost file: '.$vhost_file,LOGLEVEL_DEBUG); - unset($tpl); - - - // Set the symlink to enable the vhost - $vhost_symlink = escapeshellcmd($nginx_config['vhost_conf_enabled_dir'].'/'.$data['new']['domain'].'.vhost'); - if($data['new']['active'] == 'y' && !is_link($vhost_symlink)) { - symlink($vhost_file,$vhost_symlink); - $app->log('Creating symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG); - } - - // Remove the symlink, if site is inactive - if($data['new']['active'] == 'n' && is_link($vhost_symlink)) { - unlink($vhost_symlink); - $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG); - } - - if(!is_dir('/var/log/ispconfig/nginx/'.$data['new']['domain'])) exec('mkdir -p /var/log/ispconfig/nginx/'.$data['new']['domain']); - - // remove old symlink and vhost file, if domain name of the site has changed - if($this->action == 'update' && $data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain']) { - $vhost_symlink = escapeshellcmd($nginx_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'); - unlink($vhost_symlink); - $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG); - $vhost_file = escapeshellcmd($nginx_config['vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'); - unlink($vhost_file); - $app->log('Removing file: '.$vhost_file,LOGLEVEL_DEBUG); - - if(is_dir('/var/log/ispconfig/nginx/'.$data['old']['domain'])) exec('rm -rf /var/log/ispconfig/nginx/'.$data['old']['domain']); - } - - // request a httpd reload when all records have been processed - $app->services->restartServiceDelayed('nginx','restart'); - - // Remove the backup copy of the config file. - if(@is_file($vhost_file.'~')) unlink($vhost_file.'~'); - - - //* Unset action to clean it for next processed vhost. - $this->action = ''; - - } - - - - - // Handle the creation of SSL certificates - function ssl($event_name,$data) { - global $app, $conf; - - if(!is_dir($conf['nginx']['config_dir'].'/ssl')) exec('mkdir -p '.$conf['nginx']['config_dir'].'/ssl'); - $ssl_dir = $conf['nginx']['config_dir'].'/ssl'; - $domain = $data['new']['ssl_domain']; - $key_file = $ssl_dir.'/'.$domain.'.key.org'; - $key_file2 = $ssl_dir.'/'.$domain.'.key'; - $csr_file = $ssl_dir.'/'.$domain.'.csr'; - $crt_file = $ssl_dir.'/'.$domain.'.crt'; - - - //* Save a SSL certificate to disk - if($data["new"]["ssl_action"] == 'save') { - $web = $app->masterdb->queryOneRecord("select wd.document_root, sp.ip_address from web_domain wd INNER JOIN server_ip sp USING(server_id) WHERE domain = '".$data['new']['domain']."'"); - - $src_ssl_dir = $web["document_root"]."/ssl"; - //$domain = $data["new"]["ssl_domain"]; - //$csr_file = $ssl_dir.'/'.$domain.".csr"; - //$crt_file = $ssl_dir.'/'.$domain.".crt"; - //$bundle_file = $ssl_dir.'/'.$domain.".bundle"; - $this->_exec('rsync -v -e ssh root@'.$web['ip_address'].':~/$src_ssl_dir '.$ssl_dir); - - $app->log('Syncing SSL Cert for: '.$domain,LOGLEVEL_DEBUG); - } - - //* Delete a SSL certificate - if($data['new']['ssl_action'] == 'del') { - //$ssl_dir = $data['new']['document_root'].'/ssl'; - $domain = $data['new']['ssl_domain']; - $csr_file = $ssl_dir.'/'.$domain.'.csr'; - $crt_file = $ssl_dir.'/'.$domain.'.crt'; - $bundle_file = $ssl_dir.'/'.$domain.'.bundle'; - unlink($csr_file); - unlink($crt_file); - unlink($bundle_file); - $app->log('Deleting SSL Cert for: '.$domain,LOGLEVEL_DEBUG); - } - - - } - - - function delete($event_name,$data) { - global $app, $conf; - - // load the server configuration options - $app->uses('getconf'); - $nginx_config = $app->getconf->get_server_config($conf['server_id'], 'nginx'); - - - if($data['old']['type'] == 'vhost') { - - //* This is a website - // Deleting the vhost file, symlink and the data directory - $vhost_symlink = escapeshellcmd($nginx_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'); - unlink($vhost_symlink); - $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG); - - $vhost_file = escapeshellcmd($nginx_config['vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'); - unlink($vhost_file); - $app->log('Removing vhost file: '.$vhost_file,LOGLEVEL_DEBUG); - - - - // Delete the log file directory - $vhost_logfile_dir = escapeshellcmd('/var/log/ispconfig/nginx/'.$data['old']['domain']); - if($data['old']['domain'] != '' && !stristr($vhost_logfile_dir,'..')) exec('rm -rf '.$vhost_logfile_dir); - $app->log('Removing website logfile directory: '.$vhost_logfile_dir,LOGLEVEL_DEBUG); - - } - } - - //* Wrapper for exec function for easier debugging - private function _exec($command) { - global $app; - $app->log('exec: '.$command,LOGLEVEL_DEBUG); - exec($command); - } - - function rewrite_insert($event_name,$data) { - global $app, $conf; - - // just run the update function - $this->update($event_name,$data); - } - - function rewrite_update($event_name,$data) { - global $app, $conf; - - $rules = $this->_getRewriteRules($app); - - $app->uses('getconf'); - $nginx_config = $app->getconf->get_server_config($conf['server_id'], 'nginx'); - - $app->load('tpl'); - $tpl = new tpl(); - $tpl->newTemplate("nginx-rewrites.conf.master"); - if (!empty($rules))$tpl->setLoop('nginx_rewrite_rules',$rules); - - $rewrites_file = escapeshellcmd($nginx_config['vhost_conf_dir'].'/default.rewrites.conf'); - //* Make a backup copy of vhost file - copy($rewrites_file,$rewrites_file.'~'); - - //* Write vhost file - file_put_contents($rewrites_file,$tpl->grab()); - $app->log('Writing the nginx rewrites file: '.$rewrites_file,LOGLEVEL_DEBUG); - unset($tpl); - - - // Set the symlink to enable the vhost - $rewrite_symlink = escapeshellcmd($nginx_config['vhost_conf_enabled_dir'].'/default.rewrites.conf'); - - if(!is_link($rewrite_symlink)) { - symlink($rewrites_file,$rewrite_symlink); - $app->log('Creating symlink for nginx rewrites: '.$rewrite_symlink.'->'.$rewrites_file,LOGLEVEL_DEBUG); - } - } - - function rewrite_delete($event_name,$data) { - global $app, $conf; - - // just run the update function - $this->rewrite_update($event_name,$data); - } - - - function _getRewriteRules($app) - { - $rules = array(); - $rules = $app->db->queryAllRecords("SELECT rewrite_url_src, rewrite_url_dst FROM proxy_reverse ORDER BY rewrite_id ASC"); - return $rules; - } - -} // end class - -?> +<?php + +class nginx_plugin { + + var $plugin_name = 'nginx_plugin'; + var $class_name = 'nginx_plugin'; + + // private variables + var $action = ''; + + //* This function is called during ispconfig installation to determine + // if a symlink shall be created for this plugin. + function onInstall() { + global $conf; + + if($conf['services']['proxy'] == true && $conf['nginx']['installed'] == true) { + return true; + } else { + return false; + } + + } + + + /* + This function is called when the plugin is loaded + */ + + function onLoad() { + global $app; + + /* + Register for the events + */ + + $app->plugins->registerEvent('web_domain_insert',$this->plugin_name,'ssl'); + $app->plugins->registerEvent('web_domain_update',$this->plugin_name,'ssl'); + $app->plugins->registerEvent('web_domain_delete',$this->plugin_name,'ssl'); + + $app->plugins->registerEvent('web_domain_insert',$this->plugin_name,'insert'); + $app->plugins->registerEvent('web_domain_update',$this->plugin_name,'update'); + $app->plugins->registerEvent('web_domain_delete',$this->plugin_name,'delete'); + + // $app->plugins->registerEvent('proxy_reverse_insert',$this->plugin_name,'rewrite_insert'); + // $app->plugins->registerEvent('proxy_reverse_update',$this->plugin_name,'rewrite_update'); + // $app->plugins->registerEvent('proxy_reverse_delete',$this->plugin_name,'rewrite_delete'); + + + + } + + + function insert($event_name,$data) { + global $app, $conf; + + // just run the update function + $this->update($event_name,$data); + } + + + function update($event_name,$data) { + global $app, $conf; + + if($this->action != 'insert') $this->action = 'update'; + + if($data['new']['type'] != 'vhost' && $data['new']['parent_domain_id'] > 0) { + + $old_parent_domain_id = intval($data['old']['parent_domain_id']); + $new_parent_domain_id = intval($data['new']['parent_domain_id']); + + // If the parent_domain_id has been chenged, we will have to update the old site as well. + if($this->action == 'update' && $data['new']['parent_domain_id'] != $data['old']['parent_domain_id']) { + $tmp = $app->dbmaster->queryOneRecord('SELECT * FROM web_domain WHERE domain_id = '.$old_parent_domain_id." AND active = 'y'"); + $data['new'] = $tmp; + $data['old'] = $tmp; + $this->action = 'update'; + $this->update($event_name,$data); + } + + // This is not a vhost, so we need to update the parent record instead. + $tmp = $app->dbmaster->queryOneRecord('SELECT * FROM web_domain WHERE domain_id = '.$new_parent_domain_id." AND active = 'y'"); + $data['new'] = $tmp; + $data['old'] = $tmp; + $this->action = 'update'; + } + + + + + // load the server configuration options + $app->uses('getconf'); + $nginx_config = $app->getconf->get_server_config($conf['server_id'], 'nginx'); + + // Create group and user, if not exist + $app->uses('system'); + + //* Create the vhost config file + $app->load('tpl'); + + $tpl = new tpl(); + $tpl->newTemplate('nginx_vhost.conf.master'); + + $vhost_data = $data['new']; + $vhost_data['config_dir'] = $config['nginx']['config_dir']; + + $vhost_data['ssl_domain'] = $data['new']['ssl_domain']; + // Check if a SSL cert exists + $ssl_dir = $config['nginx']['config_dir'].'/ssl'; + $domain = $data['new']['ssl_domain']; + $key_file = $ssl_dir.'/'.$domain.'.key'; + $crt_file = $ssl_dir.'/'.$domain.'.crt'; + $bundle_file = $ssl_dir.'/'.$domain.'.bundle'; + + $vhost_data['nginx_directives'] = preg_replace("/\[IP\]/", $vhost_data['ip_address'], $vhost_data['nginx_directives']); + + + if($data['new']['ssl'] == 'y' && @is_file($crt_file) && @is_file($key_file)) { + $vhost_data['ssl_enabled'] = 1; + $app->log('Enable SSL for: '.$domain,LOGLEVEL_DEBUG); + } else { + $vhost_data['ssl_enabled'] = 0; + $app->log('Disable SSL for: '.$domain,LOGLEVEL_DEBUG); + } + + if(@is_file($bundle_file)) $vhost_data['has_bundle_cert'] = 1; + + + $tpl->setVar($vhost_data); + + + + // get alias domains (co-domains and subdomains) + $aliases = $app->dbmaster->queryAllRecords('SELECT * FROM web_domain WHERE parent_domain_id = '.$data['new']['domain_id']." AND active = 'y'"); + $server_alias = array(); + switch($data['new']['subdomain']) { + case 'www': + $server_alias[] .= 'www.'.$data['new']['domain'].' '; + break; + case '*': + $server_alias[] .= '*.'.$data['new']['domain'].' '; + break; + } + if(is_array($aliases)) { + foreach($aliases as $alias) { + switch($alias['subdomain']) { + case 'www': + $server_alias[] .= 'www.'.$alias['domain'].' '.$alias['domain'].' '; + break; + case '*': + $server_alias[] .= '*.'.$alias['domain'].' '.$alias['domain'].' '; + break; + default: + $server_alias[] .= $alias['domain'].' '; + break; + } + $app->log('Add server alias: '.$alias['domain'],LOGLEVEL_DEBUG); + + } + } + + //* If we have some alias records + if(count($server_alias) > 0) { + $server_alias_str = ''; + $n = 0; + + // begin a new ServerAlias line after 30 alias domains + foreach($server_alias as $tmp_alias) { + if($n % 30 == 0) $server_alias_str .= " "; + $server_alias_str .= $tmp_alias; + } + unset($tmp_alias); + + $tpl->setVar('alias',trim($server_alias_str)); + } else { + $tpl->setVar('alias',''); + } + + + $vhost_file = escapeshellcmd($nginx_config['vhost_conf_dir'].'/'.$data['new']['domain'].'.vhost'); + //* Make a backup copy of vhost file + copy($vhost_file,$vhost_file.'~'); + + //* Write vhost file + file_put_contents($vhost_file,$tpl->grab()); + $app->log('Writing the vhost file: '.$vhost_file,LOGLEVEL_DEBUG); + unset($tpl); + + + // Set the symlink to enable the vhost + $vhost_symlink = escapeshellcmd($nginx_config['vhost_conf_enabled_dir'].'/'.$data['new']['domain'].'.vhost'); + if($data['new']['active'] == 'y' && !is_link($vhost_symlink)) { + symlink($vhost_file,$vhost_symlink); + $app->log('Creating symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG); + } + + // Remove the symlink, if site is inactive + if($data['new']['active'] == 'n' && is_link($vhost_symlink)) { + unlink($vhost_symlink); + $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG); + } + + if(!is_dir('/var/log/ispconfig/nginx/'.$data['new']['domain'])) exec('mkdir -p /var/log/ispconfig/nginx/'.$data['new']['domain']); + + // remove old symlink and vhost file, if domain name of the site has changed + if($this->action == 'update' && $data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain']) { + $vhost_symlink = escapeshellcmd($nginx_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'); + unlink($vhost_symlink); + $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG); + $vhost_file = escapeshellcmd($nginx_config['vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'); + unlink($vhost_file); + $app->log('Removing file: '.$vhost_file,LOGLEVEL_DEBUG); + + if(is_dir('/var/log/ispconfig/nginx/'.$data['old']['domain'])) exec('rm -rf /var/log/ispconfig/nginx/'.$data['old']['domain']); + } + + // request a httpd reload when all records have been processed + $app->services->restartServiceDelayed('nginx','restart'); + + // Remove the backup copy of the config file. + if(@is_file($vhost_file.'~')) unlink($vhost_file.'~'); + + + //* Unset action to clean it for next processed vhost. + $this->action = ''; + + } + + + + + // Handle the creation of SSL certificates + function ssl($event_name,$data) { + global $app, $conf; + + if(!is_dir($conf['nginx']['config_dir'].'/ssl')) exec('mkdir -p '.$conf['nginx']['config_dir'].'/ssl'); + $ssl_dir = $conf['nginx']['config_dir'].'/ssl'; + $domain = $data['new']['ssl_domain']; + $key_file = $ssl_dir.'/'.$domain.'.key.org'; + $key_file2 = $ssl_dir.'/'.$domain.'.key'; + $csr_file = $ssl_dir.'/'.$domain.'.csr'; + $crt_file = $ssl_dir.'/'.$domain.'.crt'; + + + //* Save a SSL certificate to disk + if($data["new"]["ssl_action"] == 'save') { + $web = $app->masterdb->queryOneRecord("select wd.document_root, sp.ip_address from web_domain wd INNER JOIN server_ip sp USING(server_id) WHERE domain = '".$data['new']['domain']."'"); + + $src_ssl_dir = $web["document_root"]."/ssl"; + //$domain = $data["new"]["ssl_domain"]; + //$csr_file = $ssl_dir.'/'.$domain.".csr"; + //$crt_file = $ssl_dir.'/'.$domain.".crt"; + //$bundle_file = $ssl_dir.'/'.$domain.".bundle"; + $this->_exec('rsync -v -e ssh root@'.$web['ip_address'].':~/$src_ssl_dir '.$ssl_dir); + + $app->log('Syncing SSL Cert for: '.$domain,LOGLEVEL_DEBUG); + } + + //* Delete a SSL certificate + if($data['new']['ssl_action'] == 'del') { + //$ssl_dir = $data['new']['document_root'].'/ssl'; + $domain = $data['new']['ssl_domain']; + $csr_file = $ssl_dir.'/'.$domain.'.csr'; + $crt_file = $ssl_dir.'/'.$domain.'.crt'; + $bundle_file = $ssl_dir.'/'.$domain.'.bundle'; + unlink($csr_file); + unlink($crt_file); + unlink($bundle_file); + $app->log('Deleting SSL Cert for: '.$domain,LOGLEVEL_DEBUG); + } + + + } + + + function delete($event_name,$data) { + global $app, $conf; + + // load the server configuration options + $app->uses('getconf'); + $nginx_config = $app->getconf->get_server_config($conf['server_id'], 'nginx'); + + + if($data['old']['type'] == 'vhost') { + + //* This is a website + // Deleting the vhost file, symlink and the data directory + $vhost_symlink = escapeshellcmd($nginx_config['vhost_conf_enabled_dir'].'/'.$data['old']['domain'].'.vhost'); + unlink($vhost_symlink); + $app->log('Removing symlink: '.$vhost_symlink.'->'.$vhost_file,LOGLEVEL_DEBUG); + + $vhost_file = escapeshellcmd($nginx_config['vhost_conf_dir'].'/'.$data['old']['domain'].'.vhost'); + unlink($vhost_file); + $app->log('Removing vhost file: '.$vhost_file,LOGLEVEL_DEBUG); + + + + // Delete the log file directory + $vhost_logfile_dir = escapeshellcmd('/var/log/ispconfig/nginx/'.$data['old']['domain']); + if($data['old']['domain'] != '' && !stristr($vhost_logfile_dir,'..')) exec('rm -rf '.$vhost_logfile_dir); + $app->log('Removing website logfile directory: '.$vhost_logfile_dir,LOGLEVEL_DEBUG); + + } + } + + //* Wrapper for exec function for easier debugging + private function _exec($command) { + global $app; + $app->log('exec: '.$command,LOGLEVEL_DEBUG); + exec($command); + } + + function rewrite_insert($event_name,$data) { + global $app, $conf; + + // just run the update function + $this->update($event_name,$data); + } + + function rewrite_update($event_name,$data) { + global $app, $conf; + + $rules = $this->_getRewriteRules($app); + + $app->uses('getconf'); + $nginx_config = $app->getconf->get_server_config($conf['server_id'], 'nginx'); + + $app->load('tpl'); + $tpl = new tpl(); + $tpl->newTemplate("nginx-rewrites.conf.master"); + if (!empty($rules))$tpl->setLoop('nginx_rewrite_rules',$rules); + + $rewrites_file = escapeshellcmd($nginx_config['vhost_conf_dir'].'/default.rewrites.conf'); + //* Make a backup copy of vhost file + copy($rewrites_file,$rewrites_file.'~'); + + //* Write vhost file + file_put_contents($rewrites_file,$tpl->grab()); + $app->log('Writing the nginx rewrites file: '.$rewrites_file,LOGLEVEL_DEBUG); + unset($tpl); + + + // Set the symlink to enable the vhost + $rewrite_symlink = escapeshellcmd($nginx_config['vhost_conf_enabled_dir'].'/default.rewrites.conf'); + + if(!is_link($rewrite_symlink)) { + symlink($rewrites_file,$rewrite_symlink); + $app->log('Creating symlink for nginx rewrites: '.$rewrite_symlink.'->'.$rewrites_file,LOGLEVEL_DEBUG); + } + } + + function rewrite_delete($event_name,$data) { + global $app, $conf; + + // just run the update function + $this->rewrite_update($event_name,$data); + } + + + function _getRewriteRules($app) + { + $rules = array(); + $rules = $app->db->queryAllRecords("SELECT rewrite_url_src, rewrite_url_dst FROM proxy_reverse ORDER BY rewrite_id ASC"); + return $rules; + } + +} // end class + +?> -- Gitblit v1.9.1