mcramer
2013-07-08 ed1260a13c005e5cdbdafacf28fbbdc1ddbe2d56
install/lib/installer_base.lib.php
@@ -215,6 +215,7 @@
      $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['fastcgi']['fastcgi_starter_path'] = $conf['fastcgi']['fastcgi_starter_path'];
      $tpl_ini_array['fastcgi']['fastcgi_bin'] = $conf['fastcgi']['fastcgi_bin'];
      $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'];
@@ -423,7 +424,7 @@
            $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage);
         }
         $query = "GRANT SELECT, UPDATE (`ssl_request`, `ssl_cert`, `ssl_action`) ON ".$value['db'].".`web_domain` TO '".$value['user']."'@'".$host."' ";
         $query = "GRANT SELECT, UPDATE (`ssl_request`, `ssl_cert`, `ssl_action`, `ssl_key`) ON ".$value['db'].".`web_domain` TO '".$value['user']."'@'".$host."' ";
         if ($verbose){
            echo $query ."\n";
         }
@@ -472,6 +473,14 @@
         }
         $query = "GRANT SELECT, UPDATE ON ".$value['db'].".`aps_instances` TO '".$value['user']."'@'".$host."' ";
         if ($verbose){
            echo $query ."\n";
         }
         if(!$this->dbmaster->query($query)) {
            $this->warning('Unable to set rights of user in master database: '.$value['db']."\n Query: ".$query."\n Error: ".$this->dbmaster->errorMessage);
         }
         $query = "GRANT SELECT, INSERT, DELETE ON ".$value['db'].".`web_backup` TO '".$value['user']."'@'".$host."' ";
         if ($verbose){
            echo $query ."\n";
         }
@@ -582,8 +591,27 @@
      if(!isset($old_options['DEFAULT_SERVER_LANGUAGE'])) $old_options['DEFAULT_SERVER_LANGUAGE'] = '';
      $content = str_replace('{default_language}', $old_options['DEFAULT_SERVER_LANGUAGE'], $content);
      $content = str_replace('{virtual_domains}', $virtual_domains, $content);
      wf($full_file_name, $content);
      //* Write virtual_to_transport.sh script
      $config_dir = $conf['mailman']['config_dir'].'/';
      $full_file_name = $config_dir.'virtual_to_transport.sh';
      //* Backup exiting virtual_to_transport.sh script
      if(is_file($full_file_name)) {
         copy($full_file_name, $config_dir.'virtual_to_transport.sh~');
      }
      if(is_dir('/etc/mailman')) {
         copy('tpl/mailman-virtual_to_transport.sh',$full_file_name);
         chgrp($full_file_name,'list');
         chmod($full_file_name,0750);
      }
      //* Create aliasaes
      exec('/usr/lib/mailman/bin/genaliases 2>/dev/null');
   }
   public function configure_postfix($options = '') {
@@ -673,7 +701,7 @@
            'smtpd_tls_security_level = may',
            'smtpd_tls_cert_file = '.$config_dir.'/smtpd.cert',
            'smtpd_tls_key_file = '.$config_dir.'/smtpd.key',
            'transport_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_transports.cf',
            'transport_maps = hash:/var/lib/mailman/data/transport-mailman, proxy:mysql:'.$config_dir.'/mysql-virtual_transports.cf',
            'relay_domains = mysql:'.$config_dir.'/mysql-virtual_relaydomains.cf',
            'relay_recipient_maps = mysql:'.$config_dir.'/mysql-virtual_relayrecipientmaps.cf',
            'proxy_read_maps = $local_recipient_maps $mydestination $virtual_alias_maps $virtual_alias_domains $virtual_mailbox_maps $virtual_mailbox_domains $relay_recipient_maps $relay_domains $canonical_maps $sender_canonical_maps $recipient_canonical_maps $relocated_maps $transport_maps $mynetworks $virtual_mailbox_limit_maps',
@@ -706,11 +734,13 @@
      touch($config_dir.'/body_checks');
      //* Create the mailman files
      exec('mkdir -p /var/lib/mailman/data');
      if(!is_dir('/var/lib/mailman/data')) exec('mkdir -p /var/lib/mailman/data');
      if(!is_file('/var/lib/mailman/data/aliases')) touch('/var/lib/mailman/data/aliases');
      exec('postalias /var/lib/mailman/data/aliases');
      if(!is_file('/var/lib/mailman/data/virtual-mailman')) touch('/var/lib/mailman/data/virtual-mailman');
      exec('postmap /var/lib/mailman/data/virtual-mailman');
      if(!is_file('/var/lib/mailman/data/transport-mailman')) touch('/var/lib/mailman/data/transport-mailman');
      exec('/usr/sbin/postmap /var/lib/mailman/data/transport-mailman');
      //* Make a backup copy of the main.cf file
      copy($config_dir.'/main.cf', $config_dir.'/main.cf~');
@@ -724,7 +754,7 @@
      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 3650 -x509';
               .'openssl req -new -outform PEM -out smtpd.cert -newkey rsa:4096 -nodes -keyout smtpd.key -keyform PEM -days 3650 -x509';
         exec($command);
         $command = 'chmod o= '.$config_dir.'/smtpd.key';
@@ -1498,12 +1528,16 @@
         }
         if(!is_file($conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter')) {
            $content = rf('tpl/apache_apps_fcgi_starter.master');
            $content = str_replace('{fastcgi_bin}', $conf['fastcgi']['fastcgi_bin'], $content);
            $content = str_replace('{fastcgi_phpini_path}', $conf['fastcgi']['fastcgi_phpini_path'], $content);
            mkdir($conf['web']['website_basedir'].'/php-fcgi-scripts/apps', 0755, true);
            copy('tpl/apache_apps_fcgi_starter.master',$conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter');
            //copy('tpl/apache_apps_fcgi_starter.master',$conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter');
            wf($conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter', $content);
            exec('chmod +x '.$conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter');
            exec('chown -R ispapps:ispapps '.$conf['web']['website_basedir'].'/php-fcgi-scripts/apps');
         }
         }
      }
      if($conf['nginx']['installed'] == true){
         $apps_vhost_user = escapeshellcmd($conf['web']['apps_vhost_user']);
@@ -1555,6 +1589,16 @@
         //$content = str_replace('{fpm_port}', ($conf['nginx']['php_fpm_start_port']+1), $content);
         $content = str_replace('{fpm_socket}', $fpm_socket, $content);
         $content = str_replace('{cgi_socket}', $cgi_socket, $content);
         if(file_exists('/var/run/php5-fpm.sock')){
            $use_tcp = '#';
            $use_socket = '';
         } else {
            $use_tcp = '';
            $use_socket = '#';
         }
         $content = str_replace('{use_tcp}', $use_tcp, $content);
         $content = str_replace('{use_socket}', $use_socket, $content);
         wf($vhost_conf_dir.'/apps.vhost', $content);
@@ -1798,9 +1842,14 @@
      exec("chmod -R 770 $install_dir/server/aps_packages");
      //* make sure that the server config file (not the interface one) is only readable by the root user
      chmod($install_dir.'/server/lib/'.$configfile, 0600);
      chown($install_dir.'/server/lib/'.$configfile, 'root');
      chgrp($install_dir.'/server/lib/'.$configfile, 'root');
      chmod($install_dir.'/server/lib/config.inc.php', 0600);
      chown($install_dir.'/server/lib/config.inc.php', 'root');
      chgrp($install_dir.'/server/lib/config.inc.php', 'root');
      //* Make sure thet the interface config file is readable by user ispconfig only
      chmod($install_dir.'/interface/lib/config.inc.php', 0600);
      chown($install_dir.'/interface/lib/config.inc.php', 'ispconfig');
      chgrp($install_dir.'/interface/lib/config.inc.php', 'ispconfig');
      chmod($install_dir.'/server/lib/remote_action.inc.php', 0600);
      chown($install_dir.'/server/lib/remote_action.inc.php', 'root');
@@ -1862,6 +1911,11 @@
         } else {
            $content = str_replace('{ssl_comment}', '#', $content);
         }
         if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key') && is_file($install_dir.'/interface/ssl/ispserver.bundle')) {
            $content = str_replace('{ssl_bundle_comment}', '', $content);
         } else {
            $content = str_replace('{ssl_bundle_comment}', '#', $content);
         }
         wf($vhost_conf_dir.'/ispconfig.vhost', $content);
@@ -1873,14 +1927,16 @@
               symlink($vhost_conf_dir.'/ispconfig.vhost',$vhost_conf_enabled_dir.'/000-ispconfig.vhost');
            }
         }
         if(!is_file('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter')) {
            mkdir('/var/www/php-fcgi-scripts/ispconfig', 0755, true);
            copy('tpl/apache_ispconfig_fcgi_starter.master','/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter');
         //if(!is_file('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter')) {
            $content = rf('tpl/apache_ispconfig_fcgi_starter.master');
            $content = str_replace('{fastcgi_bin}', $conf['fastcgi']['fastcgi_bin'], $content);
            $content = str_replace('{fastcgi_phpini_path}', $conf['fastcgi']['fastcgi_phpini_path'], $content);
            @mkdir('/var/www/php-fcgi-scripts/ispconfig', 0755, true);
            wf('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', $content);
            exec('chmod +x /var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter');
            symlink($install_dir.'/interface/web','/var/www/ispconfig');
            @symlink($install_dir.'/interface/web','/var/www/ispconfig');
            exec('chown -R ispconfig:ispconfig /var/www/php-fcgi-scripts/ispconfig');
         }
         //}
      }
      if($conf['nginx']['installed'] == true && $this->install_ispconfig_interface == true){
@@ -1962,9 +2018,9 @@
      //* Create the ispconfig auth log file and set uid/gid
      if(!is_file($conf['ispconfig_log_dir'].'/auth.log')) {
         touch($conf['ispconfig_log_dir'].'/auth.log');
         exec('chown ispconfig:ispconfig '. $conf['ispconfig_log_dir'].'/auth.log');
         exec('chmod 660 '. $conf['ispconfig_log_dir'].'/auth.log');
      }
      exec('chown ispconfig:ispconfig '. $conf['ispconfig_log_dir'].'/auth.log');
      exec('chmod 660 '. $conf['ispconfig_log_dir'].'/auth.log');
      if(is_user('getmail')) {
         rename($install_dir.'/server/scripts/run-getmail.sh','/usr/local/bin/run-getmail.sh');
@@ -1995,6 +2051,11 @@
         fclose($fh);
         */
      }
      //* Remove Domain module as its functions are available in the client module now
      if(@is_dir('/usr/local/ispconfig/interface/web/domain')) exec('rm -rf /usr/local/ispconfig/interface/web/domain');
   }
   public function configure_dbserver() {
@@ -2061,7 +2122,7 @@
         $existing_cron_jobs = file('crontab.txt');
         $cron_jobs = array(
               '*/5 * * * * /usr/local/bin/run-getmail.sh > /dev/null 2>> '.$conf['ispconfig_log_dir'].'/cron.log'
               '*/5 * * * * /usr/local/bin/run-getmail.sh > /dev/null 2>> /dev/null'
         );
         // remove existing ispconfig cronjobs, in case the syntax has changed
@@ -2080,7 +2141,7 @@
      }
      touch($conf['ispconfig_log_dir'].'/cron.log');
      chmod($conf['ispconfig_log_dir'].'/cron.log', 0666);
      chmod($conf['ispconfig_log_dir'].'/cron.log', 0660);
   }
@@ -2196,4 +2257,4 @@
   }
}
?>
?>