redray
2008-12-04 e77915fcd5f3b59781b60ec92c6b512ea06698a1
install/dist/lib/opensuse.lib.php
@@ -1,7 +1,7 @@
<?php
/*
Copyright (c) 2008, Till Brehm, projektfarm Gmbh
Copyright (c) 2007, Till Brehm, projektfarm Gmbh
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
@@ -95,8 +95,9 @@
         'broken_sasl_auth_clients = yes',
         'smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_recipient_access mysql:'.$config_dir.'/mysql-virtual_recipient.cf, reject_unauth_destination',
         'smtpd_use_tls = yes',
         'smtpd_tls_cert_file = '.$config_dir.'/smtpd.cert',
         'smtpd_tls_key_file = '.$config_dir.'/smtpd.key',
         'smtpd_tls_security_level = may',
         'smtpd_tls_cert_file = '.$config_dir.'/ssl/smtpd.cert',
         'smtpd_tls_key_file = '.$config_dir.'/ssl/smtpd.key',
         'transport_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_transports.cf',
         'relay_domains = mysql:'.$config_dir.'/mysql-virtual_relaydomains.cf',
         'virtual_create_maildirsize = yes',
@@ -136,12 +137,12 @@
      
      if(!stristr($options,'dont-create-certs')) {
         //* Create the SSL certificate
         $command = 'cd '.$config_dir.'; '
                      .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout '
                      .'smtpd.key -keyform PEM -days 365 -x509';
         $command = 'mkdir '.$config_dir.'/ssl; '
                      .'cd '.$config_dir.'/ssl; '
                      .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:2048 -nodes -keyout smtpd.key -keyform PEM -days 365 -x509';
         exec($command);
      
         $command = 'chmod o= '.$config_dir.'/smtpd.key';
         $command = 'chmod o= '.$config_dir.'/ssl/smtpd.key';
         caselog($command.' &> /dev/null', __FILE__, __LINE__, 'EXECUTED: '.$command, 'Failed to execute the command '.$command);
      }
      
@@ -637,13 +638,22 @@
         
        $content = rf("tpl/apache_ispconfig.vhost.master");
      $content = str_replace('{vhost_port}', $conf['apache']['vhost_port'], $content);
      // comment out the listen directive if port is 80 or 443
      if($conf['apache']['vhost_port'] == 80 or $conf['apache']['vhost_port'] == 443) {
         $content = str_replace('{vhost_port_listen}', '#', $content);
      } else {
         $content = str_replace('{vhost_port_listen}', '', $content);
      }
      wf("$vhost_conf_dir/ispconfig.vhost", $content);
      
      //copy('tpl/apache_ispconfig.vhost.master', "$vhost_conf_dir/ispconfig.vhost");
      //* and create the symlink
      if($this->install_ispconfig_interface == true) {
         if(!@is_link("$vhost_conf_enabled_dir/ispconfig.vhost")) {
            exec("ln -s $vhost_conf_dir/ispconfig.vhost $vhost_conf_enabled_dir/ispconfig.vhost");
         if(@is_link("$vhost_conf_enabled_dir/ispconfig.vhost")) unlink("$vhost_conf_enabled_dir/ispconfig.vhost");
         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");
         }
      }
      
@@ -669,6 +679,10 @@
      exec('chmod a+rx /usr/local/ispconfig');
      exec('chmod -R 751 /usr/local/ispconfig/interface');
      exec('chmod a+rx /usr/local/ispconfig/interface/web');
      //* 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');
      
      
   }
@@ -705,6 +719,11 @@
      exec('crontab -u root -l > crontab.txt');
      $existing_root_cron_jobs = file('crontab.txt');
      
      // remove existing ispconfig cronjobs, in case the syntax has changed
      foreach($existing_root_cron_jobs as $key => $val) {
         if(stristr($val,'/usr/local/ispconfig')) unset($existing_root_cron_jobs[$key]);
      }
      $root_cron_jobs = array(
         '* * * * * /usr/local/ispconfig/server/server.sh &> /dev/null',
         '30 00 * * * /usr/local/ispconfig/server/cron_daily.sh &> /dev/null'
@@ -719,19 +738,27 @@
      unlink('crontab.txt');
      
      //* Getmail crontab
        $cf = $conf['getmail'];
      exec('crontab -u getmail -l > crontab.txt');
      $existing_cron_jobs = file('crontab.txt');
      if(is_user('getmail')) {
           $cf = $conf['getmail'];
         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');
      foreach($cron_jobs as $cron_job) {
         if(!in_array($cron_job."\n", $existing_cron_jobs)) {
            $existing_cron_jobs[] = $cron_job."\n";
         $cron_jobs = array('*/5 * * * * '.$cf['program'].' -g '.$cf['config_dir'].' -r '.$cf['config_dir'].'/*.conf &> /dev/null');
         // 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($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');
      }
      file_put_contents('crontab.txt', $existing_cron_jobs);
      exec('crontab -u getmail crontab.txt &> /dev/null');
      unlink('crontab.txt');
   }
}