安装PowerDNS(带MySQL后端)和Poweradmin在CentOS 5.2上
版本1.0
作者:Falko Timme
本文介绍如何在CentOS 5.2系统上安装PowerDNS名称服务器(使用MySQL后端)和PowerDNS PowerDmin控制面板。 PowerDNS是一个高性能,具有权威性的Nameservers - 在本文中描述的设置中,它将从MySQL数据库(类似于MyDNS)读取DNS记录,尽管还支持PostgreSQL等其他后端。 Poweradmin是PowerDNS的基于Web的控制面板。
我不会保证这将为您工作!
1初步说明
在本例中,我使用的是CentOS 5.2主机,主机名为server1.example.com ,IP地址为192.168.0.100 ,根据本教程前6章: 完美服务器 - CentOS 5.2 。
在这个例子中,我将只设置一个PowerDNS服务器(一个master); 通过使用从主机到从机的MySQL数据库复制,可以轻松实现增加PowerDNS从机,因此不需要区域传输(这与MyDNS类似)。 MySQL数据库复制可以根据本教程设置 : 如何在MySQL中设置数据库复制 (PowerDNS还支持本地区域传输(对于不能使用MySQL复制的场景) - 请参阅http://downloads.powerdns.com/documentation /html/replication.html )。
2安装MySQL
要安装MySQL,我们这样做:
yum install mysql mysql-server
然后,我们为MySQL创建系统启动链接(以便每当系统启动时,MySQL自动启动)并启动MySQL服务器:
chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start
现在检查网络是否启用。 跑
netstat -tap | grep mysql
它应该显示这样的东西( *:mysql意味着MySQL正在监听对MySQL复制很重要的所有接口!):
[root@server1 ~]# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 2439/mysqld
[root@server1 ~]#
如果没有,编辑/etc/my.cnf并注释掉选项skip-networking :
vi /etc/my.cnf[...]
#skip-networking
[...]
并重新启动MySQL服务器:
/etc/init.d/mysqld restart
跑
mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpassword
为用户root设置密码(否则任何人都可以访问您的MySQL数据库!)。
3安装PowerDNS
要安装PowerDNS,我们运行
yum install pdns pdns-backend-mysql
PowerDNS配置位于/ etc / pdns目录中 - 我会一会儿来。
现在我们连接到MySQL:
mysql -u root -p
键入您的MySQL root密码,您应该在MySQL shell上。 在MySQL shell上,我们为PowerDNS创建一个数据库:
CREATE DATABASE powerdns;
接下来我们为PowerDNS创建一个数据库用户( powerdns ):
GRANT ALL ON powerdns.* TO 'power_admin'@'localhost' IDENTIFIED BY 'power_admin_password';
GRANT ALL ON powerdns.* TO 'power_admin'@'localhost.localdomain' IDENTIFIED BY 'power_admin_password';
FLUSH PRIVILEGES;
(用您选择的密码替换power_admin_password 。)
现在我们创建PowerDNS所需的表
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)
);
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(6) DEFAULT NULL,
content VARCHAR(255) DEFAULT NULL,
ttl INT DEFAULT NULL,
prio INT DEFAULT NULL,
change_date INT DEFAULT NULL,
primary key(id)
);
CREATE INDEX rec_name_index ON records(name);
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
CREATE TABLE supermasters (
ip VARCHAR(25) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) DEFAULT NULL
);
...最后离开MySQL shell:
quit;
现在我们必须配置PowerDNS,以便它使用MySQL后端:
vi /etc/pdns/pdns.conf
将以下行添加到pdns.conf中 :[...]
#################################
# launch Which backends to launch and order to query them in
#
# launch=
launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=power_admin
gmysql-password=power_admin_password
gmysql-dbname=powerdns
[...]
然后为PowerDNS创建系统启动链接并启动它:
chkconfig --levels 235 pdns on
/etc/init.d/pdns start
4安装Poweradmin
现在我们来安装Poweradmin,PowerDNS是基于Web的控制面板。 Poweradmin是用PHP编写的,所以我们必须安装一个Web服务器(我在本例中使用Apache2)和PHP:
yum install httpd php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext
创建Apache2的系统启动链接并启动它:
chkconfig --levels 235 httpd on
/etc/init.d/httpd start
Poweradmin还需要以下两个PEAR包:
yum install php-pear-DB php-pear-MDB2-Driver-mysql
现在安装Poweradmin的所有先决条件,我们可以从Poweradmin安装开始(我将它安装在/ var / www / html的子目录中) / var / www / html是Apache在CentOS上的默认网站的文件根目录;如果您使用不同的文档根创建了虚拟主机,请调整路径)。
cd /tmp
wget https://www.poweradmin.org/download/poweradmin-2.1.2.tgz
然后将它安装到/ var / www / html / poweradmin目录中,如下所示:
tar xvfz poweradmin-2.1.2.tgz
mv poweradmin-2.1.2 /var/www/html/poweradmin
touch /var/www/html/poweradmin/inc/config.inc.php
chown -R apache:apache /var/www/html/poweradmin/
现在打开浏览器并启动基于Web的Poweradmin安装程序( http://server1.example.com/poweradmin/install或http://192.168.0.100/poweradmin/install )。
选择您的语言(英语或荷兰语):
单击转到第3步按钮继续:
现在填写您的数据库详细信息。 您必须填写MySQL root用户的详细信息,而不是我们之前创建的powerdns MySQL用户的详细信息! 还提供Poweradmin Web界面的管理员用户的密码(这是用户管理员稍后将用于登录Poweradmin的密码):
在下一页中,填写我们在第3章中创建的power_admin MySQL用户的详细信息。还请填写将在您的区域中使用的两个默认Nameservers,除非您在创建区域时提供不同的Nameservers(通常这些Nameservers是当前系统和从服务器的名称(可以设置MySQL复制,请参见第1章中的初步注释)):