diff --git a/install/dist/conf/centos70.conf.php b/install/dist/conf/centos70.conf.php new file mode 100644 index 0000000000000000000000000000000000000000..da5848c8cf5ae5caa4d9b20f9dd48c840b0d9806 --- /dev/null +++ b/install/dist/conf/centos70.conf.php @@ -0,0 +1,219 @@ +<?php + +/* +Copyright (c) 2007, Till Brehm, projektfarm Gmbh +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +//*** Fedora 9 default settings + +//* Main +$conf['language'] = 'en'; +$conf['distname'] = 'centos52'; +$conf['hostname'] = 'server1.domain.tld'; // Full hostname +$conf['ispconfig_install_dir'] = '/usr/local/ispconfig'; +$conf['ispconfig_config_dir'] = '/usr/local/ispconfig'; +$conf['ispconfig_log_priority'] = 2; // 0 = Debug, 1 = Warning, 2 = Error +$conf['ispconfig_log_dir'] = '/var/log/ispconfig'; +$conf['server_id'] = 1; +$conf['init_scripts'] = '/etc/init.d'; +$conf['runlevel'] = '/etc'; +$conf['shells'] = '/etc/shells'; +$conf['pam'] = '/etc/pam.d'; + +//* Services provided by this server, this selection will be overridden by the expert mode +$conf['services']['mail'] = true; +$conf['services']['web'] = true; +$conf['services']['dns'] = true; +$conf['services']['file'] = true; +$conf['services']['db'] = true; +$conf['services']['vserver'] = true; + +//* MySQL +$conf['mysql']['installed'] = false; // will be detected automatically during installation +$conf['mysql']['init_script'] = 'mariadb'; +$conf['mysql']['host'] = 'localhost'; +$conf['mysql']['ip'] = '127.0.0.1'; +$conf['mysql']['port'] = '3306'; +$conf['mysql']['database'] = 'dbispconfig'; +$conf['mysql']['admin_user'] = 'root'; +$conf['mysql']['admin_password'] = ''; +$conf['mysql']['charset'] = 'utf8'; +$conf['mysql']['ispconfig_user'] = 'ispconfig'; +$conf['mysql']['ispconfig_password'] = md5(uniqid(rand())); +$conf['mysql']['master_slave_setup'] = 'n'; +$conf['mysql']['master_host'] = ''; +$conf['mysql']['master_database'] = 'dbispconfig'; +$conf['mysql']['master_admin_user'] = 'root'; +$conf['mysql']['master_admin_password'] = ''; +$conf['mysql']['master_ispconfig_user'] = ''; +$conf['mysql']['master_ispconfig_password'] = md5(uniqid(rand())); + +//* Apache +$conf['apache']['installed'] = false; // will be detected automatically during installation +$conf['apache']['user'] = 'apache'; +$conf['apache']['group'] = 'apache'; +$conf['apache']['init_script'] = 'httpd'; +$conf['apache']['version'] = '2.2'; +$conf['apache']['vhost_conf_dir'] = '/etc/httpd/conf/sites-available'; +$conf['apache']['vhost_conf_enabled_dir'] = '/etc/httpd/conf/sites-enabled'; +$conf['apache']['vhost_port'] = '8080'; +$conf['apache']['php_ini_path_apache'] = '/etc/php.ini'; +$conf['apache']['php_ini_path_cgi'] = '/etc/php.ini'; + +//* Website base settings +$conf['web']['website_basedir'] = '/var/www'; +$conf['web']['website_path'] = '/var/www/clients/client[client_id]/web[website_id]'; +$conf['web']['website_symlinks'] = '/var/www/[website_domain]/:/var/www/clients/client[client_id]/[website_domain]/'; + +//* Apps base settings +$conf['web']['apps_vhost_ip'] = '_default_'; +$conf['web']['apps_vhost_port'] = '8081'; +$conf['web']['apps_vhost_servername'] = ''; +$conf['web']['apps_vhost_user'] = 'ispapps'; +$conf['web']['apps_vhost_group'] = 'ispapps'; + +//* Fastcgi +$conf['fastcgi']['fastcgi_phpini_path'] = '/etc/'; +$conf['fastcgi']['fastcgi_starter_path'] = '/var/www/php-fcgi-scripts/[system_user]/'; +$conf['fastcgi']['fastcgi_bin'] = '/usr/bin/php-cgi'; + +//* Postfix +$conf['postfix']['installed'] = false; // will be detected automatically during installation +$conf['postfix']['config_dir'] = '/etc/postfix'; +$conf['postfix']['init_script'] = 'postfix'; +$conf['postfix']['user'] = 'postfix'; +$conf['postfix']['group'] = 'postfix'; +$conf['postfix']['vmail_userid'] = '5000'; +$conf['postfix']['vmail_username'] = 'vmail'; +$conf['postfix']['vmail_groupid'] = '5000'; +$conf['postfix']['vmail_groupname'] = 'vmail'; +$conf['postfix']['vmail_mailbox_base'] = '/var/vmail'; + +//* Mailman +$conf['mailman']['installed'] = false; // will be detected automatically during installation +$conf['mailman']['config_dir'] = '/etc/mailman'; +$conf['mailman']['init_script'] = 'mailman'; + +//* Getmail +$conf['getmail']['installed'] = false; // will be detected automatically during installation +$conf['getmail']['config_dir'] = '/etc/getmail'; +$conf['getmail']['program'] = '/usr/bin/getmail'; + +//* Courier +$conf['courier']['installed'] = false; // will be detected automatically during installation +$conf['courier']['config_dir'] = '/etc/authlib'; +$conf['courier']['courier-authdaemon'] = 'courier-authlib'; +$conf['courier']['courier-imap'] = 'courier-imap'; +$conf['courier']['courier-imap-ssl'] = ''; +$conf['courier']['courier-pop'] = ''; +$conf['courier']['courier-pop-ssl'] = ''; + +//* Dovecot +$conf['dovecot']['installed'] = false; // will be detected automatically during installation +$conf['dovecot']['config_dir'] = '/etc'; +$conf['dovecot']['init_script'] = 'dovecot'; + +//* SASL +$conf['saslauthd']['installed'] = false; // will be detected automatically during installation +$conf['saslauthd']['config'] = '/etc/sysconfig/saslauthd'; +$conf['saslauthd']['init_script'] = 'saslauthd'; + +//* Amavisd +$conf['amavis']['installed'] = false; // will be detected automatically during installation +$conf['amavis']['config_dir'] = '/etc'; +$conf['amavis']['init_script'] = 'amavisd'; + +//* ClamAV +$conf['clamav']['installed'] = false; // will be detected automatically during installation +$conf['clamav']['init_script'] = 'clamd@amavisd'; + +//* Pureftpd +$conf['pureftpd']['installed'] = false; // will be detected automatically during installation +$conf['pureftpd']['config_dir'] = '/etc/pure-ftpd'; +$conf['pureftpd']['init_script'] = 'pure-ftpd'; + +//* MyDNS +$conf['mydns']['installed'] = false; // will be detected automatically during installation +$conf['mydns']['config_dir'] = '/etc'; +$conf['mydns']['init_script'] = 'mydns'; + +//* PowerDNS +$conf['powerdns']['installed'] = false; // will be detected automatically during installation +$conf['powerdns']['database'] = 'powerdns'; +$conf["powerdns"]["config_dir"] = '/etc/powerdns/pdns.d'; +$conf['powerdns']['init_script'] = 'pdns'; + +//* BIND DNS Server +$conf['bind']['installed'] = false; // will be detected automatically during installation +$conf['bind']['bind_user'] = 'named'; +$conf['bind']['bind_group'] = 'named'; +$conf['bind']['bind_zonefiles_dir'] = '/var/named/chroot/var/named/'; +$conf['bind']['named_conf_path'] = '/var/named/chroot/etc/named.conf'; +$conf['bind']['named_conf_local_path'] = '/var/named/chroot/var/named/named.local'; +$conf['bind']['init_script'] = 'named'; + +//* Jailkit +$conf['jailkit']['installed'] = false; // will be detected automatically during installation +$conf['jailkit']['config_dir'] = '/etc/jailkit'; +$conf['jailkit']['jk_init'] = 'jk_init.ini'; +$conf['jailkit']['jk_chrootsh'] = 'jk_chrootsh.ini'; +$conf['jailkit']['jailkit_chroot_app_programs'] = '/usr/bin/groups /usr/bin/id /usr/bin/dircolors /bin/basename /usr/bin/dirname /usr/bin/nano'; +$conf['jailkit']['jailkit_chroot_cron_programs'] = '/usr/bin/php /usr/bin/perl /usr/share/perl /usr/share/php'; + +//* Squid +$conf['squid']['installed'] = false; // will be detected automatically during installation +$conf['squid']['config_dir'] = '/etc/squid'; +$conf['squid']['init_script'] = 'squid'; + +//* Nginx +$conf['nginx']['installed'] = false; // will be detected automatically during installation +$conf['nginx']['user'] = 'nginx'; +$conf['nginx']['group'] = 'nginx'; +$conf['nginx']['config_dir'] = '/etc/nginx'; +$conf['nginx']['vhost_conf_dir'] = '/etc/nginx/sites-available'; +$conf['nginx']['vhost_conf_enabled_dir'] = '/etc/nginx/sites-enabled'; +$conf['nginx']['init_script'] = 'nginx'; +$conf['nginx']['vhost_port'] = '8080'; +$conf['nginx']['cgi_socket'] = '/var/run/fcgiwrap.socket'; +$conf['nginx']['php_fpm_init_script'] = 'php-fpm'; +$conf['nginx']['php_fpm_ini_path'] = '/etc/php.ini'; +$conf['nginx']['php_fpm_pool_dir'] = '/etc/php-fpm.d'; +$conf['nginx']['php_fpm_start_port'] = 9010; +$conf['nginx']['php_fpm_socket_dir'] = '/var/lib/php5-fpm'; + +//* vlogger +$conf['vlogger']['config_dir'] = '/etc'; + +//* cron +$conf['cron']['init_script'] = 'crond'; +$conf['cron']['crontab_dir'] = '/etc/cron.d'; +$conf['cron']['wget'] = '/usr/bin/wget'; + +//* OpenVZ +$conf['openvz']['installed'] = false; + +?> diff --git a/install/dist/lib/centos70.lib.php b/install/dist/lib/centos70.lib.php new file mode 100644 index 0000000000000000000000000000000000000000..682833b70f77ee62469a5cbcd62eded1efae61b2 --- /dev/null +++ b/install/dist/lib/centos70.lib.php @@ -0,0 +1,164 @@ +<?php + +/* +Copyright (c) 2014, Till Brehm, ISPConfig UG +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + * Neither the name of ISPConfig nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +class installer extends installer_dist { + + 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); + } + } + } + + $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_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); + + 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'); + + exec('/usr/lib/mailman/bin/genaliases 2>/dev/null'); + + $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); + } + + public function configure_amavis() { + global $conf; + + // amavisd user config file + $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~'); + if(!is_dir($conf["amavis"]["config_dir"])) mkdir($conf["amavis"]["config_dir"]); + $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); + $content = str_replace('{mysql_server_port}', $conf["mysql"]["port"], $content); + $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content); + $content = str_replace('{hostname}', $conf['hostname'], $content); + $content = str_replace('/var/spool/amavisd/clamd.sock', '/var/run/clamav/clamd.sock', $content); + wf($conf["amavis"]["config_dir"].'/amavisd.conf', $content); + + + // Adding the amavisd commands to the postfix configuration + $postconf_commands = array ( + 'content_filter = amavis:[127.0.0.1]:10024', + 'receive_override_options = no_address_mappings' + ); + + // Make a backup copy of the main.cf file + copy($conf["postfix"]["config_dir"].'/main.cf', $conf["postfix"]["config_dir"].'/main.cf~2'); + + // Executing the postconf commands + foreach($postconf_commands as $cmd) { + $command = "postconf -e '$cmd'"; + caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command"); + } + + // Append the configuration for amavisd to the master.cf file + if(is_file($conf["postfix"]["config_dir"].'/master.cf')) copy($conf["postfix"]["config_dir"].'/master.cf', $conf["postfix"]["config_dir"].'/master.cf~'); + $content = rf($conf["postfix"]["config_dir"].'/master.cf'); + // Only add the content if we had not addded it before + if(!stristr($content, "127.0.0.1:10025")) { + unset($content); + $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); + + removeLine('/etc/sysconfig/freshclam', 'FRESHCLAM_DELAY=disabled-warn # REMOVE ME', 1); + replaceLine('/etc/freshclam.conf', 'Example', '# Example', 1); + + + } + + +} + +?> diff --git a/install/dist/lib/debian60.lib.php b/install/dist/lib/debian60.lib.php index 1fcf03124ec6513f19826d18022ddaabb2441e24..5c47447466a4f2bba5874292acf4f1bec7897dcc 100644 --- a/install/dist/lib/debian60.lib.php +++ b/install/dist/lib/debian60.lib.php @@ -92,19 +92,20 @@ class installer extends installer_base { //* Get the dovecot version exec('dovecot --version', $tmp); - $parts = explode('.', trim($tmp[0])); - $dovecot_version = $parts[0]; + $dovecot_version = $tmp[0]; unset($tmp); - unset($parts); //* Copy dovecot configuration file - if($dovecot_version == 2) { + if(version_compare($dovecot_version,2) >= 0) { 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); } replaceLine($config_dir.'/'.$configfile, 'postmaster_address = postmaster@example.com', 'postmaster_address = postmaster@'.$conf['hostname'], 1, 0); + if(version_compare($dovecot_version,2.1) < 0) { + removeLine($config_dir.'/'.$configfile, 'ssl_protocols ='); + } } else { 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); @@ -112,6 +113,8 @@ class installer extends installer_base { copy('tpl/debian6_dovecot.conf.master', $config_dir.'/'.$configfile); } } + + //* dovecot-sql.conf $configfile = 'dovecot-sql.conf'; diff --git a/install/dist/lib/fedora.lib.php b/install/dist/lib/fedora.lib.php index db7bc1dada914f61bae4325d66046c41f22e4606..b593e1acc533a633f16d28d9141092e010e14295 100644 --- a/install/dist/lib/fedora.lib.php +++ b/install/dist/lib/fedora.lib.php @@ -442,18 +442,19 @@ class installer_dist extends installer_base { //* Get the dovecot version exec('dovecot --version', $tmp); - $parts = explode('.', trim($tmp[0])); - $dovecot_version = $parts[0]; + $dovecot_version = $tmp[0]; unset($tmp); - unset($parts); //* Copy dovecot configuration file - if($dovecot_version == 2) { + if(version_compare($dovecot_version,2) >= 0) { 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); } + if(version_compare($dovecot_version,2.1) < 0) { + removeLine($config_dir.'/'.$configfile, 'ssl_protocols ='); + } } else { 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); diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php index 04205ccf41d3d6aebfe20cc3f5e85222f337458f..109b429b8bbe56f00b40115984c2a660f0aaf3c3 100644 --- a/install/lib/install.lib.php +++ b/install/lib/install.lib.php @@ -264,7 +264,7 @@ function get_distname() { } elseif(stristr($content, 'CentOS Linux release 7')) { $distname = 'CentOS'; $distver = 'Unknown'; - $distid = 'centos53'; + $distid = 'centos70'; $distbaseid = 'fedora'; swriteln("Operating System: CentOS 7 or compatible\n"); } else { diff --git a/install/lib/installer_base.lib.php b/install/lib/installer_base.lib.php index 8180e0de2edb2dea52efcaf6d84418b7e6120e5d..b0330067137465c6a5567781790a89bf2a5cea6f 100644 --- a/install/lib/installer_base.lib.php +++ b/install/lib/installer_base.lib.php @@ -1015,19 +1015,20 @@ class installer_base { //* Get the dovecot version exec('dovecot --version', $tmp); - $parts = explode('.', trim($tmp[0])); - $dovecot_version = $parts[0]; + $dovecot_version = $tmp[0]; unset($tmp); - unset($parts); //* Copy dovecot configuration file - if($dovecot_version == 2) { + if(version_compare($dovecot_version,2) >= 0) { 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); } replaceLine($config_dir.'/'.$configfile, 'postmaster_address = postmaster@example.com', 'postmaster_address = postmaster@'.$conf['hostname'], 1, 0); + if(version_compare($dovecot_version,2.1) < 0) { + removeLine($config_dir.'/'.$configfile, 'ssl_protocols ='); + } } else { 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); @@ -2272,7 +2273,7 @@ class installer_base { $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); + $content = str_replace('{password}', addslashes($conf['mysql']['admin_password']), $content); wf($install_dir.'/server/lib/mysql_clientdb.conf', $content); chmod($install_dir.'/server/lib/mysql_clientdb.conf', 0600); chown($install_dir.'/server/lib/mysql_clientdb.conf', 'root');