mcramer
2013-07-12 0bc228446c1f680f14aff72dbfd85dc5edd0043e
- Changed installer template handling
It is now possible to put a customized copy of each .master template file into
/usr/local/ispconfig/server/conf-custom/install/
to keep manual changes done in this file.
If existing, these .master files are used on ISPConfig upgrade instead of the provided installer templates.

8 files modified
293 ■■■■■ changed files
install/dist/lib/centos52.lib.php 12 ●●●●● patch | view | raw | blame | history
install/dist/lib/centos53.lib.php 12 ●●●●● patch | view | raw | blame | history
install/dist/lib/debian60.lib.php 14 ●●●● patch | view | raw | blame | history
install/dist/lib/fedora.lib.php 68 ●●●●● patch | view | raw | blame | history
install/dist/lib/gentoo.lib.php 14 ●●●● patch | view | raw | blame | history
install/dist/lib/opensuse.lib.php 64 ●●●●● patch | view | raw | blame | history
install/lib/install.lib.php 6 ●●●●● patch | view | raw | blame | history
install/lib/installer_base.lib.php 103 ●●●●● patch | view | raw | blame | history
install/dist/lib/centos52.lib.php
@@ -41,7 +41,7 @@
        }
        // load files
        $content = rf('tpl/mm_cfg.py.master');
        $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();
@@ -67,7 +67,11 @@
            copy($full_file_name, $config_dir.'virtual_to_transport.sh~');
        }
        
        copy('tpl/mailman-virtual_to_transport.sh',$full_file_name);
        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);
        
@@ -110,7 +114,7 @@
        $configfile = 'fedora_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);
@@ -142,7 +146,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);
install/dist/lib/centos53.lib.php
@@ -41,7 +41,7 @@
        }
        // load files
        $content = rf('tpl/mm_cfg.py.master');
        $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();
@@ -67,7 +67,11 @@
            copy($full_file_name, $config_dir.'virtual_to_transport.sh~');
        }
        
        copy('tpl/mailman-virtual_to_transport.sh',$full_file_name);
        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);
        
@@ -111,7 +115,7 @@
        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~');
        if(!is_dir($conf["amavis"]["config_dir"])) mkdir($conf["amavis"]["config_dir"]);
        $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);
@@ -143,7 +147,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);
install/dist/lib/debian60.lib.php
@@ -86,9 +86,17 @@
        
        //* Copy dovecot configuration file
        if($dovecot_version == 2) {
            copy('tpl/debian6_dovecot2.conf.master',$config_dir.'/'.$configfile);
            if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian6_dovecot2.conf.master')) {
                copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian6_dovecot2.conf.master', $config_dir.'/'.$configfile);
            } else {
                copy('tpl/debian6_dovecot2.conf.master',$config_dir.'/'.$configfile);
            }
        } else {
            copy('tpl/debian6_dovecot.conf.master',$config_dir.'/'.$configfile);
            if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian6_dovecot.conf.master')) {
                copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian6_dovecot.conf.master', $config_dir.'/'.$configfile);
            } else {
                copy('tpl/debian6_dovecot.conf.master',$config_dir.'/'.$configfile);
            }
        }
        
        //* dovecot-sql.conf
@@ -97,7 +105,7 @@
            copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~');
            chmod($config_dir.'/'.$configfile.'~', 0400);
        }
        $content = rf('tpl/debian6_dovecot-sql.conf.master');
        $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian6_dovecot-sql.conf.master', 'tpl/debian6_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);
install/dist/lib/fedora.lib.php
@@ -41,7 +41,7 @@
        }
        // load files
        $content = rf('tpl/mm_cfg.py.master');
        $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();
@@ -98,7 +98,11 @@
        }
        
        if(is_dir('/etc/mailman')) {
            copy('tpl/mailman-virtual_to_transport.sh',$full_file_name);
            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);
        }
@@ -278,7 +282,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);
        
@@ -299,7 +303,7 @@
        global $conf;
        
        $configfile = 'tpl/fedora_saslauthd_smtpd_conf.master';
        $content = rf($configfile);
        $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/fedora_saslauthd_smtpd_conf.master', $configfile);
        wf('/usr/lib/sasl2/smtpd.conf',$content);
        if(is_dir('/usr/lib64')) wf('/usr/lib64/sasl/smtpd.conf',$content);
        if(is_dir('/usr/lib64')) wf('/usr/lib64/sasl2/smtpd.conf',$content);
@@ -315,7 +319,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);
@@ -338,7 +342,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);
@@ -421,11 +425,19 @@
        
        //* Copy dovecot configuration file
        if($dovecot_version == 2) {
            copy('tpl/fedora_dovecot2.conf.master',$config_dir.'/'.$configfile);
            if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/fedora_dovecot2.conf.master')) {
                copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/fedora_dovecot2.conf.master', $config_dir.'/'.$configfile);
            } else {
                copy('tpl/fedora_dovecot2.conf.master',$config_dir.'/'.$configfile);
            }
        } else {
            copy('tpl/fedora_dovecot.conf.master',$config_dir.'/'.$configfile);
            if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/fedora_dovecot.conf.master')) {
                copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/fedora_dovecot.conf.master', $config_dir.'/'.$configfile);
            } else {
                copy('tpl/fedora_dovecot.conf.master',$config_dir.'/'.$configfile);
            }
        }
        //* dovecot-sql.conf
        $configfile = 'dovecot-sql.conf';
        if(is_file("$config_dir/$configfile")){
@@ -433,7 +445,7 @@
            exec("chmod 400 $config_dir/$configfile~");
        }
        
        $content = rf("tpl/fedora_dovecot-sql.conf.master");
        $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/fedora_dovecot-sql.conf.master', "tpl/fedora_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);
@@ -452,7 +464,7 @@
        $configfile = 'fedora_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);
@@ -483,7 +495,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);
@@ -546,7 +558,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);
@@ -557,7 +569,11 @@
        exec("chown root:root $config_dir/$configfile");
        
        // copy our customized copy of pureftpd.conf to the pure-ftpd config directory
        exec("cp tpl/fedora_pureftpd_conf.master $config_dir/pure-ftpd.conf");
        if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/fedora_pureftpd_conf.master')) {
            exec("cp " . $conf['ispconfig_install_dir'].'/server/conf-custom/install/fedora_pureftpd_conf.master ' . "$config_dir/pure-ftpd.conf");
        }else {
            exec("cp tpl/fedora_pureftpd_conf.master $config_dir/pure-ftpd.conf");
        }
        
    }
    
@@ -569,7 +585,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);
@@ -633,7 +649,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) {
@@ -727,7 +743,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);
@@ -815,7 +835,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);
@@ -839,7 +859,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);
@@ -1014,7 +1034,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
@@ -1055,7 +1075,7 @@
                replaceLine('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter','PHPRC=','PHPRC=/etc/',0,0);
                */
                //if(!is_file('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter')) {
                    $content = rf('tpl/apache_ispconfig_fcgi_starter.master');
                    $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);
                    if(!is_dir('/var/www/php-fcgi-scripts/ispconfig')) exec('mkdir -p /var/www/php-fcgi-scripts/ispconfig');
@@ -1073,7 +1093,7 @@
            $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')) {
@@ -1100,7 +1120,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);
@@ -1195,7 +1215,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);
install/dist/lib/gentoo.lib.php
@@ -165,7 +165,7 @@
        $this->write_config_file($configfile, $content);
        
        //* Writing the Maildrop mailfilter file
        $content = rf('tpl/mailfilter.master');
        $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/mailfilter.master', 'tpl/mailfilter.master');
        $content = str_replace('{dist_postfix_vmail_mailbox_base}', $cf['vmail_mailbox_base'], $content);
        
        $this->write_config_file($cf['vmail_mailbox_base'].'/.mailfilter', $content);
@@ -612,7 +612,7 @@
        
            //if ( !is_file($conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter') ) 
            //{
                $content = rf('tpl/apache_apps_fcgi_starter.master');
                $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_apps_fcgi_starter.master', '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);
@@ -652,7 +652,7 @@
            $apps_vhost_servername = ($conf['web']['apps_vhost_servername'] == '')?'_':$conf['web']['apps_vhost_servername'];
            // Dont just copy over the virtualhost template but add some custom settings
            $content = rf('tpl/nginx_apps.vhost.master');
            $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/nginx_apps.vhost.master', 'tpl/nginx_apps.vhost.master');
            
            if($conf['web']['apps_vhost_ip'] == '_default_'){
                $apps_vhost_ip = '';
@@ -678,7 +678,7 @@
            
            // PHP-FPM
            // Dont just copy over the php-fpm pool template but add some custom settings
            $content = rf('tpl/apps_php_fpm_pool.conf.master');
            $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apps_php_fpm_pool.conf.master', 'tpl/apps_php_fpm_pool.conf.master');
            $content = str_replace('{fpm_pool}', 'apps', $content);
            //$content = str_replace('{fpm_port}', ($conf['nginx']['php_fpm_start_port']+1), $content);
            $content = str_replace('{fpm_socket}', $fpm_socket, $content);
@@ -943,7 +943,7 @@
            $this->write_config_file($vhost_path, $content);
        
            if(!is_file('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter')) {
                $content = rf('tpl/apache_ispconfig_fcgi_starter.master');
                $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);
                @mkdir('/var/www/php-fcgi-scripts/ispconfig', 0755, true);
@@ -961,7 +961,7 @@
            $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')) {
@@ -988,7 +988,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);
install/dist/lib/opensuse.lib.php
@@ -41,7 +41,7 @@
        }
        // load files
        $content = rf('tpl/mm_cfg.py.master');
        $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();
@@ -98,7 +98,11 @@
        }
        
        if(is_dir('/etc/mailman')) {
            copy('tpl/mailman-virtual_to_transport.sh',$full_file_name);
            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);
        }
@@ -282,7 +286,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);
        
@@ -353,7 +357,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);
@@ -376,7 +380,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);
@@ -456,9 +460,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
@@ -468,7 +480,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);
@@ -487,7 +499,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);
@@ -517,7 +529,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);
@@ -577,7 +589,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);
@@ -588,7 +600,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");
        }
        
    }
    
@@ -600,7 +616,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);
@@ -646,7 +662,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) {
@@ -782,7 +798,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);
@@ -870,7 +890,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);
@@ -894,7 +914,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);
@@ -1065,7 +1085,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
@@ -1091,7 +1111,7 @@
            wf("$vhost_conf_dir/ispconfig.vhost", $content);
        
            //if(!is_file('/srv/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter')) {
                $content = rf('tpl/apache_ispconfig_fcgi_starter.master');
                $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');
@@ -1122,7 +1142,7 @@
            $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')) {
@@ -1149,7 +1169,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);
@@ -1244,7 +1264,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);
install/lib/install.lib.php
@@ -345,6 +345,12 @@
    return false;
}
function rfsel($file, $file2) {
    clearstatcache();
    if(is_file($file)) return rf($file);
    else return rf($file2);
}
function rf($file){
    clearstatcache();
    if(is_file($file)) {
install/lib/installer_base.lib.php
@@ -508,7 +508,7 @@
        if(is_file($full_file_name)) {
            copy($full_file_name, $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);
@@ -528,9 +528,17 @@
        if (is_dir($config_dir)) {
            if(is_file($config_dir.'/'.$jk_init)) copy($config_dir.'/'.$jk_init, $config_dir.'/'.$jk_init.'~');
            if(is_file($config_dir.'/'.$jk_chrootsh.'.master')) copy($config_dir.'/'.$jk_chrootsh.'.master', $config_dir.'/'.$jk_chrootsh.'~');
            copy('tpl/'.$jk_init.'.master', $config_dir.'/'.$jk_init);
            copy('tpl/'.$jk_chrootsh.'.master', $config_dir.'/'.$jk_chrootsh);
            if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_init.'.master')) {
                copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_init.'.master', $config_dir.'/'.$jk_init);
            } else {
                copy('tpl/'.$jk_init.'.master', $config_dir.'/'.$jk_init);
            }
            if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_chrootsh.'.master')) {
                copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$jk_chrootsh.'.master', $config_dir.'/'.$jk_chrootsh);
            } else {
                copy('tpl/'.$jk_chrootsh.'.master', $config_dir.'/'.$jk_chrootsh);
            }
        }
        //* help jailkit fo find its ini files
@@ -550,7 +558,7 @@
        }
        // load files
        $content = rf('tpl/mm_cfg.py.master');
        $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();
@@ -604,7 +612,11 @@
        }
        
        if(is_dir('/etc/mailman')) {
            copy('tpl/mailman-virtual_to_transport.sh',$full_file_name);
            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,'list');
            chmod($full_file_name,0750);
        }
@@ -784,7 +796,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);
@@ -823,7 +835,7 @@
        if(is_file($conf['postfix']['config_dir'].'/sasl/smtpd.conf')) copy($conf['postfix']['config_dir'].'/sasl/smtpd.conf',$conf['postfix']['config_dir'].'/sasl/smtpd.conf~');
        if(is_file($conf['postfix']['config_dir'].'/sasl/smtpd.conf~')) chmod($conf['postfix']['config_dir'].'/sasl/smtpd.conf~', 0400);
        $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);
@@ -868,7 +880,7 @@
        if(is_file($pam.'/smtp'))    copy($pam.'/smtp', $pam.'/smtp~');
        if(is_file($pam.'/smtp~'))   chmod($pam.'/smtp~', 0400);
        $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);
@@ -891,7 +903,7 @@
            copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~');
        }
        chmod($config_dir.'/'.$configfile.'~', 0400);
        $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);
@@ -970,9 +982,17 @@
        //* Copy dovecot configuration file
        if($dovecot_version == 2) {
            copy('tpl/debian_dovecot2.conf.master',$config_dir.'/'.$configfile);
            if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot2.conf.master')) {
                copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot2.conf.master', $config_dir.'/'.$configfile);
            } else {
                copy('tpl/debian_dovecot2.conf.master',$config_dir.'/'.$configfile);
            }
        } else {
            copy('tpl/debian_dovecot.conf.master',$config_dir.'/'.$configfile);
            if(is_file($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot.conf.master')) {
                copy($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot.conf.master', $config_dir.'/'.$configfile);
            } else {
                copy('tpl/debian_dovecot.conf.master',$config_dir.'/'.$configfile);
            }
        }
        //* dovecot-sql.conf
@@ -981,7 +1001,7 @@
            copy($config_dir.'/'.$configfile, $config_dir.'/'.$configfile.'~');
        }
        if(is_file($config_dir.'/'.$configfile.'~')) chmod($config_dir.'/'.$configfile.'~', 0400);
        $content = rf('tpl/debian_dovecot-sql.conf.master');
        $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/debian_dovecot-sql.conf.master', 'tpl/debian_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);
@@ -1001,7 +1021,7 @@
        $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['amavis']['config_dir'].'/50-user~');
        if(is_file($conf['amavis']['config_dir'].'/conf.d/50-user~')) chmod($conf['amavis']['config_dir'].'/conf.d/50-user~', 0400);
        $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);
@@ -1037,7 +1057,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);
@@ -1092,7 +1112,7 @@
        if(is_file($config_dir.'/'.$configfile.'~')) {
            chmod($config_dir.'/'.$configfile.'~', 0400);
        }
        $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);
@@ -1128,7 +1148,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.'~')) chmod($conf['mydns']['config_dir'].'/'.$configfile.'~', 0400);
        $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);
@@ -1171,7 +1191,7 @@
        $configfile = 'pdns.local';
        if(is_file($conf['powerdns']['config_dir'].'/'.$configfile)) copy($conf['powerdns']['config_dir'].'/'.$configfile,$conf['powerdns']['config_dir'].'/'.$configfile.'~');
        if(is_file($conf['powerdns']['config_dir'].'/'.$configfile.'~')) chmod($conf['powerdns']['config_dir'].'/'.$configfile.'~', 0400);
        $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('{powerdns_database}',$conf['powerdns']['database'],$content);
@@ -1235,7 +1255,7 @@
        // 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) {
@@ -1362,7 +1382,7 @@
        $configfile = 'squid.conf';
        if(is_file($conf["squid"]["config_dir"].'/'.$configfile)) copy($conf["squid"]["config_dir"].'/'.$configfile,$conf["squid"]["config_dir"].'/'.$configfile.'~');
        if(is_file($conf["squid"]["config_dir"].'/'.$configfile.'~')) exec('chmod 400 '.$conf["squid"]["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('{server_name}',$server_name,$content);
        $content = str_replace('{ip_address}',$ip_address, $content);
        $content = str_replace('{config_dir}',$conf['squid']['config_dir'], $content);
@@ -1392,7 +1412,11 @@
        if(is_dir('/etc/Bastille')) caselog('mv -f /etc/Bastille /etc/Bastille.backup', __FILE__, __LINE__);
        @mkdir('/etc/Bastille', 0700);
        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);
@@ -1450,7 +1474,7 @@
        $configfile = 'vlogger-dbi.conf';
        if(is_file($conf['vlogger']['config_dir'].'/'.$configfile)) copy($conf['vlogger']['config_dir'].'/'.$configfile,$conf['vlogger']['config_dir'].'/'.$configfile.'~');
        if(is_file($conf['vlogger']['config_dir'].'/'.$configfile.'~')) chmod($conf['vlogger']['config_dir'].'/'.$configfile.'~', 0400);
        $content = rf('tpl/'.$configfile.'.master');
        $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', 'tpl/'.$configfile.'.master');
        if($conf['mysql']['master_slave_setup'] == 'y') {
            $content = str_replace('{mysql_server_ispconfig_user}',$conf['mysql']['master_ispconfig_user'],$content);
            $content = str_replace('{mysql_server_ispconfig_password}',$conf['mysql']['master_ispconfig_password'], $content);
@@ -1502,7 +1526,7 @@
            $apps_vhost_servername = ($conf['web']['apps_vhost_servername'] == '')?'':'ServerName '.$conf['web']['apps_vhost_servername'];
            // Dont just copy over the virtualhost template but add some custom settings
            $content = rf('tpl/apache_apps.vhost.master');
            $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_apps.vhost.master', 'tpl/apache_apps.vhost.master');
            $content = str_replace('{apps_vhost_ip}', $conf['web']['apps_vhost_ip'], $content);
            $content = str_replace('{apps_vhost_port}', $conf['web']['apps_vhost_port'], $content);
@@ -1528,7 +1552,7 @@
            }
            if(!is_file($conf['web']['website_basedir'].'/php-fcgi-scripts/apps/.php-fcgi-starter')) {
                $content = rf('tpl/apache_apps_fcgi_starter.master');
                $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apache_apps_fcgi_starter.master', '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);
@@ -1568,7 +1592,7 @@
            $apps_vhost_servername = ($conf['web']['apps_vhost_servername'] == '')?'_':$conf['web']['apps_vhost_servername'];
            // Dont just copy over the virtualhost template but add some custom settings
            $content = rf('tpl/nginx_apps.vhost.master');
            $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/nginx_apps.vhost.master', 'tpl/nginx_apps.vhost.master');
            if($conf['web']['apps_vhost_ip'] == '_default_'){
                $apps_vhost_ip = '';
@@ -1604,7 +1628,7 @@
            // PHP-FPM
            // Dont just copy over the php-fpm pool template but add some custom settings
            $content = rf('tpl/apps_php_fpm_pool.conf.master');
            $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/apps_php_fpm_pool.conf.master', 'tpl/apps_php_fpm_pool.conf.master');
            $content = str_replace('{fpm_pool}', 'apps', $content);
            //$content = str_replace('{fpm_port}', ($conf['nginx']['php_fpm_start_port']+1), $content);
            $content = str_replace('{fpm_socket}', $fpm_socket, $content);
@@ -1679,7 +1703,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);
@@ -1703,7 +1727,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);
@@ -1896,7 +1920,7 @@
            $vhost_conf_enabled_dir = $conf['apache']['vhost_conf_enabled_dir'];
            // 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
@@ -1928,7 +1952,7 @@
                }
            }
            //if(!is_file('/var/www/php-fcgi-scripts/ispconfig/.php-fcgi-starter')) {
                $content = rf('tpl/apache_ispconfig_fcgi_starter.master');
                $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);
                @mkdir('/var/www/php-fcgi-scripts/ispconfig', 0755, true);
@@ -1945,7 +1969,7 @@
            $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')) {
@@ -1972,7 +1996,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);
@@ -2072,7 +2096,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);
@@ -2164,12 +2188,17 @@
        global $conf, $dist;
        $final_path = '';
        $dist_template = 'dist/tpl/'.strtolower($dist['name'])."/$tLocal.master";
        if (file_exists($dist_template)) {
        $dist_template = $conf['ispconfig_install_dir'] . '/server/conf-custom/install/' . $tLocal . '.master';
        if (file_exists($dist_template)) {
            $final_path = $dist_template;
        } else {
            $final_path = "tpl/$tLocal.master";
        }
            $dist_template = 'dist/tpl/'.strtolower($dist['name'])."/$tLocal.master";
            if (file_exists($dist_template)) {
                $final_path = $dist_template;
            } else {
                $final_path = "tpl/$tLocal.master";
            }
        }
        if (!$tRf) {
            return $final_path;