Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1679878
  • 博文数量: 782
  • 博客积分: 2455
  • 博客等级: 大尉
  • 技术积分: 4140
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-06 21:37
个人简介

Linux ,c/c++, web,前端,php,js

文章分类

全部博文(782)

文章存档

2015年(8)

2014年(28)

2013年(110)

2012年(307)

2011年(329)

分类: LINUX

2012-02-18 09:40:25

需要的软件包如下:

  mysql-4.1.9.tar.gz

  bind-9.3.1.tar.gz

  mysql-bind-0-1.tgz

  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 & \\运行mysql[1]

  12814

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

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

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

  2.安装apache

  cd /root

  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

  make install

  /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

  cd /root

  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的路径

  make

  make install

  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开启多线程处理能力

  make

  make install

  cd /usr/local/named

  mkdir etc 建立etc目录

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

  cd etc

  tail -10 rndc.conf | head -9 | sed s/#\ //g > 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

  $TTL 86400
  @ 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 > 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 {

  type master;

  file "named.local";

  allow-update { none; };

  };

  zone "mydomain.com" {

  type master;

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

  };

  zone "19.202.220.in-addr.arpa" {

  type master;

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

  };

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

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

  到我的站点 下载解压缩到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. 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 ('', 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 ('19.202.220.in-addr.arpa', 17600, 'SOA', '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 &

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

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

  Default Server: mail.mydomain

  Address: 220.202.19.2

  >

  如果PING w0.mydomain.com

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

  7.结束语

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

  zone "youname.com" {

  type master;

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

  };

  bind + mysql 配置就写到这里了,有错误之处请大家指正。余下的时间就是用PHP写WEB脚本。
阅读(817) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~