oliver
2007-08-27 cc3fb3d95d21724942a4fcc6f54d9a157940d119
fixed some bugs in the installer
5 files modified
272 ■■■■■ changed files
install/dist/conf/debian40.conf.php 90 ●●●●● patch | view | raw | blame | history
install/install.php 71 ●●●● patch | view | raw | blame | history
install/lib/install.lib.php 17 ●●●● patch | view | raw | blame | history
install/lib/installer_base.lib.php 54 ●●●● patch | view | raw | blame | history
install/update.php 40 ●●●● patch | view | raw | blame | history
install/dist/conf/debian40.conf.php
@@ -3,63 +3,77 @@
//***  Debian 4.0 default settings
//* Main
$dist['init_scripts'] = '/etc/init.d';
$dist['runlevel'] = '/etc';
$dist['shells'] = '/etc/shells';
$dist['cron_tab'] = '/var/spool/cron/crontabs/root';
$dist['pam'] = '/etc/pam.d';
$conf['language'] = 'en';
$conf['distname'] = 'debian40';
$conf['hostname'] = 'server1.example.com'; // Full hostname
$conf['ispconfig_install_dir'] = '/usr/local/ispconfig';
$conf['ispconfig_config_dir'] = '/usr/local/ispconfig';
$conf['server_id'] = 1;
$conf['init_scripts'] = '/etc/init.d';
$conf['runlevel'] = '/etc';
$conf['shells'] = '/etc/shells';
$conf['cron_tab'] = '/var/spool/cron/crontabs/root';
$conf['pam'] = '/etc/pam.d';
//* MySQL
$dist['mysql']['init_script'] = 'mysql';
$conf['mysql']['init_script'] = 'mysql';
$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']['ispconfig_user'] = 'ispconfig';
$conf['mysql']['ispconfig_password'] = '5sDrewBhk';
//* Apache
$dist['apache']['user'] = 'www-data';
$dist['apache']['group'] = 'www-data';
$dist['apache']['init_script'] = 'apache2';
$dist['apache']['version'] = '2.2';
$dist['apache']['vhost_dist_dir'] = '/etc/apache2/sites-available';
$dist['apache']['vhost_dist_enabled_dir'] = '/etc/apache2/sites-enabled';
$conf['apache']['user'] = 'www-data';
$conf['apache']['group'] = 'www-data';
$conf['apache']['init_script'] = 'apache2';
$conf['apache']['version'] = '2.2';
$conf['apache']['vhost_conf_dir'] = '/etc/apache2/sites-available';
$conf['apache']['vhost_conf_enabled_dir'] = '/etc/apache2/sites-enabled';
//* Postfix
$dist['postfix']['config_dir'] = '/etc/postfix';
$dist['postfix']['init_script'] = 'postfix';
$dist['postfix']['user'] = 'postfix';
$dist['postfix']['group'] = 'postfix';
$dist['postfix']['vmail_userid'] = '5000';
$dist['postfix']['vmail_username'] = 'vmail';
$dist['postfix']['vmail_groupid'] = '5000';
$dist['postfix']['vmail_groupname'] = 'vmail';
$dist['postfix']['vmail_mailbox_base'] = '/home/vmail';
$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'] = '/home/vmail';
//* Getmail
$dist['getmail']['config_dir'] = '/etc/getmail';
$dist['getmail']['program'] = '/usr/bin/getmail';
$conf['getmail']['config_dir'] = '/etc/getmail';
$conf['getmail']['program'] = '/usr/bin/getmail';
//* Courier
$dist['courier']['config_dir'] = '/etc/courier';
$dist['courier']['courier-authdaemon'] = 'courier-authdaemon';
$dist['courier']['courier-imap'] = 'courier-imap';
$dist['courier']['courier-imap-ssl'] = 'courier-imap-ssl';
$dist['courier']['courier-pop'] = 'courier-pop';
$dist['courier']['courier-pop-ssl'] = 'courier-pop-ssl';
$conf['courier']['config_dir'] = '/etc/courier';
$conf['courier']['courier-authdaemon'] = 'courier-authdaemon';
$conf['courier']['courier-imap'] = 'courier-imap';
$conf['courier']['courier-imap-ssl'] = 'courier-imap-ssl';
$conf['courier']['courier-pop'] = 'courier-pop';
$conf['courier']['courier-pop-ssl'] = 'courier-pop-ssl';
//* SASL
$dist['saslauthd']['config'] = '/etc/default/saslauthd';
$dist['saslauthd']['init_script'] = 'saslauthd';
$conf['saslauthd']['config'] = '/etc/default/saslauthd';
$conf['saslauthd']['init_script'] = 'saslauthd';
//* Amavisd
$dist['amavis']['config_dir'] = '/etc/amavis';
$dist['amavis']['init_script'] = 'amavis';
$conf['amavis']['config_dir'] = '/etc/amavis';
$conf['amavis']['init_script'] = 'amavis';
//* ClamAV
$dist['clamav']['init_script'] = 'clamav-daemon';
$conf['clamav']['init_script'] = 'clamav-daemon';
//* Pureftpd
$dist['pureftpd']['config_dir'] = '/etc/pure-ftpd';
$dist['pureftpd']['init_script'] = 'pure-ftpd-mysql';
$conf['pureftpd']['config_dir'] = '/etc/pure-ftpd';
$conf['pureftpd']['init_script'] = 'pure-ftpd-mysql';
//* MyDNS
$dist['mydns']['config_dir'] = '/etc';
$dist['mydns']['init_script'] = 'mydns';
$conf['mydns']['config_dir'] = '/etc';
$conf['mydns']['init_script'] = 'mydns';
?>
install/install.php
@@ -52,21 +52,18 @@
//** Include the library with the basic installer functions
require_once('lib/install.lib.php');
require_once('options.conf.php');
//** Include the base class of the installer class
require_once('lib/installer_base.lib.php');
//** Include the distribution specific installer class library and configuration
include_once('dist/lib/'.$conf['distname'].'.lib.php');
include_once('dist/conf/'.$conf['distname'].'.conf.php');
//** Get distribution identifier
$distname = get_distname();
//** Copt the $dist created in dist/conf/foo to global var
$conf['dist'] = $dist;
//** Include the distribution specific installer class library and configuration
include_once('dist/lib/'.$distname.'.lib.php');
include_once('dist/conf/'.$distname.'.conf.php');
//** Install logfile
define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log');
//****************************************************************************************************
@@ -78,8 +75,8 @@
swriteln($inst->lng('    Tap in "quit" (without the quotes) to stop the installer.'."\n\n"));
//** Check log file is writable (probably not root or sudo)
if(!is_writable(ISPC_LOG_FILE)){
    die("ERROR: Cannot write to the log file '".ISPC_LOG_FILE."'. Are you root or sudo ?\n\n");
if(!is_writable(dirname(ISPC_LOG_FILE))){
    die("ERROR: Cannot write to the directory ".dirname(ISPC_LOG_FILE).". Are you root or sudo ?\n\n");
}
//** Select the language
@@ -92,7 +89,7 @@
//** Get the hostname
$tmp_out = array();
exec('hostname -f', $tmp_out);
$conf['hostname'] = $inst->free_query('Full qualified hostname (FQDN) of the server, eg foo.example.com ', $tmp_out[0]);
$inst->conf['hostname'] = $inst->free_query('Full qualified hostname (FQDN) of the server, eg foo.example.com ', $tmp_out[0]);
unset($tmp_out);
//** Get MySQL root credentials
@@ -175,19 +172,19 @@
    $inst->install_crontab();
    
    swriteln('Restarting services ...');
    system($conf['dist']['init_scripts'].'/'.$conf['dist']['mysql']['init_script'].' restart');
    system($conf['dist']['init_scripts'].'/'.$conf['dist']['postfix']['init_script'].' restart');
    system($conf['dist']['init_scripts'].'/'.$conf['dist']['saslauthd']['init_script'].' restart');
    system($conf['dist']['init_scripts'].'/'.$conf['dist']['amavis']['init_script'].' restart');
    system($conf['dist']['init_scripts'].'/'.$conf['dist']['clamav']['init_script'].' restart');
    system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-authdaemon'].' restart');
    system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-imap'].' restart');
    system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-imap-ssl'].' restart');
    system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-pop'].' restart');
    system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-pop-ssl'].' restart');
    system($conf['dist']['init_scripts'].'/'.$conf['dist']['apache']['init_script'].' restart');
    system($conf['dist']['init_scripts'].'/'.$conf['dist']['pureftpd']['init_script'].' restart');
    system($conf['dist']['init_scripts'].'/'.$conf['dist']['mydns']['init_script'].' restart');
    system($conf['init_scripts'].'/'.$conf['mysql']['init_script'].' restart');
    system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart');
    system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart');
    system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart');
    system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart');
    system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart');
    system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart');
    system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart');
    system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart');
    system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart');
    system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart');
    system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart');
    system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart');
    
}else{
@@ -226,29 +223,29 @@
        swriteln('Configuring Getmail');
        $inst->configure_getmail();
        
        system($conf['dist']['init_scripts'].'/'.$conf['dist']['postfix']['init_script'].' restart');
        system($conf['dist']['init_scripts'].'/'.$conf['dist']['saslauthd']['init_script'].' restart');
        system($conf['dist']['init_scripts'].'/'.$conf['dist']['amavis']['init_script'].' restart');
        system($conf['dist']['init_scripts'].'/'.$conf['dist']['clamav']['init_script'].' restart');
        system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-authdaemon'].' restart');
        system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-imap'].' restart');
        system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-imap-ssl'].' restart');
        system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-pop'].' restart');
        system($conf['dist']['init_scripts'].'/'.$conf['dist']['courier']['courier-pop-ssl'].' restart');
        system($conf['init_scripts'].'/'.$conf['postfix']['init_script'].' restart');
        system($conf['init_scripts'].'/'.$conf['saslauthd']['init_script'].' restart');
        system($conf['init_scripts'].'/'.$conf['amavis']['init_script'].' restart');
        system($conf['init_scripts'].'/'.$conf['clamav']['init_script'].' restart');
        system($conf['init_scripts'].'/'.$conf['courier']['courier-authdaemon'].' restart');
        system($conf['init_scripts'].'/'.$conf['courier']['courier-imap'].' restart');
        system($conf['init_scripts'].'/'.$conf['courier']['courier-imap-ssl'].' restart');
        system($conf['init_scripts'].'/'.$conf['courier']['courier-pop'].' restart');
        system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart');
    }
    
    //** Configure Pureftpd
    if(strtolower($inst->simple_query('Configure FTP Server', array('y','n'),'y') ) == 'y') {    
        swriteln('Configuring Pureftpd');
        $inst->configure_pureftpd();
        system($conf['dist']['init_scripts'].'/'.$conf['dist']['pureftpd']['init_script'].' restart');
        system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart');
    }
    
    //** Configure MyDNS
    if(strtolower($inst->simple_query('Configure DNS Server',array('y','n'),'y')) == 'y') {
        swriteln('Configuring MyDNS');
        $inst->configure_mydns();
        system($conf['dist']['init_scripts'].'/'.$conf['dist']['mydns']['init_script'].' restart');
        system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart');
    }
    
    //** Configure Apache
@@ -265,7 +262,7 @@
        //* Configure ISPConfig
        swriteln('Installing Crontab');
        $inst->install_crontab();
        system($conf['dist']['init_scripts'].'/'.$conf['dist']['apache']['init_script'].' restart');
        system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart');
    }
    
} //* << $install_mode / 'Standard' or Genius
install/lib/install.lib.php
@@ -56,9 +56,22 @@
$FILE = realpath('../install.php');
//** Get distribution identifier
function get_distname() {
    global $conf; // TODO wtf ?
    $distname = $conf['distname'];
    //** Debian
    if(file_exists('/etc/debian_version')) {
        if(trim(file_get_contents('/etc/debian_version')) == '4.0') {
            $distname = 'debian40';
        }
    }
    //** Redhat
    elseif(file_exists("/etc/redhat_release")) {
    }
    return $distname;
}
install/lib/installer_base.lib.php
@@ -33,7 +33,7 @@
    var $wb = array();
    var $language = 'en';
    var $db;
    private $conf;
    public $conf;
    public function __construct()
@@ -161,7 +161,7 @@
    //** writes postfix configuration files
    private function process_postfix_config($configfile)
    {
        $config_dir = $this->conf['dist']['postfix']['config_dir'].'/';
        $config_dir = $this->conf['postfix']['config_dir'].'/';
        $full_file_name = $config_dir.$configfile; 
        //* Backup exiting file
        if(is_file($full_file_name)){
@@ -179,7 +179,7 @@
    public function configure_postfix($options = '')
    {
        $cf = $this->conf['dist']['postfix'];
        $cf = $this->conf['postfix'];
        $config_dir = $cf['config_dir'];
        
        if(!is_dir($config_dir)){
@@ -337,14 +337,14 @@
        
    
        $configfile = 'sasl_smtpd.conf';
        if(is_file($conf["dist"]["postfix"]["config_dir"].'/sasl/smtpd.conf')) copy($conf["dist"]["postfix"]["config_dir"].'/sasl/smtpd.conf',$conf["dist"]["postfix"]["config_dir"].'/sasl/smtpd.conf~');
        if(is_file($conf["dist"]["postfix"]["config_dir"].'/sasl/smtpd.conf~')) exec('chmod 400 '.$conf["dist"]["postfix"]["config_dir"].'/sasl/smtpd.conf~');
        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~')) exec('chmod 400 '.$conf["postfix"]["config_dir"].'/sasl/smtpd.conf~');
        $content = rf("tpl/".$configfile.".master");
        $content = str_replace('{mysql_server_ispconfig_user}',$this->conf['mysql']['ispconfig_user'],$content);
        $content = str_replace('{mysql_server_ispconfig_password}',$this->conf['mysql']['ispconfig_password'], $content);
        $content = str_replace('{mysql_server_database}',$this->conf['mysql']['database'],$content);
        $content = str_replace('{mysql_server_ip}',$this->conf['mysql']['ip'],$content);
        wf($conf["dist"]["postfix"]["config_dir"].'/sasl/smtpd.conf',$content);
        wf($conf["postfix"]["config_dir"].'/sasl/smtpd.conf',$content);
        
        // TODO: Chmod and chown on the config file
        
@@ -354,7 +354,7 @@
        exec('mkdir -p /var/spool/postfix/var/run/saslauthd');
        
        // Edit the file /etc/default/saslauthd
        $configfile = $conf['dist']["saslauthd"]["config"];
        $configfile = $conf["saslauthd"]["config"];
        if(is_file($configfile)) copy($configfile,$configfile.'~');
        if(is_file($configfile.'~')) exec('chmod 400 '.$configfile.'~');
        $content = rf($configfile);
@@ -363,7 +363,7 @@
        wf($configfile,$content);
        
        // Edit the file /etc/init.d/saslauthd
        $configfile = $conf["dist"]["init_scripts"].'/'.$conf["dist"]["saslauthd"]["init_script"];
        $configfile = $conf["init_scripts"].'/'.$conf["saslauthd"]["init_script"];
        $content = rf($configfile);
        $content = str_replace('PIDFILE=$RUN_DIR/saslauthd.pid','PIDFILE="/var/spool/postfix/var/run/${NAME}/saslauthd.pid"',$content);
        wf($configfile,$content);
@@ -373,7 +373,7 @@
    
    public function configure_pam()
    {
        $pam = $this->conf['dist']['pam'];
        $pam = $this->conf['pam'];
        //* configure pam for SMTP authentication agains the ispconfig database
        $configfile = 'pamd_smtp';
        if(is_file("$pam/smtp"))    copy("$pam/smtp", "$pam/smtp~");
@@ -392,7 +392,7 @@
    
    public function configure_courier()
    {
        $config_dir = $this->conf['dist']['courier']['config_dir'];
        $config_dir = $this->conf['courier']['config_dir'];
        //* authmysqlrc
        $configfile = 'authmysqlrc';
        if(is_file("$config_dir/$configfile")){
@@ -410,7 +410,7 @@
        exec("chown daemon:daemon $config_dir/$configfile");
        
        //* authdaemonrc
        $configfile = $this->conf['dist']['courier']['config_dir'].'/authdaemonrc';
        $configfile = $this->conf['courier']['config_dir'].'/authdaemonrc';
        if(is_file($configfile)){
            copy($configfile, $configfile.'~');
        }
@@ -427,15 +427,15 @@
        
        // amavisd user config file
        $configfile = 'amavisd_user_config';
        if(is_file($conf["dist"]["amavis"]["config_dir"].'/conf.d/50-user')) copy($conf["dist"]["amavis"]["config_dir"].'/conf.d/50-user',$conf["dist"]["courier"]["config_dir"].'/50-user~');
        if(is_file($conf["dist"]["amavis"]["config_dir"].'/conf.d/50-user~')) exec('chmod 400 '.$conf["dist"]["amavis"]["config_dir"].'/conf.d/50-user~');
        if(is_file($conf["amavis"]["config_dir"].'/conf.d/50-user')) copy($conf["amavis"]["config_dir"].'/conf.d/50-user',$conf["courier"]["config_dir"].'/50-user~');
        if(is_file($conf["amavis"]["config_dir"].'/conf.d/50-user~')) exec('chmod 400 '.$conf["amavis"]["config_dir"].'/conf.d/50-user~');
        $content = rf("tpl/".$configfile.".master");
        $content = str_replace('{mysql_server_ispconfig_user}',$this->conf['mysql']['ispconfig_user'],$content);
        $content = str_replace('{mysql_server_ispconfig_password}',$this->conf['mysql']['ispconfig_password'], $content);
        $content = str_replace('{mysql_server_database}',$this->conf['mysql']['database'],$content);
        $content = str_replace('{mysql_server_port}',$conf["mysql"]["port"],$content);
        $content = str_replace('{mysql_server_ip}',$this->conf['mysql']['ip'],$content);
        wf($conf["dist"]["amavis"]["config_dir"].'/conf.d/50-user',$content);
        wf($conf["amavis"]["config_dir"].'/conf.d/50-user',$content);
        
        // TODO: chmod and chown on the config file
        
@@ -447,7 +447,7 @@
        );
        
        // Make a backup copy of the main.cf file
        copy($conf["dist"]["postfix"]["config_dir"].'/main.cf',$conf["dist"]["postfix"]["config_dir"].'/main.cf~2');
        copy($conf["postfix"]["config_dir"].'/main.cf',$conf["postfix"]["config_dir"].'/main.cf~2');
        
        // Executing the postconf commands
        foreach($postconf_commands as $cmd) {
@@ -456,11 +456,11 @@
        }
        
        // Append the configuration for amavisd to the master.cf file
        if(is_file($conf["dist"]["postfix"]["config_dir"].'/master.cf')) copy($conf["dist"]["postfix"]["config_dir"].'/master.cf',$conf["dist"]["postfix"]["config_dir"].'/master.cf~');
        if(is_file($conf["postfix"]["config_dir"].'/master.cf')) copy($conf["postfix"]["config_dir"].'/master.cf',$conf["postfix"]["config_dir"].'/master.cf~');
        $content = rf("tpl/master_cf_amavis.master");
        // Only add the content if we had not addded it before
        if(!stristr("127.0.0.1:10025 inet n - - - - smtpd",$content)) {
            af($conf["dist"]["postfix"]["config_dir"].'/master.cf',$content);
            af($conf["postfix"]["config_dir"].'/master.cf',$content);
        }
        
        // Add the clamav user to the amavis group
@@ -483,7 +483,7 @@
    
    public function configure_getmail()
    {
        $config_dir = $this->conf['dist']['getmail']['config_dir'];
        $config_dir = $this->conf['getmail']['config_dir'];
        $command = "useradd -d $config_dir getmail";
        caselog($command.' &> /dev/null', __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
@@ -498,7 +498,7 @@
    
    public function configure_pureftpd()
    {
        $config_dir = $this->conf['dist']['pureftpd']['config_dir'];
        $config_dir = $this->conf['pureftpd']['config_dir'];
        //* configure pam for SMTP authentication agains the ispconfig database
        $configfile = 'db/mysql.conf';
@@ -528,17 +528,17 @@
        
        // configure pam for SMTP authentication agains the ispconfig database
        $configfile = 'mydns.conf';
        if(is_file($conf["dist"]["mydns"]["config_dir"].'/'.$configfile)) copy($conf["dist"]["mydns"]["config_dir"].'/'.$configfile,$conf["dist"]["mydns"]["config_dir"].'/'.$configfile.'~');
        if(is_file($conf["dist"]["mydns"]["config_dir"].'/'.$configfile.'~')) exec('chmod 400 '.$conf["dist"]["mydns"]["config_dir"].'/'.$configfile.'~');
        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 = str_replace('{mysql_server_ispconfig_user}',$this->conf['mysql']['ispconfig_user'],$content);
        $content = str_replace('{mysql_server_ispconfig_password}',$this->conf['mysql']['ispconfig_password'], $content);
        $content = str_replace('{mysql_server_database}',$this->conf['mysql']['database'],$content);
        $content = str_replace('{mysql_server_host}',$conf["mysql"]["host"],$content);
        $content = str_replace('{server_id}',$conf["server_id"],$content);
        wf($conf["dist"]["mydns"]["config_dir"].'/'.$configfile,$content);
        exec('chmod 600 '.$conf["dist"]["mydns"]["config_dir"].'/'.$configfile);
        exec('chown root:root '.$conf["dist"]["mydns"]["config_dir"].'/'.$configfile);
        wf($conf["mydns"]["config_dir"].'/'.$configfile,$content);
        exec('chmod 600 '.$conf["mydns"]["config_dir"].'/'.$configfile);
        exec('chown root:root '.$conf["mydns"]["config_dir"].'/'.$configfile);
    
    }
    
@@ -627,8 +627,8 @@
        
        //* Copy the ISPConfig vhost for the controlpanel
        //TODO These are missing! should they be "vhost_dist_*_dir" ?
        $vhost_conf_dir = $this->conf['dist']['apache']['vhost_conf_dir'];
        $vhost_conf_enabled_dir = $this->conf['dist']['apache']['vhost_conf_enabled_dir'];
        $vhost_conf_dir = $this->conf['apache']['vhost_conf_dir'];
        $vhost_conf_enabled_dir = $this->conf['apache']['vhost_conf_enabled_dir'];
        copy('tpl/apache_ispconfig.vhost.master', "$vhost_conf_dir/ispconfig.vhost");
        //* and create the symlink
        if(!is_link("$vhost_conf_enabled_dir/ispconfig.vhost")) {
@@ -653,7 +653,7 @@
        unlink('crontab.txt');
        
        //* Getmail crontab
        $cf = $this->conf['dist']['getmail'];
        $cf = $this->conf['getmail'];
        exec('crontab -u getmail -l > crontab.txt');
        $existing_cron_jobs = file('crontab.txt');
        
install/update.php
@@ -38,8 +38,10 @@
// Include the base class of the installer class
require_once('lib/installer_base.lib.php');
include_once("options.conf.php");
$conf['dist'] = $dist;
//** Install logfile
define('ISPC_LOG_FILE', '/var/log/ispconfig_install.log');
//** Get distribution identifier
$distname = get_distname();
include_once("/usr/local/ispconfig/server/lib/config.inc.php");
@@ -68,24 +70,38 @@
// Initialize the MySQL server connection
include_once('lib/mysql.lib.php');
$inst->db = new db();
// Database update is a bit brute force and should be rebuild later ;)
// export the current database data
if($conf["mysql"]["admin_password"] != '') {
    system("mysqldump -h $conf[mysql_server_host] -u $conf[mysql_server_admin_user] -p$conf[mysql_server_admin_password] -c -t --add-drop-table --all --quick $conf[mysql_server_database] > existing_db.sql");
} else {
    system("mysqldump -h $conf[mysql_server_host] -u $conf[mysql_server_admin_user] -c -t --add-drop-table --all --quick $conf[mysql_server_database] > existing_db.sql");
if( empty($conf["mysql"]["admin_password"]) ) {
    $conf["mysql"]["admin_password"] = $inst->free_query('MySQL root password', $conf['mysql']['admin_password']);
}
if( !empty($conf["mysql"]["admin_password"]) ) {
    system("mysqldump -h ".$conf['mysql']['host']." -u ".$conf['mysql']['admin_user']." -p".$conf['mysql']['admin_password']." -c -t --add-drop-table --all --quick ".$conf['mysql']['database']." > existing_db.sql");
}
else {
    system("mysqldump -h ".$conf['mysql']['host']." -u ".$conf['mysql']['admin_user']." -c -t --add-drop-table --all --quick ".$conf['mysql']['database']." > existing_db.sql");
}
// Delete the old database
$inst->db = new db();
if( !$inst->db->query('DROP DATABASE IF EXISTS '.$conf['mysql']['database']) ) {
    $inst->error('Unable to drop MySQL database: '.$conf['mysql']['database'].'.');
}
// Delete the old database
exec("/etc/init.d/mysql stop");
/*exec("/etc/init.d/mysql stop");
sleep(3);
if($conf["mysql"]["database"] != '') exec("rm -rf /var/lib/mysql/".$conf["mysql"]["database"]);
exec("/etc/init.d/mysql start");
sleep(5);
sleep(5);*/
// Create the mysql database
$inst->configure_database();
@@ -98,9 +114,9 @@
// load old data back into database
if($conf["mysql"]["admin_password"] != '') {
    system("mysql -h $conf[mysql_server_host] -u $conf[mysql_server_admin_user] -p$conf[mysql_server_admin_password] $conf[mysql_server_database] < existing_db.sql");
    system("mysql -h ".$conf['mysql']['host']." -u ".$conf['mysql']['admin_user']." -p".$conf['mysql']['admin_password']." ".$conf['mysql']['database']." < existing_db.sql");
} else {
    system("mysql -h $conf[mysql_server_host] -u $conf[mysql_server_admin_user] $conf[mysql_server_database] < existing_db.sql");
    system("mysql -h ".$conf['mysql']['host']." -u ".$conf['mysql']['admin_user']." ".$conf['mysql']['database']." < existing_db.sql");
}
// Configure postfix
$inst->configure_postfix('dont-create-certs');