环境
linux、apache、php-fpm | linux、mariadb | linux client | httpd、powerdns |
---|---|---|---|
192.168.43.17 | 192.168.43.7 | 192.168.43.6 | 192.168.43.27 |
apache_php-fpm | mariadb | client | httpd_powerdns |
配置数据库
创建数据库用户,授权
[mariadb]#
mysql -e "create database powerdns;grant all on powerdns.* to powerdns@'192.168.43.%' identified by 'centos';"
创建powerdns数据库中的表,参看下面文档实现
参考文档
[mariadb]#
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 BIGINT 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);
httpd_powerdns服务器配置
安装相关软件包
[httpd_powerdns]#
yum -y install httpd php php-devel php-gd php-mcrypt php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext php-mysql pdns pdns-backend-mysql
配置PowerDNS使用mariadb作为后台数据存储
[httpd_powerdns]#
vim /etc/pdns/pdns.conf
launch=gmysql
gmysql-host=192.168.43.7
gmysql-port=3306
gmysql-dbname=powerdns
gmysql-user=powerdns
gmysql-password=centos
启动服务
[httpd_powerdns]#
systemctl start pdns httpd
下载poweradmin程序,并解压缩到相应目录
[httpd_powerdns]#
cd /var/www/html/
ls
poweradmin-2.1.7.tgz
tar xvf poweradmin-2.1.7.tgz
mv poweradmin-2.1.7 poweradmin
windows浏览器访问 poweradmin
http://192.168.43.27/poweradmin
http://192.168.43.27/poweradmin/install
[mariadb]#
MariaDB [powerdns]> GRANT SELECT, INSERT, UPDATE, DELETE
-> ON powerdns.*
-> TO 'poweradmin'@'192.168.43.%'
-> IDENTIFIED BY 'centos';
[httpd_powerdns]#
cd poweradmin/inc
vim config.inc.php
<?php
$db_host = '192.168.43.7';
$db_user = 'poweradmin';
$db_pass = 'centos';
$db_name = 'powerdns';
$db_type = 'mysql';
$db_layer = 'PDO';
$session_key = 'Ce77)O5J(ZH8BhrG00T)_cn+d}^Df*SnZxYbI2QG~x3zJB';
$iface_lang = 'en_EN';
$dns_hostmaster = 'dnsserver';
$dns_ns1 = '192.168.43.27';
$dns_ns2 = '';
[httpd_powerdns]#
rm -rf /var/www/html/poweradmin/install/
浏览器访问 http://http://192.168.43.27/poweradmin/