tbrehm
2009-03-12 66768acec9ab538c978ac7f3a89c21009c7be18e
install/dist/lib/opensuse.lib.php
@@ -102,7 +102,7 @@
         'transport_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_transports.cf',
         'relay_domains = mysql:'.$config_dir.'/mysql-virtual_relaydomains.cf',
         'virtual_create_maildirsize = yes',
         'virtual_mailbox_extended = yes',
         'virtual_maildir_extended = yes',
         'virtual_mailbox_limit_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_mailbox_limit_maps.cf',
         'virtual_mailbox_limit_override = yes',
         'virtual_maildir_limit_message = "The user you are trying to reach is over quota."',
@@ -159,9 +159,15 @@
        }
      $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 ${recipient} ${extension} ${recipient} ${user} ${nexthop} ${sender}',
                     $content);
      $content = str_replace('  flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}',
                   '  flags=R user='.$cf['vmail_username'].' argv=/usr/bin/maildrop -d ${recipient} ${extension} ${recipient} ${user} ${nexthop} ${sender}',
                     $content);
      wf($configfile, $content);
      
      //* Writing the Maildrop mailfilter file
@@ -222,6 +228,9 @@
      $configfile = $conf["init_scripts"].'/'.$conf["saslauthd"]["init_script"];
      $content = rf($configfile);
      $content = str_replace('/sbin/startproc $AUTHD_BIN -a $SASLAUTHD_AUTHMECH -n $SASLAUTHD_THREADS > /dev/null 2>&1','/sbin/startproc $AUTHD_BIN -r -a $SASLAUTHD_AUTHMECH -n $SASLAUTHD_THREADS > /dev/null 2>&1',$content);
      $content = str_replace('/sbin/startproc $AUTHD_BIN $SASLAUTHD_PARAMS -a $SASLAUTHD_AUTHMECH -n $SASLAUTHD_THREADS > /dev/null 2>&1','/sbin/startproc $AUTHD_BIN $SASLAUTHD_PARAMS -r -a $SASLAUTHD_AUTHMECH -n $SASLAUTHD_THREADS > /dev/null 2>&1',$content);
      wf($configfile,$content);
      
      
@@ -420,15 +429,40 @@
      //* Create the logging directory for the vhost logfiles
      exec('mkdir -p /var/log/ispconfig/httpd');
      
      if(is_file('/etc/suphp/suphp.conf')) {
         replaceLine('/etc/suphp.conf','php=php:/srv/www/cgi-bin/php5','x-httpd-suphp=php:/srv/www/cgi-bin/php5',0);
         replaceLine('/etc/suphp.conf','docroot=','docroot=/var/clients',0);
      }
      // Sites enabled and avaulable dirs
      exec('mkdir -p '.$conf['apache']['vhost_conf_enabled_dir']);
      exec('mkdir -p '.$conf['apache']['vhost_conf_dir']);
      
      $content = rf('/etc/apache2/httpd.conf');
      if(!stristr($content,'Include /etc/apache2/sites-enabled/')) {
         af('/etc/apache2/httpd.conf',"\nInclude /etc/apache2/sites-enabled/\n\n");
         af('/etc/apache2/httpd.conf',"\n<Directory /srv/www>\n    Options FollowSymlinks\n</Directory>\n\nInclude /etc/apache2/sites-enabled/\n\n");
      }
      unset($content);
      //* Copy the ISPConfig configuration include
        $vhost_conf_dir = $conf['apache']['vhost_conf_dir'];
        $vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir'];
      //copy('tpl/apache_ispconfig.conf.master',$vhost_conf_dir.'/ispconfig.conf');
      $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) {
         foreach($records as $rec) {
            $content .= "NameVirtualHost ".$rec["ip_address"].":80\n";
            $content .= "NameVirtualHost ".$rec["ip_address"].":443\n";
         }
      }
      $content .= "\n";
      wf($vhost_conf_dir.'/ispconfig.conf',$content);
      if(!@is_link($vhost_conf_enabled_dir."/000-ispconfig.conf")) {
         exec("ln -s ".$vhost_conf_dir."/ispconfig.conf ".$vhost_conf_enabled_dir."/000-ispconfig.conf");
      }
      
   }
   
@@ -692,7 +726,18 @@
         $content = str_replace('{vhost_port_listen}', '', $content);
      }
      
      $content = str_replace('/var/www/', '/srv/www/', $content);
      wf("$vhost_conf_dir/ispconfig.vhost", $content);
      if(!is_file('/srv/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter')) {
         exec('mkdir -p /srv/www/php-fcgi-scripts/ispconfig');
         exec('cp tpl/apache_ispconfig_fcgi_starter.master /srv/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter');
         exec('chmod +x /srv/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter');
         exec('ln -s /usr/local/ispconfig/interface/web /srv/www/ispconfig');
         exec('chown -R ispconfig:ispconfig /srv/www/php-fcgi-scripts/ispconfig');
      }
      
      //copy('tpl/apache_ispconfig.vhost.master', "$vhost_conf_dir/ispconfig.vhost");
      //* and create the symlink
@@ -701,19 +746,26 @@
         if(!@is_link("$vhost_conf_enabled_dir/000-ispconfig.vhost")) {
            exec("ln -s $vhost_conf_dir/ispconfig.vhost $vhost_conf_enabled_dir/000-ispconfig.vhost");
         }
      }
      
      // Make the Clamav log files readable by ISPConfig
      //exec('chmod +r /var/log/clamav/clamav.log');
      //exec('chmod +r /var/log/clamav/freshclam.log');
      
      //* Install the SVN update script
      exec('cp ../helper_scripts/update_from_svn.sh /usr/local/bin/ispconfig_update_from_svn.sh');
      exec('chown root /usr/local/bin/ispconfig_update_from_svn.sh');
      exec('chmod 700 /usr/local/bin/ispconfig_update_from_svn.sh');
      //* Install the update script
      if(is_file('/usr/local/bin/ispconfig_update_from_svn.sh')) unlink('/usr/local/bin/ispconfig_update_from_svn.sh');
      exec('chown root /usr/local/ispconfig/server/scripts/update_from_svn.sh');
      exec('chmod 700 /usr/local/ispconfig/server/scripts/update_from_svn.sh');
      exec('chown root /usr/local/ispconfig/server/scripts/update_from_tgz.sh');
      exec('chmod 700 /usr/local/ispconfig/server/scripts/update_from_tgz.sh');
      exec('chown root /usr/local/ispconfig/server/scripts/ispconfig_update.sh');
      exec('chmod 700 /usr/local/ispconfig/server/scripts/ispconfig_update.sh');
      exec('ln -s /usr/local/ispconfig/server/scripts/ispconfig_update.sh /usr/local/bin/ispconfig_update_from_svn.sh');
      exec('ln -s /usr/local/ispconfig/server/scripts/ispconfig_update.sh /usr/local/bin/ispconfig_update.sh');
      
      //set the fast cgi starter script to executable
      exec('chmod 755 '.$install_dir.'/interface/bin/php-fcgi');
      //exec('chmod 755 '.$install_dir.'/interface/bin/php-fcgi');
      
      //* Make the logs readable for the ispconfig user
      if(@is_file('/var/log/mail.log')) exec('chmod +r /var/log/mail.log');
@@ -729,6 +781,9 @@
      //* Create the ispconfig log directory
      if(!is_dir('/var/log/ispconfig')) mkdir('/var/log/ispconfig');
      if(!is_file('/var/log/ispconfig/ispconfig.log')) exec('touch /var/log/ispconfig/ispconfig.log');
      exec('chown getmail /usr/local/ispconfig/server/scripts/run-getmail.sh');
      exec('chmod 744 /usr/local/ispconfig/server/scripts/run-getmail.sh');
      
      
   }
@@ -789,13 +844,15 @@
         exec('crontab -u getmail -l > crontab.txt');
         $existing_cron_jobs = file('crontab.txt');
      
         $cron_jobs = array('*/5 * * * * '.$cf['program'].' -g '.$cf['config_dir'].' -r '.$cf['config_dir'].'/*.conf &> /dev/null');
         $cron_jobs = array(
                '*/5 * * * * /usr/local/ispconfig/server/scripts/run-getmail.sh > /dev/null 2>> /var/log/ispconfig/cron.log'
            );
         // remove existing ispconfig cronjobs, in case the syntax has changed
         foreach($cron_jobs as $key => $val) {
            if(stristr($val,$cf['program'])) unset($cron_jobs[$key]);
         foreach($existing_cron_jobs as $key => $val) {
            if(stristr($val,'getmail')) unset($existing_cron_jobs[$key]);
         }
         foreach($cron_jobs as $cron_job) {
            if(!in_array($cron_job."\n", $existing_cron_jobs)) {
               $existing_cron_jobs[] = $cron_job."\n";
@@ -805,6 +862,9 @@
         exec('crontab -u getmail crontab.txt &> /dev/null');
         unlink('crontab.txt');
      }
      exec('touch /var/log/ispconfig/cron.log');
      exec('chmod 666 /var/log/ispconfig/cron.log');
   }
}