1. 云栖社区>
  2. PHP教程>
  3. 正文

Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器

作者:用户 来源:互联网 时间:2017-12-01 20:56:18

mysqlubuntu服务器管理apache搭建基于recursor12.10

Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器 - 摘要: 本文讲的是Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器, 系统环境:Ubuntu12.10 基本环境:Pdns-recursor(3.3) Apache(2.2.22) PHP(5.5) MySQL(5.5.29) Web管理:PowerAdmin(2.1.5) PhpMyAdmi




系统环境:Ubuntu12.10


基本环境:Pdns-recursor(3.3)


Apache(2.2.22)


PHP(5.5)


MySQL(5.5.29)


Web管理:PowerAdmin(2.1.5)


PhpMyAdmin(3.4.11.1deb1)


简介:


pdns-recursor是一个dns解析器(recursor),是debian从powerdns里面单独编译出来的只做dns解析器应用的软件。powerdns本身是一个支持mysql数据库的dns服务器。很多人应该都习惯了设置isp提供的dns服务器,然后忍受被劫持域名的搔扰,查不到内容就给你整到114页面(上海电信dns),其实linux用户完全不必受这个气,自己装一个dns解析器就行了。优点是安全,不用受dns劫持,不用怕最新的dns安全漏洞,唯一的缺点可能就是多耗你几M内存而已。再加上最近发现的dns协议漏洞,打过补丁的bind甚至还有问题,所以推荐用pdns-recursor,powerdns。


朋友前几天在LinuxMint14上做了powerdns,今天我来给大家在咱们强大的Ubuntu12上做一下pdns-recursor的域名解析服务器,并且实现PowerAdmin和PhpMyAdmin两种方式的Web界面管理。大家可以比较一下这两个dns服务器的优缺点。


第一次在自己的Win7系统上装了Ubuntu12.10,感觉真的很不错,优点想把Win7干掉的感觉,呵呵。


好了,下面我们来看下具体的实现步骤。


一:准备工作:


Ctrl+Alt+t调出Ubuntu的终端界面.


su后输入管理员的密码,切换为超级用户.(很多操作都需要root权限)


apt-getupdate(定期更新安装需要的Ubuntu软件源)


二:基本环境搭建:


1.安装Apache2


apt-get–yinstallapache2


serviceapache2start


在浏览器地址栏输入http://127.0.0.1后出现以下页面,Apache服务正常。


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


2.安装PHP5


apt-get-yinstallphp5libapache2-mod-php5


(注:libapache2-mod-php5为php连接apache的库文件)


测试PHP连接Apache是否正常:


cd/var/www/


习惯了vim编辑器,第一次用Ubuntu的gedit,vi还真不习惯。


于是果断将vim装上了。


apt-get–yinstallvim


viminfo.php测试页面(内容:<?phpinfo();?>注意空格)


serviceapache2restart(重启Apache服务)


在浏览器地址栏输入http://127.0.0.1/info.php


出现下面的PHP测试页面,PHP连接Apache正常.


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


3.安装MySql数据库


apt-get–yinstallmysql-servermysql-client


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


vim/etc/mysql/my.cnf(编辑MySql的配置脚本,取消地址绑定,默认不允许外界管理)


低行模式下输入bind-address找到后,将本行注释掉.


servicemysqlstart


netstat–tupln|grep3306


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


PHP连接MySql数据库测试:


serviceapache2restart


在浏览器地址栏输入http://127.0.0.1/info.php


在PHP的测试页中有关于MySql的模块,则链接数据库正常.


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


4.安装Pdns-recursorDNS服务器


apt-get–yinstallpdns-recursorpdns-backend-mysql


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


注:①pdns-backend-mysql是Pdns-recursor用于连接MySql数据库的.


②具体的配置修改,参考官方中文说明文档.


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


vim/etc/powerdns/pdns.conf


低行模式下搜索launch,在下面添加以下内容.


配置中的gmysql-dbname=pdnsdb将会在下面的MySql数据库中创建.


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


5.进入MySql,创建Pdns-recursor的DNS数据库(dnsdb)


①mysql–uroot–p


Enterpassword://输入MySql的管理员密码123456


②创建Pdns-recursor的DNS数据库(dnsdb)


mysql>createdatabasednsdb;


③授权用户pdns用户操作数据库的全部权限.


mysql>GRANTALLONdnsdb.*TO'pdns'@'localhost'IDENTIFIEDBY'123456';


mysql>GRANTALLONdnsdb.*TO'pdns'@'localhost.localdomain'IDENTIFIEDBY'123456';


④更新数据库信息.


mysql>FLUSHPRIVILEGES;


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


⑤下面开始创建DNS域,各种记录(SOA/NS/A/MX/等).


注:有关Pdns-recursor域、记录的配置使用说明详见Powerdns的官方说明文档。


可以先写好这些记录,然后一次导入到数据库,在这不详述了。


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


1)进入dnsdb数据库.


mysql>usednsdb;


2)创建域表


CREATETABLEdomains(


idINTauto_increment,


nameVARCHAR(255)NOTNULL,


masterVARCHAR(128)DEFAULTNULL,


last_checkINTDEFAULTNULL,


typeVARCHAR(6)NOTNULL,


notified_serialINTDEFAULTNULL,


accountVARCHAR(40)DEFAULTNULL,


primarykey(id)


);


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


3)创建记录表


CREATETABLErecords(


idINTauto_increment,domain_idINTDEFAULTNULL,


nameVARCHAR(255)DEFAULTNULL,


typeVARCHAR(6)DEFAULTNULL,


contentVARCHAR(255)DEFAULTNULL,


ttlINTDEFAULTNULL,


prioINTDEFAULTNULL,


change_dateINTDEFAULTNULL,


primarykey(id)


);


4)创建supermesters


CREATETABLEsupermasters(


ipVARCHAR(25)NOTNULL,


nameserverVARCHAR(255)NOTNULL,


accountVARCHAR(40)DEFAULTNULL,


);


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


5)官方操作文档还提供了相应的优化机制,就是创建一些索引


CREATEINDEXrec_name_indexONrecords(name);


CREATEINDEXnametype_indexONrecords(name,type);


CREATEINDEXdomain_idONrecords(domain_id);


6)插入测试记录.


INSERTINTOdomains(name,type)values("test.com","NATIVE");


INSERTINTOrecords(domain_id,name,content,type,ttl,prio)


VALUES(1,"test.com","[email protected]","SOA",86400,NULL);


INSERTINTOrecords(domain_id,name,content,type,ttl,prio)


VALUES(1,"test.com","dns-us1.powerdns.net","NS",86400,NULL);


INSERTINTOrecords(domain_id,name,content,type,ttl,prio)


VALUES(1,"test.com","dns-eu1.powerdns.net","NS",86400,NULL);


INSERTINTOrecords(domain_id,name,content,type,ttl,prio)


VALUES(1,"www.test.com","199.198.197.196","A",120,NULL);


INSERTINTOrecords(domain_id,name,content,type,ttl,prio)


VALUES(1,"mail.test.com","195.194.193.192","A",120,NULL);


INSERTINTOrecords(domain_id,name,content,type,ttl,prio)


VALUES(1,"localhost.test.com","127.0.0.1","A",120,NULL);


INSERTINTOrecords(domain_id,name,content,type,ttl,prio)


VALUES(1,"test.com","mail.test.com","MX",120,25);


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


⑥启动Pdns-recursor服务.


servicepdns-recursorstart


netstat–tupln|grep53


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


⑦解析测试一下(nslookup/dig/host)


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


6.到此,我们的基本环境就算搭建和测试完成了。大家有没有感觉有关MySql数据库的操作是不是很繁琐呢。对于非专业管理人员来说相当不方便。所以,下面介绍两种比较好的基于Web方式的数据库管理环境.


三:Web管理环境搭建:


1:基于PowerAdmin.


下载poweradmin-2.1.5.tgz,解压缩,放到Apache的主目录下.


tarzxvfpoweradmin-2.1.5.tgz


mv./poweradmin-2.1.5.tgz/var/www/poweradmin


(修改Apache的主目录权限,否则会出现下面权限被拒绝的情况)


cd/var/


chmoda+rxwww/


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


在浏览器地址栏输入PowerAdmin的配置路径,开始配置:


http://127.0.0.1/poweradmin/install/index.php


Step1:选择默认语言(english),下一步;


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


Step2:一些配置说明,直接下一步;


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


Step3:这一步配置连接DNS数据库的相关参数;


Usename:root,已授权用户(在/etc/passwd有并且是数据库管理员授权过的用户)


Password:密码(123456)


Hostname:localhost


DBPort:3306(数据库的监听端口)


Database:dnsdb(这个是我们在数据库里面建好的)


Databasetype:MySQL(所安装的数据库类型)


Poweradminadministratorpassword:123456(这个是Web管理DNS数据库的登陆入口密码)


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


Step4:进入第四步提示缺少MDB2的库文件(安装PHP5时,缺少一些库的支持)


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


apt-cachesearchphp5(查询有关PHP5的库文件,把必要的装上)


apt-get–yinstallphp-pearphp5-imagickphp5-imapphp5-mcryptphp5-recodephp5-snmpphp5-sqlitephp5-tidyphp5-xmlrpcphp5-xsl


pearinstallDB(导入)


pearinstallpear/MDB2(导入)


serviceapache2restart


刷新页面,提示缺少驱动包MDB2_Driver_mysql.


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


apt-get–yinstallphp-mdb2-driver-mysql


serviceapache2restart


刷新页面,成功导入了数据库信息.如下:


Step5:执行下一步;


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


Step6:提示缺少当前目录(/var/www/poweradmin/install/)的上级目录下的inc目录缺少生成的配置文件,


config.inc.php需要手动去创建,来完成整个配置过程.


vim/var/www/poweradmin/inc/config.inc.php(内容就是下面的php代码了)


chmod755/var/www/poweradmin/inc/config.inc.php


完成后,重启Apache2服务,刷新进入下一步;


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


Step7:提示完成配置的最后一步是将安装配置目录install下的所有删除掉,然后点击Poweradmin登陆.


rm–rf/var/www/poweradmin/install/


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


Step8:点击Poweradmin,输入默认的账号(admin)密码(123456),登陆管理后台.


可以看到我们在数据库面建的测试域,记录等.可以直接执行数据库的相关操作。



Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


经过这么8个步骤的折腾,终于搞定了,是不是感觉有点成就感呢。但是感觉Poweradmin


的界面效果不是太好,那么下面我们来一起看看下面这种Web管理方式-PhpMyAdmin.


2.基于PhpMyAdmin.


Step1:安装PhpMyAdmin.


apt-get–yinstallphpmyadmin


Step2:测试看看效果


在浏览器地址栏输入http://127.0.0.1/phpmyadmin


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


如果忘记了安装PhpMyAdmin过程中的登陆账号,查看生成的配置文件.


vim/etc/phpmyadmin/config-db.php


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


Step3:phpmyadmin是默认账号,密码123456.


普通登陆;


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


如果希望看到我们添加的DNS数据库,需要用root登陆,密码123456.



Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,搭建基于Web管理的专属DNS服务器


【小编总结】


到此,我们就完成了Ubuntu12.10上的Pdns-recursor+Apache+PHP+MySQL,从此,我们就有自己的专属的DNS服务器了.呵呵。管理也很方便,基于Web的两种方式,可以根据喜好自行选择.


下次,将会在Ubuntu12.10上完成另一个在企业网中比较常用的DNS服务器的搭建,那就是MyDNS.


敬请期待。。。。。。。。。。。





以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索mysql , ubuntu , 服务器 , 管理 , apache , 搭建 , 基于 , , recursor 12.10 ,以便于您获取更多的相关知识。