Marius Cramer
2013-10-14 d9bcf68e395d6156645a7974b1a992aa6e6c00aa
install/dist/lib/opensuse.lib.php
@@ -29,6 +29,87 @@
*/
class installer_dist extends installer_base {
   public function configure_mailman($status = 'insert') {
      global $conf;
      $config_dir = $conf['mailman']['config_dir'].'/';
      $full_file_name = $config_dir.'mm_cfg.py';
      //* Backup exiting file
      if(is_file($full_file_name)) {
         copy($full_file_name, $config_dir.'mm_cfg.py~');
      }
      // load files
      $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/mm_cfg.py.master', 'tpl/mm_cfg.py.master');
      $old_file = rf($full_file_name);
      $old_options = array();
      $lines = explode("\n", $old_file);
      foreach ($lines as $line)
      {
         if (trim($line) != '' && substr($line, 0, 1) != '#')
         {
            @list($key, $value) = @explode("=", $line);
            if (!empty($value))
            {
               $key = rtrim($key);
               $old_options[$key] = trim($value);
            }
         }
      }
      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');
      $virtual_domains = '';
      if($status == 'update')
      {
         // create virtual_domains list
         $domainAll = $this->db->queryAllRecords("SELECT domain FROM mail_mailinglist GROUP BY domain");
         if(is_array($domainAll)) {
         foreach($domainAll as $domain)
         {
            if ($domainAll[0]['domain'] == $domain['domain'])
               $virtual_domains .= "'".$domain['domain']."'";
            else
               $virtual_domains .= ", '".$domain['domain']."'";
         }
         }
      }
      else
         $virtual_domains = "' '";
      $content = str_replace('{hostname}', $conf['hostname'], $content);
      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')) {
         if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh')) {
                copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailman-virtual_to_transport.sh', $full_file_name);
            } else {
                copy('tpl/mailman-virtual_to_transport.sh',$full_file_name);
            }
         chgrp($full_file_name,'mailman');
         chmod($full_file_name,0750);
      }
      //* Create aliasaes
      exec('/usr/lib/mailman/bin/genaliases 2>/dev/null');
   }
   
   function configure_postfix($options = '')
    {
@@ -98,37 +179,31 @@
      if($cf['vmail_mailbox_base'] != '' && strlen($cf['vmail_mailbox_base']) >= 10 && $this->is_update === false) exec('chown -R '.$cf['vmail_username'].':'.$cf['vmail_groupname'].' '.$cf['vmail_mailbox_base']);
      
      //* These postconf commands will be executed on installation and update
      $postconf_commands = array (
         'virtual_alias_domains =',
         'virtual_alias_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_forwardings.cf, mysql:'.$config_dir.'/mysql-virtual_email2email.cf',
         'virtual_mailbox_domains = proxy:mysql:'.$config_dir.'/mysql-virtual_domains.cf',
         'virtual_mailbox_maps = proxy:mysql:'.$config_dir.'/mysql-virtual_mailboxes.cf',
         'virtual_mailbox_base = '.$cf['vmail_mailbox_base'],
         'virtual_uid_maps = static:'.$cf['vmail_userid'],
         'virtual_gid_maps = static:'.$cf['vmail_groupid'],
         'smtpd_sasl_auth_enable = yes',
         'broken_sasl_auth_clients = yes',
         'smtpd_sasl_authenticated_header = 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_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',
         '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',
         'smtpd_sender_restrictions = check_sender_access mysql:'.$config_dir.'/mysql-virtual_sender.cf',
         'smtpd_client_restrictions = check_client_access mysql:'.$config_dir.'/mysql-virtual_client.cf',
         'maildrop_destination_concurrency_limit = 1',
         'maildrop_destination_recipient_limit   = 1',
         'virtual_transport = maildrop',
         'header_checks = regexp:'.$config_dir.'/header_checks',
         'mime_header_checks = regexp:'.$config_dir.'/mime_header_checks',
         'nested_header_checks = regexp:'.$config_dir.'/nested_header_checks',
         'body_checks = regexp:'.$config_dir.'/body_checks',
         'inet_interfaces = all'
      );
      $server_ini_rec = $this->db->queryOneRecord("SELECT config FROM server WHERE server_id = ".$conf['server_id']);
      $server_ini_array = ini_to_array(stripslashes($server_ini_rec['config']));
      unset($server_ini_rec);
      //* If there are RBL's defined, format the list and add them to smtp_recipient_restrictions to prevent removeal after an update
      $rbl_list = '';
      if (@isset($server_ini_array['mail']['realtime_blackhole_list']) && $server_ini_array['mail']['realtime_blackhole_list'] != '') {
         $rbl_hosts = explode(",",str_replace(" ", "", $server_ini_array['mail']['realtime_blackhole_list']));
         foreach ($rbl_hosts as $key => $value) {
            $rbl_list .= ", reject_rbl_client ". $value;
         }
      }
      unset($rbl_hosts);
      unset($server_ini_array);
      //* These postconf commands will be executed on installation and update
        $postconf_placeholders = array('{config_dir}' => $config_dir,
                                       '{vmail_mailbox_base}' => $cf['vmail_mailbox_base'],
                                       '{vmail_userid}' => $cf['vmail_userid'],
                                       '{vmail_groupid}' => $cf['vmail_groupid'],
                                       '{rbl_list}' => $rbl_list);
        $postconf_tpl = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/opensuse_postfix.conf.master', 'tpl/opensuse_postfix.conf.master');
        $postconf_tpl = strtr($postconf_tpl, $postconf_placeholders);
        $postconf_commands = array_filter(explode("\n", $postconf_tpl)); // read and remove empty lines
      
      //* These postconf commands will be executed on installation only
      if($this->is_update == false) {
@@ -145,6 +220,14 @@
      touch($config_dir.'/nested_header_checks');
      touch($config_dir.'/body_checks');
      
      //* Create the mailman files
      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~');
@@ -197,7 +280,7 @@
      if(is_file($cf['vmail_mailbox_base'].'/.'.$configfile)){
            copy($cf['vmail_mailbox_base'].'/.'.$configfile, $cf['vmail_mailbox_base'].'/.'.$configfile.'~');
        }
      $content = rf("tpl/$configfile.master");
      $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', "tpl/$configfile.master");
      $content = str_replace('{dist_postfix_vmail_mailbox_base}', $cf['vmail_mailbox_base'], $content);
      wf($cf['vmail_mailbox_base'].'/.'.$configfile, $content);
      
@@ -268,7 +351,7 @@
      if(is_file("$pam/smtp"))    copy("$pam/smtp", "$pam/smtp~");
      if(is_file("$pam/smtp~"))   exec("chmod 400 $pam/smtp~");
      $content = rf("tpl/$configfile.master");
      $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', "tpl/$configfile.master");
      $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content);
      $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content);
      $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content);
@@ -291,7 +374,7 @@
            copy("$config_dir/$configfile", "$config_dir/$configfile~");
        }
      exec("chmod 400 $config_dir/$configfile~");
      $content = rf("tpl/$configfile.master");
      $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', "tpl/$configfile.master");
      $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content);
      $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content);
      $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content);
@@ -371,9 +454,17 @@
      
      //* Copy dovecot configuration file
      if($dovecot_version == 2) {
         copy('tpl/opensuse_dovecot2.conf.master',$config_dir.'/'.$configfile);
            if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/opensuse_dovecot2.conf.master')) {
                copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/opensuse_dovecot2.conf.master', $config_dir.'/'.$configfile);
            } else {
                copy('tpl/opensuse_dovecot2.conf.master',$config_dir.'/'.$configfile);
            }
      } else {
         copy('tpl/opensuse_dovecot.conf.master',$config_dir.'/'.$configfile);
            if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/opensuse_dovecot.conf.master')) {
                copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/opensuse_dovecot.conf.master', $config_dir.'/'.$configfile);
            } else {
                copy('tpl/opensuse_dovecot.conf.master',$config_dir.'/'.$configfile);
            }
      }
      
      //* dovecot-sql.conf
@@ -383,7 +474,7 @@
         exec("chmod 400 $config_dir/$configfile~");
        }
      
      $content = rf("tpl/opensuse_dovecot-sql.conf.master");
      $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/opensuse_dovecot-sql.conf.master', "tpl/opensuse_dovecot-sql.conf.master");
      $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content);
      $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content);
      $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content);
@@ -402,7 +493,7 @@
      $configfile = 'opensuse_amavisd_conf';
      if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf')) @copy($conf["amavis"]["config_dir"].'/amavisd.conf',$conf["amavis"]["config_dir"].'/amavisd.conf~');
      if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf~')) exec('chmod 400 '.$conf["amavis"]["config_dir"].'/amavisd.conf~');
      $content = rf("tpl/".$configfile.".master");
      $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', "tpl/".$configfile.".master");
      $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content);
      $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content);
      $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content);
@@ -432,7 +523,7 @@
      // Only add the content if we had not addded it before
      if(!stristr($content,"127.0.0.1:10025")) {
         unset($content);
         $content = rf("tpl/master_cf_amavis.master");
         $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', "tpl/master_cf_amavis.master");
         af($conf["postfix"]["config_dir"].'/master.cf',$content);
      }
      unset($content);
@@ -492,7 +583,7 @@
      if(is_file("$config_dir/$configfile~")){
            exec("chmod 400 $config_dir/$configfile~");
        }
      $content = rf('tpl/pureftpd_mysql.conf.master');
      $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/pureftpd_mysql.conf.master', 'tpl/pureftpd_mysql.conf.master');
      $content = str_replace('{mysql_server_ispconfig_user}', $conf["mysql"]["ispconfig_user"], $content);
      $content = str_replace('{mysql_server_ispconfig_password}', $conf["mysql"]["ispconfig_password"], $content);
      $content = str_replace('{mysql_server_database}', $conf["mysql"]["database"], $content);
@@ -503,7 +594,11 @@
      exec("chown root:root $config_dir/$configfile");
      
      // copy our customized copy of pureftpd.conf to the pure-ftpd config directory
      exec("cp tpl/opensuse_pureftpd_conf.master $config_dir/pure-ftpd.conf");
      if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/opensuse_pureftpd_conf.master')) {
            exec("cp " . $conf['ispconfig_install_dir']."/server/conf-custom/install/opensuse_pureftpd_conf.master $config_dir/pure-ftpd.conf");
        } else {
            exec("cp tpl/opensuse_pureftpd_conf.master $config_dir/pure-ftpd.conf");
        }
      
   }
   
@@ -515,7 +610,7 @@
      $configfile = 'mydns.conf';
      if(is_file($conf["mydns"]["config_dir"].'/'.$configfile)) copy($conf["mydns"]["config_dir"].'/'.$configfile,$conf["mydns"]["config_dir"].'/'.$configfile.'~');
      if(is_file($conf["mydns"]["config_dir"].'/'.$configfile.'~')) exec('chmod 400 '.$conf["mydns"]["config_dir"].'/'.$configfile.'~');
      $content = rf("tpl/".$configfile.".master");
      $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', "tpl/".$configfile.".master");
      $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['ispconfig_user'],$content);
      $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content);
      $content = str_replace('{mysql_server_database}',$conf['mysql']['database'],$content);
@@ -561,7 +656,7 @@
        $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');
      $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_ispconfig.conf.master', 'tpl/apache_ispconfig.conf.master');
      $records = $this->db->queryAllRecords('SELECT * FROM '.$conf['mysql']['master_database'].'.server_ip WHERE server_id = '.$conf['server_id']." AND virtualhost = 'y'");
      if(is_array($records) && count($records) > 0) {
@@ -606,6 +701,24 @@
      //* add a sshusers group
      $command = 'groupadd sshusers';
      if(!is_group('sshusers')) caselog($command.' &> /dev/null 2> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
      // create PHP-FPM pool dir
      exec('mkdir -p '.$conf['nginx']['php_fpm_pool_dir']);
      $content = rf('/etc/php5/fpm/php-fpm.conf');
      if(stripos($content, 'include=/etc/php5/fpm/pool.d/*.conf') === false){
         af('/etc/php5/fpm/php-fpm.conf',"\ninclude=/etc/php5/fpm/pool.d/*.conf");
      }
      unset($content);
      if(!@is_file($conf['nginx']['php_fpm_ini_path'])){
         if(@is_file('/etc/php5/cli/php.ini')){
            exec('cp -f /etc/php5/cli/php.ini '.$conf['nginx']['php_fpm_ini_path']);
         } elseif(@is_file('/etc/php5/fastcgi/php.ini')){
            exec('cp -f /etc/php5/fastcgi/php.ini '.$conf['nginx']['php_fpm_ini_path']);
         } elseif(@is_file('/etc/php5/apache2/php.ini')){
            exec('cp -f /etc/php5/apache2/php.ini '.$conf['nginx']['php_fpm_ini_path']);
         }
      }
      
   }
   
@@ -679,7 +792,11 @@
      if(is_dir("/etc/Bastille")) caselog("mv -f /etc/Bastille /etc/Bastille.backup", __FILE__, __LINE__);
        @mkdir("/etc/Bastille", octdec($directory_mode));
        if(is_dir("/etc/Bastille.backup/firewall.d")) caselog("cp -pfr /etc/Bastille.backup/firewall.d /etc/Bastille/", __FILE__, __LINE__);
        caselog("cp -f tpl/bastille-firewall.cfg.master /etc/Bastille/bastille-firewall.cfg", __FILE__, __LINE__);
        if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/bastille-firewall.cfg.master')) {
            caselog("cp -f " . $conf['ispconfig_install_dir']."/server/conf-custom/install/bastille-firewall.cfg.master /etc/Bastille/bastille-firewall.cfg", __FILE__, __LINE__);
        } else {
            caselog("cp -f tpl/bastille-firewall.cfg.master /etc/Bastille/bastille-firewall.cfg", __FILE__, __LINE__);
        }
        caselog("chmod 644 /etc/Bastille/bastille-firewall.cfg", __FILE__, __LINE__);
        $content = rf("/etc/Bastille/bastille-firewall.cfg");
        $content = str_replace("{DNS_SERVERS}", "", $content);
@@ -767,7 +884,7 @@
      if(is_file($install_dir.'/interface/lib/'.$configfile)){
            copy("$install_dir/interface/lib/$configfile", "$install_dir/interface/lib/$configfile~");
        }
      $content = rf("tpl/$configfile.master");
      $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', "tpl/$configfile.master");
      $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content);
      $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['ispconfig_password'], $content);
      $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content);
@@ -783,6 +900,7 @@
      $content = str_replace('{language}', $conf['language'], $content);
      $content = str_replace('{timezone}', $conf['timezone'], $content);
      $content = str_replace('{theme}', $conf['theme'], $content);
      $content = str_replace('{language_file_import_enabled}', ($conf['language_file_import_enabled'] == true)?'true':'false', $content);
      
      wf("$install_dir/interface/lib/$configfile", $content);
      
@@ -791,7 +909,7 @@
      if(is_file($install_dir.'/server/lib/'.$configfile)){
            copy("$install_dir/server/lib/$configfile", "$install_dir/interface/lib/$configfile~");
        }
      $content = rf("tpl/$configfile.master");
      $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', "tpl/$configfile.master");
      $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content);
      $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content);
      $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content);
@@ -807,6 +925,7 @@
      $content = str_replace('{language}', $conf['language'], $content);
      $content = str_replace('{timezone}', $conf['timezone'], $content);
      $content = str_replace('{theme}', $conf['theme'], $content);
      $content = str_replace('{language_file_import_enabled}', ($conf['language_file_import_enabled'] == true)?'true':'false', $content);
      
      wf("$install_dir/server/lib/$configfile", $content);
      
@@ -962,7 +1081,7 @@
        
         // Dont just copy over the virtualhost template but add some custom settings
         
         $content = rf("tpl/apache_ispconfig.vhost.master");
         $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_ispconfig.vhost.master', "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
@@ -977,19 +1096,27 @@
         } 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);
         }
      
         $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')) {
         //if(!is_file('/srv/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter')) {
            $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_ispconfig_fcgi_starter.master', '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);
            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');
            wf('/srv/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter', $content);
            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
@@ -1011,15 +1138,15 @@
         $vhost_conf_enabled_dir = $conf['nginx']['vhost_conf_enabled_dir'];
         // Dont just copy over the virtualhost template but add some custom settings
         $content = rf('tpl/nginx_ispconfig.vhost.master');
         $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/nginx_ispconfig.vhost.master', 'tpl/nginx_ispconfig.vhost.master');
         $content = str_replace('{vhost_port}', $conf['nginx']['vhost_port'], $content);
      
         if(is_file($install_dir.'/interface/ssl/ispserver.crt') && is_file($install_dir.'/interface/ssl/ispserver.key')) {
            $content = str_replace('{ssl_on}', ' ssl', $content);
            $content = str_replace('{ssl_on}', ' on', $content);
            $content = str_replace('{ssl_comment}', '', $content);
            $content = str_replace('{fastcgi_ssl}', 'on', $content);
         } else {
            $content = str_replace('{ssl_on}', '', $content);
            $content = str_replace('{ssl_on}', ' off', $content);
            $content = str_replace('{ssl_comment}', '#', $content);
            $content = str_replace('{fastcgi_ssl}', 'off', $content);
         }
@@ -1038,7 +1165,7 @@
         
         // PHP-FPM
         // Dont just copy over the php-fpm pool template but add some custom settings
         $content = rf('tpl/php_fpm_pool.conf.master');
         $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/php_fpm_pool.conf.master', 'tpl/php_fpm_pool.conf.master');
         $content = str_replace('{fpm_pool}', 'ispconfig', $content);
         //$content = str_replace('{fpm_port}', $conf['nginx']['php_fpm_start_port'], $content);
         $content = str_replace('{fpm_socket}', $fpm_socket, $content);
@@ -1133,7 +1260,7 @@
         caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
      }
      
      $content = rf("tpl/mysql_clientdb.conf.master");
      $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/mysql_clientdb.conf.master', "tpl/mysql_clientdb.conf.master");
      $content = str_replace('{hostname}',$conf['mysql']['host'],$content);
      $content = str_replace('{username}',$conf['mysql']['admin_user'],$content);
      $content = str_replace('{password}',$conf['mysql']['admin_password'], $content);
@@ -1181,7 +1308,7 @@
         $existing_cron_jobs = file('crontab.txt');
      
         $cron_jobs = array(
                '*/5 * * * * /usr/local/bin/run-getmail.sh > /dev/null 2>> /var/log/ispconfig/cron.log'
                '*/5 * * * * /usr/local/bin/run-getmail.sh > /dev/null 2>> /dev/null'
            );
      
         // remove existing ispconfig cronjobs, in case the syntax has changed
@@ -1200,7 +1327,7 @@
      }
      
      exec('touch /var/log/ispconfig/cron.log');
      exec('chmod 666 /var/log/ispconfig/cron.log');
      exec('chmod 660 /var/log/ispconfig/cron.log');
   }
}