Install PowerDNS and powerdns-webinterface on CentOS 6.x x64
1. Install REMI and EPEL Repositories and PHP, PDNS, MySQL Packages:
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
yum -y install php php-mcrypt php-pdo php-mysql pdns pdns-backend-mysql mysql-server httpd
Start MySQL, httpd, pdns
service mysqld start service httpd start service pdns start
To start httpd, MySQL, pdns at boot time do the following:
chkconfig httpd on chkconfig mysqld on chkconfig pdns on
Edit file /etc/pdns/pdns.conf, add under the section launch:
launch=gmysql add this to the follwing file /etc/powerdns/pdns.d/pdns.local gmysql-host=localhost gmysql-user=powerdns gmysql-password=password gmysql-dbname=powerdns
2. Create PowerDNS Database, user, and tables:
Create powerdns database:
mysqladmin create powerdns
mysql -Bse "create user 'powerdns'@'localhost' identified by 'password'" mysql -Bse "grant all privileges on powerdns.* to 'powerdns'@'localhost'"
Change ‘password’ to your own password
Start MySql console: mysql
mysql> use powerdns;
CREATE TABLE domains ( id INT AUTO_INCREMENT, name VARCHAR(255) NOT NULL, master VARCHAR(128) DEFAULT NULL, last_check INT DEFAULT NULL, type VARCHAR(6) NOT NULL, notified_serial INT DEFAULT NULL, account VARCHAR(40) DEFAULT NULL, PRIMARY KEY (id) ) Engine=InnoDB; CREATE UNIQUE INDEX name_index ON domains(name); CREATE TABLE records ( id INT AUTO_INCREMENT, domain_id INT DEFAULT NULL, name VARCHAR(255) DEFAULT NULL, type VARCHAR(10) DEFAULT NULL, content VARCHAR(64000) DEFAULT NULL, ttl INT DEFAULT NULL, prio INT DEFAULT NULL, change_date INT DEFAULT NULL, disabled TINYINT(1) DEFAULT 0, ordername VARCHAR(255) BINARY DEFAULT NULL, auth TINYINT(1) DEFAULT 1, PRIMARY KEY (id) ) Engine=InnoDB; CREATE INDEX nametype_index ON records(name,type); CREATE INDEX domain_id ON records(domain_id); CREATE INDEX recordorder ON records (domain_id, ordername); CREATE TABLE supermasters ( ip VARCHAR(64) NOT NULL, nameserver VARCHAR(255) NOT NULL, account VARCHAR(40) NOT NULL, PRIMARY KEY (ip, nameserver) ) Engine=InnoDB; CREATE TABLE comments ( id INT AUTO_INCREMENT, domain_id INT NOT NULL, name VARCHAR(255) NOT NULL, type VARCHAR(10) NOT NULL, modified_at INT NOT NULL, account VARCHAR(40) NOT NULL, comment VARCHAR(64000) NOT NULL, PRIMARY KEY (id) ) Engine=InnoDB; CREATE INDEX comments_domain_id_idx ON comments (domain_id); CREATE INDEX comments_name_type_idx ON comments (name, type); CREATE INDEX comments_order_idx ON comments (domain_id, modified_at); CREATE TABLE domainmetadata ( id INT AUTO_INCREMENT, domain_id INT NOT NULL, kind VARCHAR(32), content TEXT, PRIMARY KEY (id) ) Engine=InnoDB; CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind); CREATE TABLE cryptokeys ( id INT AUTO_INCREMENT, domain_id INT NOT NULL, flags INT NOT NULL, active BOOL, content TEXT, PRIMARY KEY(id) ) Engine=InnoDB; CREATE INDEX domainidindex ON cryptokeys(domain_id); CREATE TABLE tsigkeys ( id INT AUTO_INCREMENT, name VARCHAR(255), algorithm VARCHAR(50), secret VARCHAR(255), PRIMARY KEY (id) ) Engine=InnoDB; CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
mysql> exit
3. Install powerdns-webinterface
mkdir /usr/local/src/webinterface cd /usr/local/src/webinterface
Download:
wget https://powerdns-webinterface.googlecode.com/files/powerdns-webinterface-1.5.3.tar.gz
(other version you can found: https://code.google.com/p/powerdns-webinterface/downloads/list)
Extract and remove powerdns-webinterface-1.5.3.tar.gz:
tar xvfz powerdns-webinterface-1.5.3.tar.gz rm -f powerdns-webinterface-1.5.3.tar.gz
cd web/
mkdir /var/www/html/pdns mv * /var/www/html/pdns/
rm -rf /var/www/html/pdns/tmp/templates_c/DELETEME
Edit file /var/www/html/pdns/configs/db.php:
<?php /** * Please insert your MySQL Database in this configfile! */ $cfg['db'] = array( "default" => array( "host" => "localhost", "port" => 3306, "username" => "powerdns", "password" => "password", "database" => "powerdns", ) );
Change rights for templates_c folder:
chmod 777 /var/www/html/pdns/tmp/templates_c/
Now you can login to your server. Type in browser:
http://yourip/pdns
Default username and password is: admin/admin.
Do not forget change it !