Skip to content
nginx_plugin.inc.php 49.8 KiB
Newer Older
Falko Timme's avatar
Falko Timme committed
		$records = $app->db->queryAllRecords('SELECT * FROM server_ip WHERE server_id = '.$conf['server_id']." AND virtualhost = 'y'");
Falko Timme's avatar
Falko Timme committed
		if(count($records) > 0) {
			$tpl->setLoop('ip_adresses',$records);
		}
Falko Timme's avatar
Falko Timme committed
		$vhost_file = escapeshellcmd($web_config['nginx_vhost_conf_dir'].'/ispconfig.conf');
		file_put_contents($vhost_file,$tpl->grab());
		$app->log('Writing the conf file: '.$vhost_file,LOGLEVEL_DEBUG);
		unset($tpl);

	}
	
	//* Update the awstats configuration file
	private function awstats_update ($data,$web_config) {
		global $app;
		
		$awstats_conf_dir = $web_config['awstats_conf_dir'];
		
		if(!@is_file($awstats_conf_dir.'/awstats.'.$data['new']['domain'].'.conf') || ($data['old']['domain'] != '' && $data['new']['domain'] != $data['old']['domain'])) {
			if ( @is_file($awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf') ) {
				unlink($awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf');
			}
			
			$content = '';
			$content .= "Include \"".$awstats_conf_dir."/awstats.conf\"\n";
			$content .= "LogFile=\"/var/log/ispconfig/httpd/".$data['new']['domain']."/access.log\"\n";
			$content .= "SiteDomain=\"".$data['new']['domain']."\"\n";
			$content .= "HostAliases=\"www.".$data['new']['domain']."  localhost 127.0.0.1\"\n";
			
			file_put_contents($awstats_conf_dir.'/awstats.'.$data['new']['domain'].'.conf',$content);
			$app->log('Created AWStats config file: '.$awstats_conf_dir.'/awstats.'.$data['new']['domain'].'.conf',LOGLEVEL_DEBUG);
		}
	}
	
	//* Delete the awstats configuration file
	private function awstats_delete ($data,$web_config) {
		global $app;
		
		$awstats_conf_dir = $web_config['awstats_conf_dir'];
Falko Timme's avatar
Falko Timme committed
		if ( @is_file($awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf') ) {
			unlink($awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf');
			$app->log('Removed AWStats config file: '.$awstats_conf_dir.'/awstats.'.$data['old']['domain'].'.conf',LOGLEVEL_DEBUG);
		}
	//* 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']);
			$php_open_basedir = ($data['new']['php_open_basedir'] == '')?$data['new']['document_root']:$data['new']['php_open_basedir'];
			$tpl->setVar('php_open_basedir', $php_open_basedir);
			if($php_open_basedir != ''){
				$tpl->setVar('enable_php_open_basedir', '');
			} else {
				$tpl->setVar('enable_php_open_basedir', ';');
			}
			
			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');
		}
	}
	
Falko Timme's avatar
Falko Timme committed
	function client_delete($event_name,$data) {
Falko Timme's avatar
Falko Timme committed
		$app->uses("getconf");
		$web_config = $app->getconf->get_server_config($conf["server_id"], 'web');
		
		$client_id = intval($data['old']['client_id']);
		if($client_id > 0) {
			
			$client_dir = $web_config['website_basedir'].'/clients/client'.$client_id;
			if(is_dir($client_dir) && !stristr($client_dir,'..')) {
				@rmdir($client_dir);
				$app->log('Removed client directory: '.$client_dir,LOGLEVEL_DEBUG);
			}
			
			$this->_exec('groupdel client'.$client_id);
			$app->log('Removed group client'.$client_id,LOGLEVEL_DEBUG);
		}
		
	}

	//* Wrapper for exec function for easier debugging
	private function _exec($command) {
		global $app;
		$app->log('exec: '.$command,LOGLEVEL_DEBUG);
		exec($command);
Falko Timme's avatar
Falko Timme committed
	private function _checkTcp ($host,$port) {

		$fp = @fsockopen ($host, $port, $errno, $errstr, 2);
Falko Timme's avatar
Falko Timme committed
		if ($fp) {
			fclose($fp);
			return true;
		} else {
			return false;
		}
Falko Timme's avatar
Falko Timme committed
?>