在Debian Lenny上安装MyDNS-NG&MyDNSConfig 3
版本1.0
作者:Falko Timme
在本教程中,我将介绍如何在Debian Lenny上安装和配置MyDNS-NG和MyDNSConfig 3 。 MyDNS-NG(基于最初由Don Moore 撰写的 MyDNS - http://mydns.bboy.net/ )是使用MySQL数据库作为后端而不是配置文件的DNS服务器,例如Bind或djbdns。 优点是MyDNS只是从数据库中读取记录,当DNS记录更改或区域被创建/编辑/删除时,不必重新启动/重新加载。 可以通过安装访问同一数据库的MyDNS的第二个实例来轻松设置辅助Nameservers,或者更多冗余,使用MySQL主/从复制功能将数据复制到辅助Nameservers。
MyDNSConfig是一个易于使用的基于Web的界面,MyDNS-NG。 MyDNSConfig可以创建MyDNS中可用的所有类型的DNS记录,并添加用户管理和访问权限等功能。
我不会保证这将为您工作!
1初步说明
在本教程中,我使用IP地址为192.168.0.100
的hostname server1.example.com
。 这些设置可能会有所不同,因此您必须在适当的情况下更换它们。
2安装MySQL
我们可以安装MySQL,如下所示:
aptitude install mysql-client mysql-server
您将被问到以下问题:
MySQL“root”用户的新密码:
< - yourrootsqlpassword
重复MySQL“root”用户的密码:
< - yourrootsqlpassword
3安装Apache2,PHP,phpMyAdmin
MyDNSConfig需要一个支持PHP的Web服务器; 所以我安装Apache2。 我也安装phpMyAdmin,以便稍后通过Web界面访问数据库(尽管这是可选的):
aptitude install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick vlogger
您将看到以下问题:
Web服务器自动重新配置:
< - apache2
然后运行以下命令启用Apache模块suexec
, 重写
, ssl
, actions
和include
:
a2enmod suexec rewrite ssl actions include
删除/etc/phpmyadmin/htpasswd.setup
文件来保护phpMyAdmin ...
rm -f /etc/phpmyadmin/htpasswd.setup
...并删除或注释掉/etc/phpmyadmin/apache.conf中的以下部分:
vi /etc/phpmyadmin/apache.conf
[...] # # Authorize for setup # <Files setup.php> # # For Apache 1.3 and 2.0 # <IfModule mod_auth.c> # AuthType Basic # AuthName "phpMyAdmin Setup" # AuthUserFile /etc/phpmyadmin/htpasswd.setup # </IfModule> # # For Apache 2.2 # <IfModule mod_authn_file.c> # AuthType Basic # AuthName "phpMyAdmin Setup" # AuthUserFile /etc/phpmyadmin/htpasswd.setup # </IfModule> # Require valid-user # </Files> [...] |
之后重新启动Apache:
/etc/init.d/apache2 restart
您现在可以访问http://server1.example.com/phpmyadmin/
或http://192.168.0.100/phpmyadmin/
下的phpMyAdmin
。
4安装MyDNS
在安装MyDNS之前,我们需要安装几个先决条件:
aptitude install g++ libc6 gcc gawk make texinfo libmysqlclient15-dev
MyDNS在Debian Lenny存储库中不可用,因此我们必须自己构建如下:
cd /tmp
wget http://heanet.dl.sourceforge.net/sourceforge/mydns-ng/mydns-1.2.8.27.tar.gz
tar xvfz mydns-1.2.8.27.tar.gz
cd mydns-1.2.8
./configure
make
make install
接下来我们为MyDNS创建启动/停止脚本:
vi /etc/init.d/mydns
#! /bin/sh # # mydns Start the MyDNS server # # Author: Philipp Kern <phil@philkern.de>. # Based upon skeleton 1.9.4 by Miquel van Smoorenburg # <miquels@cistron.nl> and Ian Murdock <imurdock@gnu.ai.mit.edu>. # set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/local/sbin/mydns NAME=mydns DESC="DNS server" SCRIPTNAME=/etc/init.d/$NAME # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 case "$1" in start) echo -n "Starting $DESC: $NAME" start-stop-daemon --start --quiet \ --exec $DAEMON -- -b echo "." ;; stop) echo -n "Stopping $DESC: $NAME" start-stop-daemon --stop --oknodo --quiet \ --exec $DAEMON echo "." ;; reload|force-reload) echo -n "Reloading $DESC configuration..." start-stop-daemon --stop --signal HUP --quiet \ --exec $DAEMON echo "done." ;; restart) echo -n "Restarting $DESC: $NAME" start-stop-daemon --stop --quiet --oknodo \ --exec $DAEMON sleep 1 start-stop-daemon --start --quiet \ --exec $DAEMON -- -b echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 exit 1 ;; esac exit 0 |
然后我们使脚本可执行并为其创建系统启动链接:
chmod +x /etc/init.d/mydns
update-rc.d mydns defaults