From b4c75070d8f792eebddcf561dcac9c3c94bd6bea Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Tue, 26 Jun 2007 07:57:01 -0400
Subject: [PATCH] Several updaes and bugfixes.

---
 install/lib/installer_base.lib.php |  144 ++++++++++++++++++++++++++++++++++--------------
 1 files changed, 102 insertions(+), 42 deletions(-)

diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php
index a4c5a2b..00f60cb 100644
--- a/install/lib/installer_base.lib.php
+++ b/install/lib/installer_base.lib.php
@@ -264,6 +264,14 @@
 		$command = "chmod 755  /var/run/courier/authdaemon/";
 		caselog($command." &> /dev/null", __FILE__, __LINE__,"EXECUTED: ".$command,"Failed to execute the command ".$command);
 		
+		// Changing maildrop lines in posfix master.cf
+		if(is_file($conf["dist_postfix_config_dir"].'/master.cf')) copy($conf["dist_postfix_config_dir"].'/master.cf',$conf["dist_postfix_config_dir"].'/master.cf~');
+		if(is_file($conf["dist_postfix_config_dir"].'/master.cf~')) exec('chmod 400 '.$conf["dist_postfix_config_dir"].'/master.cf~');
+		$configfile = $conf["dist_postfix_config_dir"].'/master.cf';
+		$content = rf($configfile);
+		$content = str_replace('  flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}','  flags=R user='.$conf["dist_postfix_vmail_username"].' argv=/usr/bin/maildrop -d ${recipient} ${extension} ${recipient} ${user} ${nexthop} ${sender}',$content);
+		wf($configfile,$content);
+		
 		// Writing the Maildrop mailfilter file
 		$configfile = 'mailfilter';
 		if(is_file($conf["dist_postfix_vmail_mailbox_base"].'/.'.$configfile)) copy($conf["dist_postfix_vmail_mailbox_base"].'/.'.$configfile,$conf["dist_postfix_vmail_mailbox_base"].'/.'.$configfile.'~');
@@ -289,47 +297,7 @@
 	function configure_saslauthd() {
 		global $conf;
 		
-		/*
-		
-		TODO: The example below is for Ubuntu 6.10
-		
-		mkdir -p /var/spool/postfix/var/run/saslauthd
-
-Edit /etc/default/saslauthd. Remove the # in front of START=yes and add the line PARAMS="-m /var/spool/postfix/var/run/saslauthd -r". 
-
-vi /etc/default/saslauthd
-
-The file should then look like this:
-
-# This needs to be uncommented before saslauthd will be run automatically
-START=yes
-
-# You must specify the authentication mechanisms you wish to use.
-# This defaults to "pam" for PAM support, but may also include
-# "shadow" or "sasldb", like this:
-# MECHANISMS="pam shadow"
-
-MECHANISMS="pam"
-PARAMS="-m /var/spool/postfix/var/run/saslauthd -r"
-
-We must also edit /etc/init.d/saslauthd and change the location of saslauthd's PID file. 
-
-vi /etc/init.d/saslauthd
-
-Change the value of PIDFILE to /var/spool/postfix/var/run/${NAME}/saslauthd.pid:
-
-PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid"
-
-
-Then restart Postfix and Saslauthd:
-
-/etc/init.d/postfix restart
-postfix check
-/etc/init.d/saslauthd restart
-		
-		
-		*/
-		
+	
 		$configfile = 'sasl_smtpd.conf';
 		if(is_file($conf["dist_postfix_config_dir"].'/sasl/smtpd.conf')) copy($conf["dist_postfix_config_dir"].'/sasl/smtpd.conf',$conf["dist_postfix_config_dir"].'/sasl/smtpd.conf~');
 		if(is_file($conf["dist_postfix_config_dir"].'/sasl/smtpd.conf~')) exec('chmod 400 '.$conf["dist_postfix_config_dir"].'/sasl/smtpd.conf~');
@@ -341,6 +309,26 @@
 		wf($conf["dist_postfix_config_dir"].'/sasl/smtpd.conf',$content);
 		
 		// TODO: Chmod and chown on the config file
+		
+		
+		
+		// Create the spool directory
+		exec("mkdir -p /var/spool/postfix/var/run/saslauthd");
+		
+		// Edit the file /etc/default/saslauthd
+		$configfile = '/etc/default/saslauthd';
+		if(is_file($configfile)) copy($configfile,$configfile.'~');
+		if(is_file($configfile.'~')) exec('chmod 400 '.$configfile.'~');
+		$content = rf($configfile);
+		$content = str_replace('START=no','START=yes',$content);
+		$content = str_replace('OPTIONS="-c"','OPTIONS="-m /var/spool/postfix/var/run/saslauthd -r"',$content);
+		wf($configfile,$content);
+		
+		// Edit the file /etc/default/saslauthd
+		$configfile = '/etc/init.d/saslauthd';
+		$content = rf($configfile);
+		$content = str_replace('PIDFILE=$RUN_DIR/saslauthd.pid','PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid"',$content);
+		wf($configfile,$content);
 		
 		
 	}
@@ -379,6 +367,16 @@
 		
 		exec('chmod 660 '.$conf["dist_courier_config_dir"].'/'.$configfile);
 		exec('chown daemon:daemon '.$conf["dist_courier_config_dir"].'/'.$configfile);
+		
+		//authdaemonrc
+		$configfile = $conf["dist_courier_config_dir"].'/authdaemonrc';
+		if(is_file($configfile)) copy($configfile,$configfile.'~');
+		if(is_file($configfile.'~')) exec('chmod 400 '.$configfile.'~');
+		$content = rf($configfile);
+		$content = str_replace('authmodulelist="authpam"','authmodulelist="authmysql"',$content);
+		wf($configfile,$content);
+		
+		
 	}
 	
 	function configure_amavis() {
@@ -442,11 +440,34 @@
 	function configure_getmail() {
 		global $conf;
 		
-		$command = "useradd -b /etc/getmail -d /etc/getmail getmail";
+		$command = "useradd -d /etc/getmail getmail";
+		caselog($command." &> /dev/null", __FILE__, __LINE__,"EXECUTED: ".$command,"Failed to execute the command ".$command);
+		
+		$command = "chown -R getmail /etc/getmail";
 		caselog($command." &> /dev/null", __FILE__, __LINE__,"EXECUTED: ".$command,"Failed to execute the command ".$command);
 		
 		$command = "chmod -R 700 /etc/getmail";
 		caselog($command." &> /dev/null", __FILE__, __LINE__,"EXECUTED: ".$command,"Failed to execute the command ".$command);
+	}
+	
+	
+	function configure_pureftpd() {
+		global $conf;
+		
+		// configure pam for SMTP authentication agains the ispconfig database
+		$configfile = 'mysql.conf';
+		if(is_file($conf["dist_pureftpd_config_dir"].'/'.$configfile)) copy($conf["dist_pureftpd_config_dir"].'/'.$configfile,$conf["dist_pureftpd_config_dir"].'/'.$configfile.'~');
+		if(is_file($conf["dist_pureftpd_config_dir"].'/'.$configfile.'~')) exec('chmod 400 '.$conf["dist_pureftpd_config_dir"].'/'.$configfile.'~');
+		$content = rf("tpl/pureftpd_".$configfile.".master");
+		$content = str_replace('{mysql_server_ispconfig_user}',$conf["mysql_server_ispconfig_user"],$content);
+		$content = str_replace('{mysql_server_ispconfig_password}',$conf["mysql_server_ispconfig_password"],$content);
+		$content = str_replace('{mysql_server_database}',$conf["mysql_server_database"],$content);
+		$content = str_replace('{mysql_server_ip}',$conf["mysql_server_ip"],$content);
+		$content = str_replace('{server_id}',$conf["server_id"],$content);
+		wf($conf["dist_pureftpd_config_dir"].'/'.$configfile,$content);
+		exec('chmod 600 '.$conf["dist_pureftpd_config_dir"].'/'.$configfile);
+		exec('chown root:root '.$conf["dist_pureftpd_config_dir"].'/'.$configfile);
+	
 	}
 	
 	
@@ -494,6 +515,7 @@
 		$content = str_replace('{mysql_server_ispconfig_password}',$conf["mysql_server_ispconfig_password"],$content);
 		$content = str_replace('{mysql_server_database}',$conf["mysql_server_database"],$content);
 		$content = str_replace('{mysql_server_host}',$conf["mysql_server_host"],$content);
+		$content = str_replace('{server_id}',$conf["server_id"],$content);
 		wf($conf["ispconfig_install_dir"].'/server/lib/'.$configfile,$content);
 		
 		
@@ -516,6 +538,44 @@
 		$command = "chmod +x ".$conf["ispconfig_install_dir"]."/server/scripts/*.sh";
 		caselog($command." &> /dev/null", __FILE__, __LINE__,"EXECUTED: ".$command,"Failed to execute the command ".$command);
 		
+		// Copy the ISPConfig vhost for the controlpanel
+		copy('tpl/apache_ispconfig.vhost.master',$conf["dist_apache_vhost_conf_dir"].'/ispconfig.vhost');
+		// and create the symlink
+		exec('ln -s '.$conf["dist_apache_vhost_conf_dir"].'/ispconfig.vhost '.$conf["dist_apache_vhost_conf_enabled_dir"].'/ispconfig.vhost');
+		
+	}
+	
+	function install_crontab() {
+		global $conf;
+		
+		// Root Crontab
+		exec("crontab -u root -l > crontab.txt");
+		$existing_root_cron_jobs = file('crontab.txt');
+		
+		$root_cron_jobs = array('* * * * * /usr/bin/php -q /usr/local/ispconfig/server/server.php &> /dev/null');
+		foreach($root_cron_jobs as $cron_job) {
+			if(!in_array($cron_job."\n",$existing_root_cron_jobs)) {
+				$existing_root_cron_jobs[] = $cron_job."\n";
+			}
+		}
+		file_put_contents('crontab.txt',$existing_root_cron_jobs);
+		exec("crontab -u root crontab.txt &> /dev/null");
+		unlink('crontab.txt');
+		
+		// Getmail crontab
+		exec("crontab -u getmail -l > crontab.txt");
+		$existing_cron_jobs = file('crontab.txt');
+		
+		$cron_jobs = array('*/5 * * * * '.$conf["dist_getmail_program"].' -g '.$conf["dist_getmail_config_dir"].' -r '.$conf["dist_getmail_config_dir"].'/*.conf &> /dev/null');
+		foreach($cron_jobs as $cron_job) {
+			if(!in_array($cron_job."\n",$existing_cron_jobs)) {
+				$existing_cron_jobs[] = $cron_job."\n";
+			}
+		}
+		file_put_contents('crontab.txt',$existing_cron_jobs);
+		exec("crontab -u getmail crontab.txt &> /dev/null");
+		unlink('crontab.txt');
+		
 	}
 	
 	

--
Gitblit v1.9.1