tbrehm
2009-10-07 6ecbdc80214992a1dc7f3f0d6d744667832d259d
Added powerdns support for debian Linux in the installer.
2 files added
9 files modified
154 ■■■■■ changed files
install/dist/conf/centos52.conf.php 6 ●●●●● patch | view | raw | blame | history
install/dist/conf/centos53.conf.php 6 ●●●●● patch | view | raw | blame | history
install/dist/conf/debian40.conf.php 6 ●●●●● patch | view | raw | blame | history
install/dist/conf/fedora9.conf.php 6 ●●●●● patch | view | raw | blame | history
install/dist/conf/gentoo.conf.php 6 ●●●●● patch | view | raw | blame | history
install/dist/conf/opensuse110.conf.php 6 ●●●●● patch | view | raw | blame | history
install/install.php 20 ●●●● patch | view | raw | blame | history
install/lib/installer_base.lib.php 45 ●●●●● patch | view | raw | blame | history
install/sql/powerdns.sql 34 ●●●●● patch | view | raw | blame | history
install/tpl/pdns.local.master 9 ●●●●● patch | view | raw | blame | history
install/update.php 10 ●●●● patch | view | raw | blame | history
install/dist/conf/centos52.conf.php
@@ -141,6 +141,12 @@
$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';
//* Jailkit
$conf['jailkit']['installed'] = false; // will be detected automatically during installation
$conf['jailkit']['config_dir'] = '/etc/jailkit';
install/dist/conf/centos53.conf.php
@@ -141,6 +141,12 @@
$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';
//* Jailkit
$conf['jailkit']['installed'] = false; // will be detected automatically during installation
$conf['jailkit']['config_dir'] = '/etc/jailkit';
install/dist/conf/debian40.conf.php
@@ -141,6 +141,12 @@
$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';
//* Jailkit
$conf['jailkit']['installed'] = false; // will be detected automatically during installation
$conf['jailkit']['config_dir'] = '/etc/jailkit';
install/dist/conf/fedora9.conf.php
@@ -141,6 +141,12 @@
$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';
//* Jailkit
$conf['jailkit']['installed'] = false; // will be detected automatically during installation
$conf['jailkit']['config_dir'] = '/etc/jailkit';
install/dist/conf/gentoo.conf.php
@@ -91,6 +91,12 @@
$dist['mydns']['config_dir'] = '/etc';
$dist['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';
//* Jailkit
$conf['jailkit']['config_dir'] = '/etc/jailkit';
$conf['jailkit']['jk_init'] = 'jk_init.ini';
install/dist/conf/opensuse110.conf.php
@@ -141,6 +141,12 @@
$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';
//* Jailkit
$conf['jailkit']['installed'] = false; // will be detected automatically during installation
$conf['jailkit']['config_dir'] = '/etc/jailkit';
install/install.php
@@ -190,9 +190,14 @@
    swriteln('Configuring Pureftpd');
    $inst->configure_pureftpd();
    //* Configure MyDNS
    //* Configure DNS
    if($conf['powerdns']['installed'] == true) {
        swriteln('Configuring PowerDNS');
        $inst->configure_powerdns();
    } else {
    swriteln('Configuring MyDNS');
    $inst->configure_mydns();
    }
    
    //* Configure Apache
    swriteln('Configuring Apache');
@@ -235,7 +240,8 @@
    if($conf['courier']['courier-pop-ssl'] != '' && is_file($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl']))         system($conf['init_scripts'].'/'.$conf['courier']['courier-pop-ssl'].' restart');
    if($conf['apache']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['apache']['init_script']))                 system($conf['init_scripts'].'/'.$conf['apache']['init_script'].' restart');
    if($conf['pureftpd']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['pureftpd']['init_script']))                system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart');
    if($conf['mydns']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['mydns']['init_script']))                    system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null');
    if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['mydns']['init_script']))                    system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null');
    if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['powerdns']['init_script']))                    system($conf['init_scripts'].'/'.$conf['powerdns']['init_script'].' restart &> /dev/null');
    
}else{
    
@@ -352,14 +358,22 @@
        if($conf['pureftpd']['init_script'] != '') system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart');
    }
    
    //** Configure MyDNS
    //** Configure DNS
    if(strtolower($inst->simple_query('Configure DNS Server',array('y','n'),'y')) == 'y') {
        $conf['services']['dns'] = true;
        //* Configure DNS
        if($conf['powerdns']['installed'] == true) {
            swriteln('Configuring PowerDNS');
            $inst->configure_powerdns();
            if($conf['powerdns']['init_script'] != '')    system($conf['init_scripts'].'/'.$conf['powerdns']['init_script'].' restart &> /dev/null');
        } else {
        swriteln('Configuring MyDNS');
        $inst->configure_mydns();
        if($conf['mydns']['init_script'] != '')    system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null');
    }
    
    }
    //** Configure Apache
    swriteln("\nHint: If this server shall run the ispconfig interface, select 'y' in the 'Configure Apache Server' option.\n");
    if(strtolower($inst->simple_query('Configure Apache Server',array('y','n'),'y')) == 'y') {    
install/lib/installer_base.lib.php
@@ -127,6 +127,7 @@
        if(is_installed('pure-ftpd') || is_installed('pure-ftpd-wrapper')) $conf['pureftpd']['installed'] = true;
        if(is_installed('mydns') || is_installed('mydns-ng')) $conf['mydns']['installed'] = true;
        if(is_installed('jk_chrootsh')) $conf['jailkit']['installed'] = true;
        if(is_installed('pdns_server') || is_installed('pdns_control')) $conf['powerdns']['installed'] = true;
        
        
    }
@@ -775,6 +776,50 @@
    
    }
    
    public function configure_powerdns() {
        global $conf;
        //* Create the database
        if(!$this->db->query('CREATE DATABASE IF NOT EXISTS '.$conf['powerdns']['database'].' DEFAULT CHARACTER SET '.$conf['mysql']['charset'])) {
            $this->error('Unable to create MySQL database: '.$conf['powerdns']['database'].'.');
        }
        //* Create the ISPConfig database user in the local database
        $query = "GRANT ALL ON `".$conf['powerdns']['database']."` . * TO '".$conf['mysql']['ispconfig_user']."'@'localhost';";
        if(!$this->db->query($query)) {
            $this->error('Unable to create user for powerdns database Error: '.$this->db->errorMessage);
        }
        //* Reload database privelages
        $this->db->query('FLUSH PRIVILEGES;');
        //* load the powerdns databse dump
        if($conf['mysql']['admin_password'] == '') {
            caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' '".$conf['powerdns']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/powerdns.sql' &> /dev/null",
                    __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in powerdns.sql');
        } else {
            caselog("mysql --default-character-set=".$conf['mysql']['charset']." -h '".$conf['mysql']['host']."' -u '".$conf['mysql']['admin_user']."' -p'".$conf['mysql']['admin_password']."' '".$conf['powerdns']['database']."' < '".ISPC_INSTALL_ROOT."/install/sql/powerdns.sql' &> /dev/null",
                     __FILE__, __LINE__, 'read in ispconfig3.sql', 'could not read in powerdns.sql');
        }
        //* Create the powerdns config file
        $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.'~')) exec('chmod 400 '.$conf["powerdns"]["config_dir"].'/'.$configfile.'~');
        $content = rf("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);
        $content = str_replace('{mysql_server_host}',$conf["mysql"]["host"],$content);
        wf($conf["powerdns"]["config_dir"].'/'.$configfile,$content);
        exec('chmod 600 '.$conf["powerdns"]["config_dir"].'/'.$configfile);
        exec('chown root:root '.$conf["powerdns"]["config_dir"].'/'.$configfile);
    }
    public function configure_apache()
    {    
        global $conf;
install/sql/powerdns.sql
New file
@@ -0,0 +1,34 @@
CREATE TABLE IF NOT EXISTS `domains` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL,
  `master` varchar(128) default NULL,
  `last_check` int(11) default NULL,
  `type` varchar(6) NOT NULL,
  `notified_serial` int(11) default NULL,
  `account` varchar(40) default NULL,
  `ispconfig_id` int(11) NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `name_index` (`name`)
) ENGINE=MyISAM;
CREATE TABLE IF NOT EXISTS `records` (
  `id` int(11) NOT NULL auto_increment,
  `domain_id` int(11) default NULL,
  `name` varchar(255) default NULL,
  `type` varchar(6) default NULL,
  `content` varchar(255) default NULL,
  `ttl` int(11) default NULL,
  `prio` int(11) default NULL,
  `change_date` int(11) default NULL,
  `ispconfig_id` int(11) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `rec_name_index` (`name`),
  KEY `nametype_index` (`name`,`type`),
  KEY `domain_id` (`domain_id`)
) ENGINE=MyISAM;
CREATE TABLE IF NOT EXISTS `supermasters` (
  `ip` varchar(25) NOT NULL,
  `nameserver` varchar(255) NOT NULL,
  `account` varchar(40) default NULL
) ENGINE=MyISAM;
install/tpl/pdns.local.master
New file
@@ -0,0 +1,9 @@
# Here come the local changes the user made, like configuration of
# the several backends that exist.
launch=gmysql
gmysql-host={mysql_server_host}
gmysql-user={mysql_server_ispconfig_user}
gmysql-password={mysql_server_ispconfig_password}
gmysql-dbname={powerdns_database}
install/update.php
@@ -296,9 +296,14 @@
    }
    
    if($conf['services']['dns']) {
        //** Configure MyDNS
        //* Configure DNS
        if($conf['powerdns']['installed'] == true) {
            swriteln('Configuring PowerDNS');
            $inst->configure_powerdns();
        } else {
        swriteln('Configuring MyDNS');
        $inst->configure_mydns();
        }
    }
    
    if($conf['services']['web']) {
@@ -360,7 +365,8 @@
        if($conf['pureftpd']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['pureftpd']['init_script']))                system($conf['init_scripts'].'/'.$conf['pureftpd']['init_script'].' restart');
    }
    if($conf['services']['dns']) {
        if($conf['mydns']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['mydns']['init_script']))                    system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null');
        if($conf['mydns']['installed'] == true && $conf['mydns']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['mydns']['init_script']))                    system($conf['init_scripts'].'/'.$conf['mydns']['init_script'].' restart &> /dev/null');
        if($conf['powerdns']['installed'] == true && $conf['powerdns']['init_script'] != '' && is_file($conf['init_scripts'].'/'.$conf['powerdns']['init_script']))                    system($conf['init_scripts'].'/'.$conf['powerdns']['init_script'].' restart &> /dev/null');
    }
}