• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • pdns的安裝筆記

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    FreeBSD 4.x 下安裝配置具web管理功能的pdns 前言: ——有時做點筆記,挺好,有清空大腦內存,不必在下次搞類似工作時需要尋覓塵封的記憶。 關鍵詞: FreeBSD dns pdns mysql apache php phpMyAdmin PowerAdmin Pear 測試主機關于IP配置等原始狀況 /etc/rc.c

    FreeBSD 4.x 下安裝配置具web管理功能的pdns

    前言:
    ——有時做點筆記,挺好,有清空大腦內存,不必在下次搞類似工作時需要尋覓塵封的記憶。
    關鍵詞:
    FreeBSD dns pdns mysql apache php phpMyAdmin PowerAdmin Pear


    測試主機關于IP配置等原始狀況

    /etc/rc.conf 中是
    hostname="bsd.test.com"
    ifconfig_lnc0="inet 192.168.0.244  netmask 255.255.255.0"

    /etc/hosts
    ::1                     localhost.test.com localhost
    127.0.0.1               localhost.test.com localhost
    192.168.0.244           bsd.test.com bsd


    為了方便目錄管理,將一些工具軟件安裝在與系統目錄相對獨立的目錄

    root 身份下
    #mysql
    mkdir /home/soft/mysql4
    #apache
    mkdir /home/soft/apache
    #pdns
    mkdir /home/soft/dns
    #mysql/pdns管理頁面全在此
    mkdir /home/soft/www


    1. 安裝 mysql

    先下載 mysql-max-4.0.24-unknown-freebsd4.7-i386.tar.gz 的源代碼版,地址:

    http://dev.mysql.com/downloads/mysql/4.0.html

    mv mysql-max-4.0.24-unknown-freebsd4.7-i386.tar.gz mysql-4.0.24.tar.gz
    tar xvfz mysql-4.0.24.tar.gz
    cd mysql-4.0.24


    =========================================================

    #建立mysql組 (Linux 下 groupadd mysql)
    pw groupadd mysql
    #建立mysql用戶并且加入到mysql組中(Linux 下 useradd mysql)
    pw useradd mysql -g mysql

    cd mysql_src_home
    ./configure --prefix=/home/soft/mysql4 --without-debug
    make
    make install
    #至此已經算是安裝完了,安裝在/home/soft/mysql4下

    #初始化數據字典
    scripts/mysql_install_db

    # 先令mysql 的整個目錄/home/soft/mysql4的屬主為root
    chown -R root:mysql /home/soft/mysql4
    # 再令mysql 的根目錄/home/soft/mysql4/var的屬主及屬組為mysql,因為最終以mysql身份運行
    chown -R mysql:mysql /home/soft/mysql4/var
    # 再令mysql 的整個目錄/home/soft/mysql4的屬組為mysql
    chgrp -R mysql /usr/local/mysql
    # 以下這步做不做影響不大,是說以中模式啟動mysql
    cp support-files/my-medium.cnf /etc/my.cnf
    #
    數據庫管理者用戶口令設定......
    mysqladmin -uroot -pr00tr00t                   # 這是設口令時這么設
    mysqladmin -uroot -pr00tr00t password r00t2005 # 這是改口令時這么改
    安全考慮
    最好干掉無關用戶,可在裝好管理頁面后再在頁面上干掉,此是后話

    啟動服務方法
    /home/soft/mysql4/bin/safe_mysqld --user=mysql &
    或者
    /home/soft/mysql4/share/mysql/mysql.server start

    停止服務方法
    /home/soft/mysql4/bin/mysqladmin shutdown
    或者
    /home/soft/mysql4/share/mysql/mysql.server stop

    可以看一看mysql.server的內容,其中目錄指向是正確的,俺們有configure時就已經確定了

    加在FreeBSD的啟動目錄中:
    cd /usr/local/etc
    echo ":">startmysql.sh
    echo "">>startmysql.sh
    echo "/home/soft/mysql4/share/mysql/mysql.server start" >>startmysql.sh


    =========================================================

    2. 安裝 apache
    先下載安裝包, 然后解開
    ./configure --prefix=/home/soft/apache --enable-modules="deflate headers proxy proxy-connect proxy-ftp proxy-http static-ab rewrite so cache file-cache disk-cache mem-cache"
    make
    make install
    好了,apache 已經安裝在/home/soft/apache下了。

    3. 安裝 php 成為 apache 的一個模塊
    先下載php4.X.XX的安裝包, 然后解開
    # --with-apxs=/home/soft/apache 就是說要編出來成為apache的一個模塊,會放在apache的lib目錄下的
    #特別注意 --enable-pear,因為pdns的前臺管理程序要用到它的數據庫抽象層
    ./configure --with-mysql=/home/soft/mysql4 --with-apxs=/home/soft/apache --enable-track-vars --enable-pear
    make
    make install
    cp php.ini-dist /usr/local/lib/php.ini
    pear應當會被安裝在/usr/local/lib/pear下,其中應有DB目錄,對后續的pdns前臺安裝很重要,如果沒有
    這個擴展組件,pdns 前臺跑不動

    此時,可以看到 /home/soft/apache/conf/httpd.conf 中被新添加了
    LoadModule php4_module        modules/libphp4.so
    表明 php 模塊在 apache 中已被激活
    首先,找到DocumentRoot,將它改為俺們規劃的/home/soft/www
    然后,再在
    /home/soft/apache/conf/httpd.conf 尾部添加下行
    AddType application/x-httpd-php .php .php3 .phtml
    令 apache 識別到 php 文檔可直接調用 php 模塊進行解釋
    還有,

    DirectoryIndex index.html index.html.var

    DirectoryIndex index.php index.html index.html.var
    這樣,當前臺訪問一個目錄時,將被認為是訪問這三個文件之一

    加在FreeBSD的啟動目錄中:
    cd /usr/local/etc
    echo ":">startapache.sh
    echo "">>startapache.sh
    echo "/home/soft/apache/bin/apachectl start" >>startapache.sh
    chmod +x startapache.sh


    4. 安裝 mysql 的管理前臺
    phpMyAdmin主頁:http://www.htmlwizard.net/phpMyAdmin/
    #下載安裝包
    #解開
    tar xvfz phpMyAdmin.2.6.2.tgz

    #打算放在/home/soft/www/dbmanager下
    mkdir -p /home/soft/www/dbmanager
    cp -R phpMyAdmin2.6.2/* /home/soft/www/dbmanager
    #改變一下文件權限
    chown -R nobody:nobody /home/soft/www/dbmanager

    #更改 config.inc.php 中
    ......
    //$cfg['PmaAbsoluteUri'] = '';
    $cfg['PmaAbsoluteUri'] = 'http://192.168.0.244/dbmanager';  // 原為空,改為入口路徑
    ......
    $i=0;                  // 用于多數據庫時的管理,所以是個管理參數數組
    $i++;                  // 此時 i=1, 由于Default是1 所以以下改的就是它
                           // 所以要注意在第一個 i++ 后改以下內容
    //$cfg['Servers'][$i]['auth_type']     = 'config';           // 原為config,表示只在后臺手工管理
    $cfg['Servers'][$i]['auth_type']     = 'http';              // 改為 http,表示通過 Web 進行管理

    // MySQL user,此處是 mysql 管理用戶的名字,注意,必須先用 mysqladmin 為它設置口令,否則危險
    // 這樣,Web 前臺登陸時,用戶名/口令即是數據庫管理用戶 root 及它的數據庫口令
    //前面用mysqladmin設置的r00t2005
    //
    $cfg['Servers'][$i]['user']          = 'root';
    //注意,$cfg['Servers'][$i]['password']          = ''; 不必修改。因為反正是到數據庫內認證
    ......

    // 不想受英文折磨而想要中文顯示:
    //$cfg['DefaultLang'] = 'en-iso-8859-1';
    $cfg['DefaultLang'] = 'zh';          
    ......
    //$cfg['DefaultCharset'] = 'iso-8859-1';
    $cfg['DefaultCharset'] = 'gb2312';   

    ——至此,mysql的前臺管理基本已經搞定

     

    5. 安裝 pdns
    下載安裝包,http://sourceforge.net/projects/poweradmin/注意版本不能太高,因為咱這可是 FreeBSD 4.9
    從 ports 中看到的版本為 2.9.11
    夠用就行,太新的說不好,可以試試??傊?4.9 下 pdns_recurse 是編不過,libc 太低

    首先要安裝 gmake,因為使用 FreeBSD 自帶 make 出來的東東易死菜,俺沒試過,不過聽人說過
    cd /usr/ports/devel/gmake
    make
    這樣,gmake 就裝在了 /usr/local/bin 下

    然后安裝 pdns
    ./configure --prefix=/home/soft/dns --with-mysql=/home/soft/mysql4 --enable-pdns_server
    缺省會把 gmysql 編進去的,放心好了。

    # 后來發現 make 也是可以的,但 pdns 官方網站上說會有問題,因此俺們尊重始作俑者
    /usr/local/bin/gmake  
    # make install 也可行,反正就是一個拷貝的過程
    /usr/local/bin/gmake install

    此時,可以看到 /home/soft/dns下有了幾個目錄,sbin 下便是俺們的pdns_server二進制程序
    /home/soft/dns/sbin/pdns_server便可啟動,但此時它會一閃而過不工作,因為俺們未進行參
    數配置,它起碼是要連數據庫找數據,所以俺們還要準備數據及配置
    以后臺進程啟動,則是
    /pdns_server --daemon


    6. 為 pdns 初始化數據庫表

    關于配置文件及數據庫表較詳細的內容需參考:
    http://doc.powerdns.com/generic-mypgsql-backends.html
    http://doc.powerdns.com/configuring-db-connection.html

     

    在 Mysql 的 Web 界面中建 pdns 用戶,密碼為 pdns,主機為 localhost,即只可由本地主機
    登錄;同樣的,檢查一下其他用戶。多余用戶全都干掉。
    在前臺中增加pdns后,應當出現兩條記錄,一條的“主機”字段是localhost,另一條的的則
    是"%"。

    此時,下到字符界面測試一下:
    /home/soft/mysql4/bin/mysql -updns -ppdns -hlocalhost
    /home/soft/mysql4/bin/mysql -updns -ppdns -h127.0.0.1
    都應當能進入數據庫

    然后
    /home/soft/mysql4/bin/mysql -uroot -pr00t2005 -hlocalhost
    進入 mysql
    此時為何不用pdns用戶呢,因為它目前什么數據庫操作的權限都沒有。

    Create database pdns;
    use pdns;

    create table domains (
     id   INT auto_increment,
     name   VARCHAR(255) NOT NULL,
     master   VARCHAR(20) DEFAULT NULL,
     last_check  INT DEFAULT NULL,
     type   VARCHAR(6) NOT NULL,
     notified_serial INT DEFAULT NULL,
     aclearcase/" target="_blank" >ccount         VARCHAR(40) DEFAULT NULL,
     primary key (id)
    )type=InnoDB;

    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)
    )type=InnoDB;

    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
    );

    GRANT SELECT ON supermasters TO pdns;
    GRANT ALL ON domains TO pdns;
    GRANT ALL ON records TO pdns;
    這個時候,俺們很吝嗇地給了點兒權限給pdns用戶。
    不過,在俺們要使用管理前臺時,必須還大方些,不然它不干活兒。


    插入一些數據:
    INSERT INTO domains (name, type) values ('test.com', 'NATIVE');
       INSERT INTO records (domain_id, name, content, type,ttl,prio)
       VALUES (1,'test.com','localhost ahu@ds9a.nl 1','SOA',86400,NULL);
       INSERT INTO records (domain_id, name, content, type,ttl,prio)
       VALUES (1,'test.com','dns-us1.powerdns.net','NS',86400,NULL);
       INSERT INTO records (domain_id, name, content, type,ttl,prio)
       VALUES (1,'test.com','dns-eu1.powerdns.net','NS',86400,NULL);
       INSERT INTO records (domain_id, name, content, type,ttl,prio)
       VALUES (1,'www.test.com','199.198.197.196','A',120,NULL);
       INSERT INTO records (domain_id, name, content, type,ttl,prio)
       VALUES (1,'mail.test.com','195.194.193.192','A',120,NULL);
       INSERT INTO records (domain_id, name, content, type,ttl,prio)
       VALUES (1,'localhost.test.com','127.0.0.1','A',120,NULL);
       INSERT INTO records (domain_id, name, content, type,ttl,prio)
       VALUES (1,'test.com','mail.test.com','MX',120,25);


    此時開始配置文件
    cd /home/soft/pdns/etc
    前面編譯完后有個標準這里應當有 pdns-dist.conf
    cp pdns-dist.conf pdns.conf

    加上如下幾行:
    launch=gmysql
    #配置連mysql之本地址配為127.0.0.1,于是才不致出現雞蛋誰先有的問題(即無需再解析)
    gmysql-host=127.0.0.1
    gmysql-user=pdns
    gmysql-password=pdns
    gmysql-dbname=pdns

    啟動 pdns
    #如果報錯說找不到mysql相關的so
    #/sbin/ldconfig /home/soft/mysql4/lib/mysql
    cd /home/soft/pdns
    cd sbin
    ./pdns_server --daemon

    pdns_server 會自己找到 ../etc 下的 pdns.conf 來使用的,呵呵。
    這樣就作為后臺進程執行了,這是手工啟動,別忘了放在隨主機一起啟動的腳本中
    另外,如果擔心它會死菜,可以用 supervise 來進行監視,呵呵,羅嗦了。
    想看調試信息,直接
    ./pdns_server
    就行
    以后不想看調試信息了,在前面 pdns 進行 configure 時,增加關閉調試信息的選項即可。


    還有就是用啟動腳本來啟動,前面編譯完后有執行腳本為 pdns ,它在 源程序目錄/pdns 下
    它當中已經記錄了安裝目錄
    例如你放在 /home/soft/pdns/bin 下,那么
    /home/soft/pdns/bin/pdns monitor
    然后是如下一堆東東打印在你的終端上讓你看,此時已經可以進行測試了。
    May 19 04:22:04 This is a standalone pdns
    May 19 04:22:04 Listening on controlsocket in '/var/run/pdns.controlsocket'
    May 19 04:22:04 UDP server bound to 127.0.0.1:53
    May 19 04:22:04 TCP server bound to 127.0.0.1:53
    May 19 04:22:04 PowerDNS 2.9.11 (C) 2001-2003 PowerDNS.COM BV (May 18 2005, 03:12:43) starting up
    May 19 04:22:04 PowerDNS comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to

    redistribute it according to the terms of the GPL version 2.
    May 19 04:22:04 Creating backend connection for TCP
    May 19 04:22:04 gmysql Connection succesful
    May 19 04:22:04 About to create 3 backend threads
    May 19 04:22:04 gmysql Connection succesful
    May 19 04:22:04 gmysql Connection succesful
    May 19 04:22:04 gmysql Connection succesful

    如果顯示connection 失敗,必然是你的配置文件中mysql的連接用戶及密碼寫錯了,或前述的用戶
    建得不對。

    /home/soft/pdns/bin/pdns start 是啟動,與前述手工進行/home/soft/pdns/sbin/pdns_server --daemon一樣

    這時進行測試,反正前面已經灌進了數據

      $ host www.test.com 127.0.0.1
      www.test.com         A 199.198.197.196
     
      $ host -v -t mx test.com 127.0.0.1
      Address: 127.0.0.1
      Aliases: localhost

      Query about test.com for record types MX
      Trying test.com ...
      Query done, 1 answer, authoritative status: no error
      test.com             120 IN MX 25 mail.test.com
      Additional information:
      mail.test.com        120 IN A 195.194.193.192

    當然你也可用 dig 進行測試:
    dig @127.0.0.1 www.test.com

    ; <<>> DiG 8.3 <<>> @127.0.0.1 www.test.com
    ; (1 server found)
    ;; res options: init recurs defnam dnsrch
    ;; res_nsend: Connection refused
    bsd# dig @127.0.0.1 www.test.com

    ; <<>> DiG 8.3 <<>> @127.0.0.1 www.test.com
    ; (1 server found)
    ;; res options: init recurs defnam dnsrch
    ;; got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10086
    ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
    ;; QUERY SECTION:
    ;;      www.test.com, type = A, class = IN

    ;; ANSWER SECTION:
    www.test.com.           2M IN A         199.198.197.196

    ;; Total query time: 214 msec
    ;; FROM: bsd.test.com to SERVER: 127.0.0.1
    ;; WHEN: Thu May 19 04:26:20 2005
    ;; MSG SIZE  sent: 30  rcvd: 46

    用nslookup也行,但要注意
    如果你將本機的/etc/resolv.conf中,nameserver設定為127.0.0.1
    直接進行nslookup 會有些問題。這與它的處理流程有關。
    它會先去米國的dns-root反解析127.0.0.1是不是一個合法的NameServer
    然后是當然地報錯。
    nslookup
    *** Can't find server name for address 127.0.0.1: Server failed
    *** Can't find server name for address ::: No response from server
    *** Default servers are not available
    此時可以這么辦——
    /etc/resolv.conf的內容還是用一個眾所周知的DNS做nameserver如211.94.33.194
    nslookup
    >server 127.0.0.1  #指定本機為要測試的nameserver
    >set type=A
    >www.test.com

    結果也會問出來的,于是證明安裝無誤。
    cd /usr/local/etc
    echo ":">startpdns.sh
    echo "">>startpdns.sh
    echo "/home/soft/pdns/sbin/pdns_server --daemon" >>startpdns.sh
    chmod +x startpdns.sh


    6. 安裝 pdns 管理前臺

    下載pdns管理前臺poweradmin1.x.x.tar.gz
    放在 /home/soft/www 下,解開,得到poweradmin.1.x.x目錄,改名為 PowerAdmin
    下面有README,一看就明白的。
    先把inc/config-block.inc.php拷貝成為config-inc.php
    在其中去更改相關參數:
    $dbhost = 'localhost'; //這個不用改
    $dbuser = '';//這里是pdns用戶
    $dbpass = '';//這里是pdns
    $dbdatabase   = ''; //這里是pdns庫
    $BASE_URL = "http://wwww.poweradmin.org";;  //URL前綴:如http://192.168.0.244
    $BASE_PATH = "/poweradmin.1.x.x/"  // 相對路徑:即剛才改的"/PowerAdmin/"

    此時,俺們要放手讓pdns去干活,于是需要mysql的管理前臺去大膽地給pdns分配對于pdns庫
    的權限,凡非管理性的權限都給它吧,如增刪改查,create/drop/alter等等。因為執行install.php時
    要建新表,所以要求pdns有建表的權限

    然后在確認apache啟動的情況下:
    訪問http://192.168.0.244/PowerAdmin/install.php
    它將建立應有的表/序列/索引等等??赡軙笠恍㎞otice,但只要顯示successfull即宣告成功。
    需要俺們在這里建立初始管理者及其口令等,要記住可別忘了。因為數據庫
    中將是MD5過后的密文。這里俺們建了pdnsadmin用戶,口令是pdnsadmin2005

    然后,你可以http://192.168.0.244/PowerAdmin/test_setup.php 來檢查一下,如有問題,
    頁面會有紅色框提示然后,需將install.php刪去或改名,不然index.php不干活。俺們
    把它改名為install.php.bk

    于是 http://192.168.0.244/PowerAdmin 俺們將看到index.php干活了。
    這時以先前的管理者及口令登入,即可看到一個test.com的域,那是俺們測pdns_server時測試用。
    你可以干掉,然后重新添加域及記錄。

    新建域時,缺省是按模板建立,然后,俺們會發現有些記錄中有非本域的內容,例如soa記錄中
    即不是本域的東東,可以修改它。那個域名其實是PowerAdmin作者的個人網站,俺們可訪問訪問,
    可以欣賞他們的家庭照片。

    7. 給 pdns 找個監工

    注意,俺聽說pdns_server有不干活而自行退出的情況,沒關系,俺們可以下載一個daemonTools
    來當監工監視著它干活。一旦它莫名退出,supervise會立即啟動它。
    關于daemonTools的使用非常簡單,俺在這里就不做詳述了。累。


    ——至此,俺們終于功德圓滿了。好生休息一下。
    ——后來俺用pdns-2.9.17,也沒有問題。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>