From f3d383ecdedfb2ab46131bc842cfe0199fc54886 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Sat, 17 Oct 2009 06:33:06 -0400
Subject: [PATCH] Changed apache_ispconfig.conf.master template to allow access to phpmyadmin and squirrelmail in debian.

---
 install/lib/installer_base.lib.php |   69 +++++++++++++++++++++++++++++++---
 1 files changed, 63 insertions(+), 6 deletions(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index 3ea0894..f489e08 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -127,6 +127,7 @@
 		if(is_installed('pure-ftpd') || is_installed('pure-ftpd-wrapper')) $conf['pureftpd']['installed'] = true;
 		if(is_installed('mydns') || is_installed('mydns-ng')) $conf['mydns']['installed'] = true;
 		if(is_installed('jk_chrootsh')) $conf['jailkit']['installed'] = true;
+		if(is_installed('pdns_server') || is_installed('pdns_control')) $conf['powerdns']['installed'] = true;
 		
 		
 	}
@@ -212,8 +213,8 @@
 		$tpl_ini_array['web']['website_symlinks'] = $conf['web']['website_symlinks'];
         $tpl_ini_array['cron']['crontab_dir'] = $conf['cron']['crontab_dir'];
 		$tpl_ini_array['web']['security_level'] = 20;
-		$tpl_ini_array['web']['user'] = $conf['web']['user'];
-		$tpl_ini_array['web']['group'] = $conf['web']['group'];
+		$tpl_ini_array['web']['user'] = $conf['apache']['user'];
+		$tpl_ini_array['web']['group'] = $conf['apache']['group'];
         
 		$server_ini_content = array_to_ini($tpl_ini_array);
 		$server_ini_content = mysql_real_escape_string($server_ini_content);
@@ -296,6 +297,13 @@
             }
             
             $query = "GRANT UPDATE(`status`) ON ".$conf['mysql']['master_database'].".`software_update_inst` "
+                    ."TO '".$conf['mysql']['master_ispconfig_user']."'@'".$src_host."' "
+                    ."IDENTIFIED BY '".$conf['mysql']['master_ispconfig_password']."';";
+            if(!$this->dbmaster->query($query)) {
+                $this->error('Unable to create database user in master database: '.$conf['mysql']['master_ispconfig_user'].' Error: '.$this->dbmaster->errorMessage);
+            }
+			
+			$query = "GRANT UPDATE(`updated`) ON ".$conf['mysql']['master_database'].".`server` "
                     ."TO '".$conf['mysql']['master_ispconfig_user']."'@'".$src_host."' "
                     ."IDENTIFIED BY '".$conf['mysql']['master_ispconfig_password']."';";
             if(!$this->dbmaster->query($query)) {
@@ -510,7 +518,7 @@
 		$configfile = $config_dir.'/master.cf';
 		$content = rf($configfile);
 		$content = str_replace('flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}', 
-                   'flags=R user='.$cf['vmail_username'].' argv=/usr/bin/maildrop -d '.$cf['vmail_username'].' ${extension} ${recipient} ${user} ${nexthop} ${sender}',
+                   'flags=DRhu user='.$cf['vmail_username'].' argv=/usr/bin/maildrop -d '.$cf['vmail_username'].' ${extension} ${recipient} ${user} ${nexthop} ${sender}',
                      $content);
 		wf($configfile, $content);
 		
@@ -768,6 +776,50 @@
 	
 	}
 	
+	public function configure_powerdns() {
+		global $conf;
+		
+		//* Create the database
+		if(!$this->db->query('CREATE DATABASE IF NOT EXISTS '.$conf['powerdns']['database'].' DEFAULT CHARACTER SET '.$conf['mysql']['charset'])) {
+			$this->error('Unable to create MySQL database: '.$conf['powerdns']['database'].'.');
+		}
+		
+		//* Create the ISPConfig database user in the local database
+        $query = "GRANT ALL ON `".$conf['powerdns']['database']."` . * TO '".$conf['mysql']['ispconfig_user']."'@'localhost';";
+		if(!$this->db->query($query)) {
+			$this->error('Unable to create user for powerdns database Error: '.$this->db->errorMessage);
+		}
+		
+		//* Reload database privelages
+		$this->db->query('FLUSH PRIVILEGES;');
+		
+		//* load the powerdns databse dump
+		if($conf['mysql']['admin_password'] == '') {
+			caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' '".$conf['powerdns']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/powerdns.sql' &> /dev/null", 
+                    __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in powerdns.sql');
+		} else {
+			caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' -p'".$conf['mysql']['admin_password']."' '".$conf['powerdns']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/powerdns.sql' &> /dev/null", 
+                     __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in powerdns.sql');
+		}
+		
+		//* Create the powerdns config file
+		$configfile = 'pdns.local';
+		if(is_file($conf["powerdns"]["config_dir"].'/'.$configfile)) copy($conf["powerdns"]["config_dir"].'/'.$configfile,$conf["powerdns"]["config_dir"].'/'.$configfile.'~');
+		if(is_file($conf["powerdns"]["config_dir"].'/'.$configfile.'~')) exec('chmod 400 '.$conf["powerdns"]["config_dir"].'/'.$configfile.'~');
+		$content = rf("tpl/".$configfile.".master");
+		$content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content);
+		$content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content);
+		$content = str_replace('{powerdns_database}',$conf['powerdns']['database'],$content);
+		$content = str_replace('{mysql_server_host}',$conf["mysql"]["host"],$content);
+		wf($conf["powerdns"]["config_dir"].'/'.$configfile,$content);
+		exec('chmod 600 '.$conf["powerdns"]["config_dir"].'/'.$configfile);
+		exec('chown root:root '.$conf["powerdns"]["config_dir"].'/'.$configfile);
+		
+		
+	}
+	
+	
+	
 	public function configure_apache()
     {	
 		global $conf;
@@ -800,7 +852,7 @@
 		
 		$content = rf("tpl/apache_ispconfig.conf.master");
 		$records = $this->db->queryAllRecords("SELECT * FROM server_ip WHERE server_id = ".$conf["server_id"]." AND virtualhost = 'y'");
-		if(count($records) > 0) {
+		if(is_array($records) && count($records) > 0) {
 			foreach($records as $rec) {
 				$content .= "NameVirtualHost ".$rec["ip_address"].":80\n";
 				$content .= "NameVirtualHost ".$rec["ip_address"].":443\n";
@@ -819,11 +871,16 @@
 			exec('ln -s /etc/webalizer.conf /etc/webalizer/webalizer.conf');
 		}
 		
+		if(is_file('/etc/webalizer/webalizer.conf')) {
+			// Change webalizer mode to incremental
+			replaceLine('/etc/webalizer/webalizer.conf','#IncrementalName','IncrementalName webalizer.current',0,0);
+			replaceLine('/etc/webalizer/webalizer.conf','#Incremental','Incremental     yes',0,0);
+			replaceLine('/etc/webalizer/webalizer.conf','#HistoryName','HistoryName     webalizer.hist',0,0);
+		}
+		
 		//* add a sshusers group
 		$command = 'groupadd sshusers';
 		if(!is_group('sshusers')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
-
-		
 		
 	}
 	

--
Gitblit v1.9.1