Chinaunix首页 | 论坛 | 博客
  • 博客访问: 175933
  • 博文数量: 72
  • 博客积分: 2527
  • 博客等级: 少校
  • 技术积分: 835
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-07 01:30
文章分类
文章存档

2010年(3)

2009年(1)

2008年(8)

2007年(18)

2006年(42)

我的朋友

分类: BSD

2006-05-07 01:37:59

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

 


 

(备忘)

 

需要的软件包如下:
mysql-4.1.9.tar.gz
httpd-2.0.54.tar.gz
php-4.3.11.tar.gz  


 

bind-9.3.2.tar.gz 
mysql-bind-0-1.tgz


 


软件包均放在 /root/software 下


 


1. 安装mysql-4.1.9.tar.gz
——我总是习惯把它安装在 /home/soft/mysql4 下面


 

#### 解压解包
cd /root/software
tar xvfz mysql-4.1.9.tar.gz


 

#### 配置安装到 /home/soft/mysql,支持中文gbk
cd mysql-4.1.9
./configure --prefix=/home/soft/mysql4 --with-charset=gbk


 

#### 编译时间主要看机器配置,一般机子会超过 10 分钟。
make
make install


 

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


 

#### 初始化表并且规定用mysql用户来访问初始化表以后就开始给mysql和root用户设定访问权
./scripts/mysql_install_db --user=mysql
cd /home/soft/mysql4
#### 设定root能访问/home/soft/mysql4
chown -R root .
#### 设定mysql用户能访问/home/soft/mysql4/var ,里面存的是mysql的数据库文件
chown -R mysql var
#### 设定mysql用户能访问/home/soft/mysql4/var下的所有文件
chown -R mysql var/.
#### 设定mysql用户能访问/home/soft/mysql4/var/mysql下的所有文件
chown -R mysql var/mysql/.
#### 设定mysql组能够访问/home/soft/mysql4
chgrp -R mysql .
#### 运行 mysql, 正常运行将显示进程号
/home/soft/mysql4/bin/mysqld_safe --user=mysql &
#### 修改mysql密码,因为默认为空密码(***** 自行设定)
/home/soft/mysql4/bin/mysqladmin -uroot password *****


 

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


 


2.安装apache
——我总是习惯把它安装在 /home/soft/apache 下面


 

cd /root/software
#### 解压解包
tar xvfz httpd-2.0.54.tar.gz


 

cd httpd-2.0.54
#### 编译配置 apache , 一般说来这样就够用了, 也可以精细调整 --enable-module 和 --enable-shared
#### 详细参照 则用 ./configure --help
./configure --prefix=/home/soft/apache --enable-module=most --enable-shared=max
make
make install


 

#### 如下命令可以察看编译进apache的模块
/home/soft/apache/bin/httpd -l
#### 如下命令启动或停止或重启 apache server:
/home/soft/apache/bin/apachectl start
/home/soft/apache/bin/apachectl stop
/home/soft/apache/bin/apachectl restart


 

#### apache 功能强大,配置文件是 /home/soft/apache/conf/httpd.conf


 

----------------------------------------------------------------------------------apache安装全部完成


 


3. 安装php


 

#### 注意配置指定安装的 apache 和 mysql 的路径即可
./configure --with-mysql=/home/soft/mysql4 --with-apxs2=/usr/local/httpd/bin/apxs  
make
make install


 

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


 

#### 让 Apache 能够直接解析 php, 我们还要进行一些配置 httpd.conf
#### 编辑 /home/soft/apache/conf/httpd.conf
#### 添加如下两行


 

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


 

#### 应该将以上两句添加在其他AddType之后。
#### 查看确认文件中有以下一句话,没有就自己添加在所有 LoadModule 之后(一般说来会有,否则php安装不算成功)。


 

LoadModule php4_module modules/libphp4.so


 

#### 保存 httpd.conf 文件。


 

启动apache server:
/usr/local/httpd/bin/apachectl start


 

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


 

4.安装bind


 

tar xfzv bind-9.3.2.tar.gz
tar xfzv mysql-bind-0-1.tgz
cp mysql-bind-0.1/mysqldb.c bind-9.3.2/bin/named
cp mysql-bind-0.1/mysqldb.h bind-9.3.2/bin/named/include
cd bind-9.3.2


 

#### 编辑 bin/named/Makefile.in 将
DBDRIVER_OBJS =
DBDRIVER_SRCS =
DBDRIVER_INCLUDES =
DBDRIVER_LIBS =


 

#### 作如下配置
DBDRIVER_OBJS = @
DBDRIVER_SRCS = mysqldb.c
DBDRIVER_INCLUDES = -I'/home/soft/mysql4/include/mysql'
DBDRIVER_LIBS = -L'/home/soft/mysql4/lib/mysql' -lmysqlclient


 

#### 修改 bin/named/main.c 文件
#### 在 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();


 

#### 安装三部曲:
#### --enable-threads 开启多线程处理能力
./configure --prefix=/home/soft/named --enable-threads
make
make install


 

#### 手工建立目录 etc
mkdir /home/soft/named/etc


 

#### 生成 rndc 控制命令的 key 文件
#### 需注意,这一步要求操作系统配有随机数发生器 /dev/random
#### 因此需要启动文件 /etc/rc.conf 中配上 rand_irqs="3 14 15" 并重启使之起作用(不知有没有不重启的方案)
#### 否则这一步,将会卡住,象没了反应一样


 

cd /home/soft/named
sbin/rndc-confgen > etc/rndc.conf


 

#### 从 rndc.conf 文件中提取 named.conf 用的 key 生成 named.conf 文件
cd /home/soft/named/etc
tail -10 rndc.conf | head -9 | sed 's/# //g' > named.conf


 

#### 此时,named.conf 内容为:


 

key "rndc-key" {
        algorithm hmac-md5;
        secret "O0SuB34RK+E3r+m5Fbh2eA==";
};


 

controls {
        inet 127.0.0.1 port 953
                allow { 127.0.0.1; } keys { "rndc-key"; };
};


 

#### dig 命令直接生成 named.root 文件,这个文件是很标准的东东,
#### 有了它,本地 dns 不能解的就上总部去问
cd /home/soft/named/etc
dig > named.root


 

#### 建立 localhost.rev 文件
#### 用操作系统自带的 /etc/namedb/make-localhost 生成
cd /home/soft/named/etc
sh /etc/namedb/make-localhost
#### 将会生成 localhost-v6.rev 与 localhost.rev 两个文件
#### 使用它应当先配置好主机名等内容如 rc.conf 中的主机名


 

#### 建立named.local文件


 

#### 配置 named.conf
#### 增加如下内容:


 

//
// a caching only nameserver config
//
zone "." IN {
    type hint;
    file "named.root";
};    


 

zone "localhost" IN {
    type master;
    file "localhost.rev";
    allow-update { none; };
};


 

zone "0.0.127.in-addr.arpa" IN {
    type master;
    file "named.local";
    allow-update { none; };
};


 

zone "mydomain.com" {
type master;
database "mysqldb bind9 mydomain localhost bind passwd";
};


 

zone "19.202.220.in-addr.arpa" {
type master;
database "mysqldb bind9 ptr      localhost bind passwd";
};


 

#### 上述内容中配置自己的
#### 数据库名(bind9),表名(mydomain),MYSQL主机(localhost),
#### MYSQL用户(bind),MYSQL密码(passwd需自行更改)
#### 当然,前提条件是在 mysql 建库,建用户 bind 改密码并授权。


 


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


 

5. 建立数据


 

####用 MYSQLADMIN 来建立数据库的和倒数据,确实会非常方便,当然你需要先安装它。
####手工建数据也可以,如下连库后


 

/home/soft/mysql4/bin/mysql -uroot -ppassword


 

#### 连上数据库后,建库 binddb,如果搞得复杂点,专为 bind 建库用户也行呀,这样
#### 配置 bind 的配置文件时就用咱新建的用户


 

create database binddb;
use binddb;


 

####参照 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. . 200505101 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 ('', 259200, 'Cname', 'w0.mydomain.com.');
INSERT INTO mydomain VALUES ('ftp.mydomain.com', 259200, 'Cname', 'w0.mydomain.com.');


 


#### 反向解析数据库ptr表结构


 

CREATE TABLE ptr (
name varchar(255) default NULL,
ttl int(11) default NULL,
rdtype varchar(255) default NULL,
rdata varchar(255) default NULL
) TYPE=MyISAM;


 

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


 

INSERT INTO `ptr` VALUES ('45.202.220.in-addr.arpa', 17600, 'SOA', 'mydomain.com. . 200505101 28800 7200


 

86400 28800');
INSERT INTO `ptr` VALUES ('45.202.220.in-addr.arpa', 17600, 'NS', 'ns0.mydomain.com.');
INSERT INTO `ptr` VALUES ('45.202.220.in-addr.arpa', 17600, 'NS', 'ns1.mydomain.com.');
INSERT INTO `ptr` VALUES ('188.19.202.220.in-addr.arpa', 17600, 'PTR', 'mail.mydomain.');


 

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


 


6. 启动 BIND 测试其是否正常工作


 

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


 

#### 然后在你WINDOWS机器上将这个配置了 BIND 的 IP 设置为 DNS 然后运行 nslookup 测试
#### 如果出现证明反向解析正常


 

nslookup
server ....( 运行bind机器的IP )
w0.mydomain.com
... (此时应当返回域名记录)
...
#### 如果 w0.mydomain.com
#### 解析地址为所输入的,则证明正向工作正常


 

注:反向解析未做测试


 

 


 

7. 结语


 

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


 

zone "youname.com" {
type master;
database "mysqldb dnsdb mydomain localhost root passwd"
};


 


bind-9.3.2 + mysql-4.1.9 配置就写到这里,有错误之处请朋友留言指正。
遗憾的是它没有象 pdns 相配合的那样简洁整齐有条理的管理界面。
阅读(589) | 评论(0) | 转发(0) |
0

上一篇:新开了博客空间

下一篇:基于mysql的bind

给主人留下些什么吧!~~