vogelor
2010-05-01 cbff9d43e25e44d5e1ee716b8898b27e746a045c
install/lib/installer_base.lib.php
@@ -1,7 +1,7 @@
<?php
/*
Copyright (c) 2007, Till Brehm, projektfarm Gmbh
Copyright (c) 2007-2010, Till Brehm, projektfarm Gmbh
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
@@ -154,7 +154,7 @@
            caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' '".$conf['mysql']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/ispconfig3.sql' &> /dev/null", 
                        __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in ispconfig3.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['mysql']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/ispconfig3.sql' &> /dev/null",
            caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' -p'".$conf['mysql']['admin_password']."' '".$conf['mysql']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/ispconfig3.sql' &> /dev/null",
                        __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in ispconfig3.sql');
         }
         $db_tables = $this->db->getTables();
@@ -218,6 +218,11 @@
      $tpl_ini_array['web']['group'] = $conf['apache']['group'];
      $tpl_ini_array['mail']['pop3_imap_daemon'] = ($conf['dovecot']['installed'] == true)?'dovecot':'courier';
      $tpl_ini_array['mail']['mail_filter_syntax'] = ($conf['dovecot']['installed'] == true)?'sieve':'maildrop';
      $tpl_ini_array['dns']['bind_user'] = $conf['bind']['bind_user'];
      $tpl_ini_array['dns']['bind_group'] = $conf['bind']['bind_group'];
      $tpl_ini_array['dns']['bind_zonefiles_dir'] = $conf['bind']['bind_zonefiles_dir'];
      $tpl_ini_array['dns']['named_conf_path'] = $conf['bind']['named_conf_path'];
      $tpl_ini_array['dns']['named_conf_local_path'] = $conf['bind']['named_conf_local_path'];
        
      $server_ini_content = array_to_ini($tpl_ini_array);
      $server_ini_content = mysql_real_escape_string($server_ini_content);
@@ -724,7 +729,7 @@
      
      // amavisd user config file
      $configfile = 'amavisd_user_config';
      if(is_file($conf["amavis"]["config_dir"].'/conf.d/50-user')) copy($conf["amavis"]["config_dir"].'/conf.d/50-user',$conf["courier"]["config_dir"].'/50-user~');
      if(is_file($conf["amavis"]["config_dir"].'/conf.d/50-user')) copy($conf["amavis"]["config_dir"].'/conf.d/50-user',$conf["amavis"]["config_dir"].'/50-user~');
      if(is_file($conf["amavis"]["config_dir"].'/conf.d/50-user~')) exec('chmod 400 '.$conf["amavis"]["config_dir"].'/conf.d/50-user~');
      $content = rf("tpl/".$configfile.".master");
      $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content);
@@ -829,6 +834,18 @@
      //exec('mkdir -p '.$config_dir.'/conf/ChrootEveryone');
      exec('echo "yes" > '.$config_dir.'/conf/ChrootEveryone');
      exec('echo "yes" > '.$config_dir.'/conf/BrokenClientsCompatibility');
      if(is_file('/etc/default/pure-ftpd-common')) {
         replaceLine('/etc/default/pure-ftpd-common','STANDALONE_OR_INETD=inetd','STANDALONE_OR_INETD=standalone',1,0);
         replaceLine('/etc/default/pure-ftpd-common','VIRTUALCHROOT=false','VIRTUALCHROOT=true',1,0);
      }
      if(is_file('/etc/inetd.conf')) {
         replaceLine('/etc/inetd.conf','/usr/sbin/pure-ftpd-wrapper','#ftp     stream  tcp     nowait  root    /usr/sbin/tcpd /usr/sbin/pure-ftpd-wrapper',0,0);
         if(is_file('/etc/init.d/openbsd-inetd')) exec('/etc/init.d/openbsd-inetd restart');
      }
      if(!is_file('/etc/pure-ftpd/conf/DontResolve')) exec("echo 'yes' > /etc/pure-ftpd/conf/DontResolve");
   }
   
   public function configure_mydns()
@@ -1059,9 +1076,9 @@
      
      //* Create the ispconfig apps vhost user and group
      
      $apps_vhost_user = $conf['web']['apps_vhost_user'];
      $apps_vhost_group = $conf['web']['apps_vhost_group'];
      $install_dir = $conf['web']['website_basedir'].'/apps';
      $apps_vhost_user = escapeshellcmd($conf['web']['apps_vhost_user']);
      $apps_vhost_group = escapeshellcmd($conf['web']['apps_vhost_group']);
      $install_dir = escapeshellcmd($conf['web']['website_basedir'].'/apps');
      
      $command = 'groupadd '.$apps_vhost_user;
      if(!is_group($apps_vhost_group)) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
@@ -1073,7 +1090,8 @@
      $command = 'adduser '.$conf['apache']['user'].' '.$apps_vhost_group;
      caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
      
      exec('mkdir -p '.escapeshellcmd($conf['web']['website_basedir'].'/apps'));
      exec('mkdir -p '.$install_dir);
      exec("chown $apps_vhost_user:$apps_vhost_group $install_dir");
      
      //* Copy the apps vhost file
        $vhost_conf_dir = $conf['apache']['vhost_conf_dir'];
@@ -1368,10 +1386,30 @@
      if(!is_file('/var/log/ispconfig/ispconfig.log')) exec('touch /var/log/ispconfig/ispconfig.log');
      
      exec('mv /usr/local/ispconfig/server/scripts/run-getmail.sh /usr/local/bin/run-getmail.sh');
      exec('chown getmail /usr/local/bin/run-getmail.sh');
      if(is_user('getmail')) exec('chown getmail /usr/local/bin/run-getmail.sh');
      exec('chmod 744 /usr/local/bin/run-getmail.sh');
      //* Add Log-Rotation
      if (is_dir('/etc/logrotate.d')){
         unlink('/etc/logrotate.d/logispc3');
         $fh = fopen('/etc/logrotate.d/logispc3', 'w');
         fwrite($fh,
               "/var/log/ispconfig/ispconfig.log { \n" .
               "   weekly \n" .
               "   missingok \n" .
               "   rotate 4 \n" .
               "   compress \n" .
               "   delaycompress \n" .
               "} \n" .
               "/var/log/ispconfig/cron.log { \n" .
               "   weekly \n" .
               "   missingok \n" .
               "   rotate 4 \n" .
               "   compress \n" .
               "   delaycompress \n" .
               "}");
         fclose($fh);
      }
   }
   
   public function configure_dbserver()