天天看点

bind-9.3.1 + mysql-4.1.9 + web管理详细配置全过程

FreeBSD 4.10 下 bind-9.3.2 + mysql-4.1.9 详细配置全过程

<a href="http://blog.chinaunix.net/u/2996/showart_71794.html">http://blog.chinaunix.net/u/2996/showart_71794.html</a>

作者:修理工

本人在AS3.0 RH9.0 下安装没问题

需要的软件包如下:

mysql-4.1.9.tar.gz  http://www.mysql.com

bind-9.3.1.tar.gz   http://www.isc.org/products/BIND/

mysql-bind-0-1.tgz  http://sourceforge.net/projects/mysql-bind/

httpd-2.0.54.tar.gz

php-4.3.11.tar.gz   

1. 安装mysql-4.1.9.tar.gz

cd /root

tar xfz mysql-4.1.9.tar.gz   //解压缩

cd mysql-4.1.9

./configure --prefix=/usr/local/mysql --with-charset=gbk    //配置安装到/usr/local/mysql支持中文gbk

make                                //编译时间比较长看你机器的配置高低了,大概12分钟左右。

make install

groupadd mysql                      //建立mysql组

useradd mysql -g mysql              //建立mysql用户并且加入到mysql组中

./scripts/mysql_install_db --user=mysql //初始化表并且规定用mysql用户来访问初始化表以后就开始给mysql和root用户设定访问权

cd /usr/local/mysql

chown -R root .                //设定root能访问/usr/local/mysql

chown -R mysql var             //设定mysql用户能访问/usr/local/mysql/var ,里面存的是mysql的数据库文件

chown -R mysql var/.           //设定mysql用户能访问/usr/local/mysql/var下的所有文件

chown -R mysql var/mysql/.     //设定mysql用户能访问/usr/local/mysql/var/mysql下的所有文件

chgrp -R mysql .               //设定mysql组能够访问/usr/local/mysql

/usr/local/mysql/bin/mysqld_safe --user=mysql &amp;   //运行mysql[1]

12814

以上提示表示mysql运行正常。

/usr/local/mysql/bin/mysqladmin -uroot password *****     //修改mysql密码默认为空密码

----------------------------------------------------------------------------------mysql安装全部完成

2.安装apache

tar xfz httpd-2.0.54.tar.gz            //解压缩

cd httpd-2.0.54

./configure --prefix=/usr/local/httpd --enable-module=most --enable-shared=max    //配置apache

make

/usr/local/httpd/bin/httpd -l     //察看编译进apache的模块

Compiled in modules:

core.c

mod_access.c

mod_auth.c

mod_include.c

mod_log_config.c

mod_env.c

mod_setenvif.c

prefork.c

http_core.c

mod_mime.c

mod_status.c

mod_autoindex.c

mod_asis.c

mod_cgi.c

mod_negotiation.c

mod_dir.c

mod_imap.c

mod_actions.c

mod_userdir.c

mod_alias.c

mod_so.c

[root@linux httpd-2.0.54]#以上提示表示apache支持dso方式了。这样就可以用dso的方式把php的模块加进来。

--------------------------------------------------------------------------------apache安装完成

3. 安装php

tar xfz php-4.3.11.tar.gz

cd php-4.3.11

./configure --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/httpd/bin/apxs   //配置指定安装的apache和mysql的路径

cp php.ini-dist /usr/local/lib/php.ini   //将php.ini-dist复制到/usr/local/lib/,并重命名为php.ini

为了让Apache能够直接解析php,我们还要进行一些配置.

vi /usr/local/httpd/conf/httpd.conf

在httpd.conf文件中,添加

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

应该将以上两句添加在其他AddType之后。

确保文件中有以下一句话,没有就自己添加在所有LoadModule之后。

LoadModule php4_module modules/libphp4.so

好了,在vi中使用":wq"保存httpd.conf文件,退出vi。启动apache server:

/usr/local/httpd/bin/apachectl start

------------------------------------------------------------------------php安装配置完成

4.安装bind

tar xfzv bind-9.3.1.tar.gz

tar xfzv mysql-bind-0-1.tgz

cp mysql-bind-0.1/mysqldb.c bind-9.3.1/bin/named

cp mysql-bind-0.1/mysqldb.h bind-9.3.1/bin/named/include

cd bind-9.3.1

vi bin/named/Makefile.in

DBDRIVER_OBJS =

DBDRIVER_SRCS =

DBDRIVER_INCLUDES =

DBDRIVER_LIBS =

如下配置

DBDRIVER_OBJS = mysqldb.@O@

DBDRIVER_SRCS = mysqldb.c

DBDRIVER_INCLUDES = -I'/usr/local/mysql/include/mysql'

DBDRIVER_LIBS = -L'/usr/local/mysql/lib/mysql' -lmysqlclient -lz -lcrypt -lnsl -lm -lc -lnss_files -lnss_dns -lresolv -lc -lnss_files -lnss_dns -lresolv

修改main.c文件

vi bin/named/main.c

找到/*

* Add calls to register sdb drivers here.

*/

/* xxdb_init(); */

添加 mysqldb_init();

找到

/*

* Add calls to unregister sdb drivers here.

/* xxdb_clear(); */

添加 mysqldb_clear();

./configure --prefix=/usr/local/named --enable-threads #--enable-threads开启多线程处理能力

cd /usr/local/named  

mkdir etc 建立etc目录

sbin/rndc-confgen &gt;; etc/rndc.conf 生成rndc控制命令的key文件

cd etc

tail -10 rndc.conf | head -9 | sed s/#/ //g &gt;; named.conf 从rndc.conf文件中提取named.conf用的key

自动在/usr/local/named/etc 生成named,conf文件

建立localhost.zone文件

vi localhost.zone

$TTL    86400

$ORIGIN localhost.

@                       1D IN SOA       @ root (

                                       42              ; serial (d. adams)

                                       3H              ; refresh

                                       15M             ; retry

                                       1W              ; expiry

                                       1D )            ; minimum

                       1D IN NS        @

                       1D IN A         127.0.0.1

建立named.local文件

vi named.local

@       IN      SOA     localhost. root.localhost.  (

                                     1997022700 ; Serial

                                     28800      ; Refresh

                                     14400      ; Retry

                                     3600000    ; Expire

                                     86400 )    ; Minimum

             IN      NS      localhost.

1       IN      PTR     localhost.

dig命令直接生成named.root文件

dig &gt;; named.root  

配置 named.conf

增加如下内容:

controls {

        inet 127.0.0.1 port 953

         * directive below.  Previous versions of BIND always asked

         * questions using port 53, but BIND 9.31 uses an unprivileged

         * port by default.

         */

        // query-source address * port 53;

                                                              24,9         

};

//

// a caching only nameserver config

zone "." IN {

        type hint;

        file "named.root";

};      

zone "localhost" IN {

        type master;

        file "localhost.zone";

        allow-update { none; };

zone "0.0.127.in-addr.arpa" IN {

        file "named.local";

zone "mydomain.com" {

  type master;

  database "mysqldb dnsdb mydomain localhost root passwd"; 配置你的数据库名,表名,MYSQL主机,MYSQL用户,MYSQL密码

zone "19.202.220.in-addr.arpa" {

  database "mysqldb dnsdb ptr localhost root passwd";  配置你的数据库名,表名,MYSQL主机,MYSQL用户,MYSQL密码

--------------------------------------------------------------------------------BIND安装完成

5. 我是用MYSQLADMIN来建立数据库的和倒数据的,APACHE下安装MYSQLADMIN我这里就不详细讲了。

到我的站点http://www.sy165.cn/soft/myadmin.tar 下载解压缩到APACHE可访问的目录下就OK了

参照mysql-bind-0-1目录下的README建立数据库dnsdb

正向解析数据库mydomain表结构

CREATE TABLE mydomain (

  name varchar(255) default NULL,

  ttl int(11) default NULL,

  rdtype varchar(255) default NULL,

  rdata varchar(255) default NULL

) TYPE=MyISAM;

以下是正向解析示范可以直接倒入

INSERT INTO mydomain VALUES ('mydomain.com', 259200, 'SOA', 'mydomain.com. www.mydomain.com. 200309181 28800 7200 86400 28800');

INSERT INTO mydomain VALUES ('mydomain.com', 259200, 'NS', 'ns0.mydomain.com.');

INSERT INTO mydomain VALUES ('mydomain.com', 259200, 'NS', 'ns1.mydomain.com.');

INSERT INTO mydomain VALUES ('mydomain.com', 259200, 'MX', '10 mail.mydomain.com.');

INSERT INTO mydomain VALUES ('w0.mydomain.com', 259200, 'A', '192.168.1.1');

INSERT INTO mydomain VALUES ('w1.mydomain.com', 259200, 'A', '192.168.1.2');

INSERT INTO mydomain VALUES ('mydomain.com', 259200, 'Cname', 'w0.mydomain.com.');

INSERT INTO mydomain VALUES ('mail.mydomain.com', 259200, 'Cname', 'w0.mydomain.com.');

INSERT INTO mydomain VALUES ('ns0.mydomain.com', 259200, 'Cname', 'w0.mydomain.com.');

INSERT INTO mydomain VALUES ('ns1.mydomain.com', 259200, 'Cname', 'w1.mydomain.com.');

INSERT INTO mydomain VALUES ('www.mydomain.com', 259200, 'Cname', 'w0.mydomain.com.');

INSERT INTO mydomain VALUES ('ftp.mydomain.com', 259200, 'Cname', 'w0.mydomain.com.');

反向解析数据库ptr表结构

CREATE TABLE ptr (

以下是反向解析示范可以直接倒入

INSERT INTO `ptr` VALUES ('19.202.220.in-addr.arpa', 17600, 'SOA', 'mydomain.com. www.mydomain.com. 200309181 28800 7200 86400 28800');

INSERT INTO `ptr` VALUES ('19.202.220.in-addr.arpa', 17600, 'NS', 'ns0.mydomain.com.');

INSERT INTO `ptr` VALUES ('19.202.220.in-addr.arpa', 17600, 'NS', 'ns1.mydomain.com.');

INSERT INTO `ptr` VALUES ('82.19.202.220.in-addr.arpa', 17600, 'PTR', 'mail.mydomain.');

--------------------------------------------------------------------------------数据库建立完成

6. 启动你的BIND 测试BIND是否能正常工作

/usr/local/named/sbin/named -c /usr/local/named/etc/named.conf &amp;

然后在你WINDOWS机器上将这个配置了BIND的IP设置为DNS然后运行nslookup测试

如果出现证明反向解析正常

Default Server:  mail.mydomain

Address:  220.202.19.2

&gt;;

如果PING w0.mydomain.com

解析地址为192.168.1.1 证明正向工作正常

7.结束语

BIND + MYSQL 在增加A记录 MX记录 PTR记录都不需要从新启动BIND,每增加一个正向的解析域名都必须在named.conf正增加如下内容

zone "youname.com" {

bind + mysql 配置就写到这里了,有错误之处请大家指正。余下的时间就是用PHP写WEB脚本