redray
2009-03-11 122be74d39f3bd64b8f34ea5cc76d1e7e6e39ffa
install/lib/installer_base.lib.php
@@ -202,6 +202,13 @@
      // TODO: Update further distribution specific parameters for server config here
      $tpl_ini_array['web']['vhost_conf_dir'] = $conf['apache']['vhost_conf_dir'];
      $tpl_ini_array['web']['vhost_conf_enabled_dir'] = $conf['apache']['vhost_conf_enabled_dir'];
      $tpl_ini_array['jailkit']['jailkit_chroot_app_programs'] = $conf['jailkit']['jailkit_chroot_app_programs'];
      $tpl_ini_array['fastcgi']['fastcgi_phpini_path'] = $conf['fastcgi']['fastcgi_phpini_path'];
      $tpl_ini_array['server']['hostname'] = $conf['hostname'];
      $tpl_ini_array['server']['ip_address'] = @gethostbyname($conf['hostname']);
      $tpl_ini_array['web']['website_basedir'] = $conf['web']['website_basedir'];
      $tpl_ini_array['web']['website_path'] = $conf['web']['website_path'];
      $tpl_ini_array['web']['website_symlinks'] = $conf['web']['website_symlinks'];
      
      $server_ini_content = array_to_ini($tpl_ini_array);
      $server_ini_content = mysql_real_escape_string($server_ini_content);
@@ -230,7 +237,7 @@
         $from_ip = gethostbyname($conf['hostname']);
         
         //* username for the ispconfig user
         $conf['mysql']['master_ispconfig_user'] = 'ispconfigserver'.$conf['server_id'];
         $conf['mysql']['master_ispconfig_user'] = 'ispcsrv'.$conf['server_id'];
      
         //* Delete ISPConfig user in the master database, in case that it exists
         $this->dbmaster->query("DELETE FROM mysql.user WHERE User = '".$conf['mysql']['master_ispconfig_user']."' AND Host = '".$from_host."';");
@@ -240,9 +247,9 @@
         $this->dbmaster->query('FLUSH PRIVILEGES;');
      
         //* Create the ISPConfig database user in the local database
           $query = 'GRANT SELECT, INSERT, UPDATE, DELETE ON '.$conf['mysql']['master_database'].".* "
           /*$query = 'GRANT SELECT, INSERT, UPDATE, DELETE ON '.$conf['mysql']['master_database'].".* "
                   ."TO '".$conf['mysql']['master_ispconfig_user']."'@'".$from_host."' "
                   ."IDENTIFIED BY '".$conf['mysql']['master_ispconfig_password']."';";
                   ."IDENTIFIED BY '".$conf['mysql']['master_ispconfig_password']."';";*/
         $query = 'GRANT SELECT, INSERT, UPDATE, DELETE ON '.$conf['mysql']['master_database'].".* "
                   ."TO '".$conf['mysql']['master_ispconfig_user']."'@'".$from_ip."' "
                   ."IDENTIFIED BY '".$conf['mysql']['master_ispconfig_password']."';";
@@ -698,12 +705,12 @@
      
      if(is_file('/etc/suphp/suphp.conf')) {
         replaceLine('/etc/suphp/suphp.conf','php=php:/usr/bin','x-httpd-suphp=php:/usr/bin/php-cgi',0);
         replaceLine('/etc/suphp/suphp.conf','docroot=','docroot=/var/clients',0);
         //replaceLine('/etc/suphp/suphp.conf','docroot=','docroot=/var/clients',0);
      }
      
      if(is_file('/etc/apache2/sites-enabled/000-default')) {
         replaceLine('/etc/apache2/sites-available/000-default','NameVirtualHost *','NameVirtualHost *:80',1);
         replaceLine('/etc/apache2/sites-available/000-default','<VirtualHost *>','<VirtualHost *:80>',1);
         replaceLine('/etc/apache2/sites-available/000-default','NameVirtualHost *','NameVirtualHost *:80',1,0);
         replaceLine('/etc/apache2/sites-available/000-default','<VirtualHost *>','<VirtualHost *:80>',1,0);
      }
      
      if(is_file('/etc/apache2/ports.conf')) {
@@ -716,7 +723,19 @@
        $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');
      // 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");
      }
@@ -747,7 +766,7 @@
          $tcp_public_services = trim(str_replace(',',' ',$row["tcp_port"]));
          $udp_public_services = trim(str_replace(',',' ',$row["udp_port"]));
        } else {
          $tcp_public_services = '21 22 25 53 80 110 443 3306 8080 10000';
          $tcp_public_services = '21 22 25 53 80 110 143 443 3306 8080 10000';
          $udp_public_services = '53';
        }
      
@@ -908,6 +927,12 @@
      $file_server_enabled = ($conf['services']['file'])?1:0;
      $db_server_enabled = ($conf['services']['db'])?1:0;
      $vserver_server_enabled = ($conf['services']['vserver'])?1:0;
      $sql = "UPDATE `server` SET mail_server = '$mail_server_enabled', web_server = '$web_server_enabled', dns_server = '$dns_server_enabled', file_server = '$file_server_enabled', db_server = '$db_server_enabled', vserver_server = '$vserver_server_enabled' WHERE server_id = ".intval($conf['server_id']);
      
      if($conf['mysql']['master_slave_setup'] == 'y') {
@@ -992,24 +1017,27 @@
            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');
      if(!is_file('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter')) {
         exec('mkdir -p /var/www/php-fcgi-scripts/ispconfig');
         exec('cp tpl/apache_ispconfig_fcgi_starter.master /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter');
         exec('chmod +x /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter');
         exec('ln -s /usr/local/ispconfig/interface/web /var/www/ispconfig');
         exec('chown -R ispconfig:ispconfig /var/www/php-fcgi-scripts/ispconfig');
      }
      
      //* 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');
      
      //set the fast cgi starter script to executable
      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');
      if(@is_file('/var/log/mail.warn')) exec('chmod +r /var/log/mail.warn');
      if(@is_file('/var/log/mail.err')) exec('chmod +r /var/log/mail.err');
      if(@is_file('/var/log/messages')) exec('chmod +r /var/log/messages');
      if(@is_file('/var/log/clamav/clamav.log')) exec('chmod +r /var/log/clamav/clamav.log');
      if(@is_file('/var/log/clamav/freshclam.log')) exec('chmod +r /var/log/clamav/freshclam.log');
      
      //* Create the ispconfig log directory
      if(!is_dir('/var/log/ispconfig')) mkdir('/var/log/ispconfig');
@@ -1075,12 +1103,12 @@
         $existing_cron_jobs = file('crontab.txt');
      
         $cron_jobs = array(
                '*/5 * * * * '.$cf['program'].' -g '.$cf['config_dir'].' -r '.$cf['config_dir'].'/*.conf > /dev/null 2>> /var/log/ispconfig/cron.log'
                '*/5 * * * * '.$cf['program'].' -n -g '.$cf['config_dir'].' -r '.$cf['config_dir'].'/*.conf > /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]);
            if(stristr($val,$cf['program'])) unset($existing_cron_jobs[$key]);
         }
      
         foreach($cron_jobs as $cron_job) {
@@ -1092,6 +1120,10 @@
         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');
   }
   
}