Mysql+Apache+php+MyDNS安装配置和管理
1.认识MyDNS
MyDNS是一个UNIX平台下的免费DNS服务器端软件。它被设计成直接从数据库中读取DNS记录的软件,并且修改记录后也可以及时生效。目前MyDNS支持的数据库有mysql和PostgreSql。
mydns:http://mydns.bboy.net/ mydnsconfig:http://www.mydnsconfig.org/
2.安装
安装素材: centos6.2、apache2.4、mysql5.5、php5.5、MyDNS-1.1
由于我系统中已经安装好apache+mysql+php,所以这里仅贴出简要安装命令供参考。
2.1mysql安装
[root@localhost zdh]# groupadd mysql
[root@localhost zdh]# useradd -g mysql -d /usr/local/mysql -s /sbin/nologin mysql
[root@localhost zdh]# tar zxvf mysql-5.5.tar.gz -C /usr/local/mysql
[root@localhost zdh]# mkdir -p /u1/mysql/{data,logs}
[root@localhost zdh]# chown -R mysql.mysql /u1/mysql
[root@localhost zdh]# chown -R mysql.mysql /usr/local/mysql
[root@localhost zdh]# cd /usr/local/mysql
修改my.cnf配置文件(略)
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql \
sql@localhost zdhpp/apache2--defaults-file=/usr/local/mysql/my.cnf
[root@localhost mysql]# cp support-files/my-medium.cnf /etc/my.cnf
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# bin/mysqld_safe --user=mysql &[建议使用mysqld启动]
2.2apache安装
[root@localhost zdh]# mkdir -p /usr/local/app/apache
[root@localhost zdh]# tar zxf httpd-2.4.6.tar.gz
[root@localhost zdh]# cd httpd-2.4.6
[root@localhost httpd-2.4.6]# ./configure -prefix=/usr/local/app/apache \
--enable-so --enable-rewrite--with-mysql=/usr/local/mysql --enable-proxy --with-ssl
[root@localhost httpd-2.4.6]# make;make install
[root@localhost httpd-2.4.6]# chown -R apache.apache /usr/local/app/apache
2.3php安装
[root@localhost zdh]# mkdir -p /usr/local/app/php
[root@localhost zdh]# tar zxf php-5.5.1.tar.gz
[root@localhost zdh]# cd php-5.5.1
[root@localhost php-5.5.1]#./configure --prefix=/usr/local/app/php \
--with-apxs2=/usr/local/app/apache/bin/apxs--with-mysql=/usr/local/mysql
[root@localhost php-5.5.1]# make;make install
2.4MyDNS安装
[root@localhost zdh]# mkdir -p /usr/local/app/mydns
[root@localhost zdh]# groupadd mydns
[root@localhost zdh]# useradd mydns -d /usr/local/app/mydns -s /sbin/nologin -g mydns
[root@localhost zdh]# tar zxf mydns-1.1.0.tar.gz
[root@localhost zdh]# cd mydns-1.1.0
[root@localhost mydns-1.1.0]# ./configure--prefix=/usr/local/mydns \
--with-mysql-lib=/usr/local/mysql/lib/mysql/\
--with-mysql-include=/usr/local/mysql/include/mysql/
[root@localhost mydns-1.1.0]# make;makeinstall
[root@localhost mydns-1.1.0]# cp contrib/*.php/usr/local/app/apache/htdocs/
[root@localhost mydns-1.1.0]# chown -Rmydns:mydns/usr/local/app/mydns
3.配置
3.1配置http.conf,使其支持php
User apache
Group apache
ServerName 192.168.1.108:8090
DirectoryIndex index.php index.html
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
3.2配置mysql,创建数据库mydns,表soa和rr
[root@localhost zdh]# mysql
mysql> createdatabase mydns;
mysql> use mydns;
mysql> grant all privileges on mydns.* to mydns@'%' identified by'mydns';
mysql> flush privileges;
mysql> CREATE TABLE `soa` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`origin` char(255) NOT NULL,
`ns` char(255) NOT NULL,
`mbox` char(255) NOT NULL,
`serial` int(10) unsigned NOT NULL DEFAULT '20130806',
`refresh` int(10) unsigned NOT NULL DEFAULT '1800',
`retry` int(10) unsigned NOT NULL DEFAULT '7200',
`expire` int(10) unsigned NOT NULL DEFAULT '604800',
`minimum` int(10) unsigned NOT NULL DEFAULT '300',
`ttl` int(10) unsigned NOT NULL DEFAULT '1800',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
mysql> CREATE TABLE `rr` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`zone` int(10) unsigned NOT NULL,
`name` char(64) NOT NULL,
`type` enum('A','AAAA','CNAME','HINFO','MX','NS','PTR','RP','SRV','TXT') NOT NULL,
`data` char(128) NOT NULL,
`aux` int(11) NOT NULL,
`ttl` int(11) NOT NULL DEFAULT '3600',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
mysql> \q
3.3配置MyDNS
[root@localhost zdh]# vim /etc/mydns.conf
db-host = 192.168.1.108 # SQL server hostname
db-user = mydns # SQL server username
db-password = mydns # SQL server password
database = mydns # MyDNS database name
user = mydns # Run with the permissionsof this user
group = mydns # Run with the permissions of this group
listen = 192.168.1.108 # Listen on these addresses ('*' for all)
recursive = 8.8.8.8 # Location of recursive resolver
[root@localhost zdh]# chown -R mydns:mydns /etc/mydns.conf
[root@localhost zdh]# vim /usr/local/app/apache/htdocs/admin.php
$dbhost = "192.168.1.108";
$dbuser = "mydns";
$dbpass = "mydns";
$dbname = "mydns";
[root@localhost zdh]# chown apache:apache /usr/local/app/apache/htdocs/*
4.测试
4.1 启动服务
[root@localhost zdh]#/usr/local/app/apache/bin/apachectl start
[root@localhost zdh]#/usr/local/app/php/sbin/php-fpm
[root@localhost zdh]# /usr/local/app/mydns/sbin/mydns�Cbackground
[root@localhost zdh]#/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/my.cnf &
4.2 测试
http://192.168.1.108:8090/admin.php
注:如果admin.php出现bug,而又不知道怎么解决,那么可以去下面url中下载无bug版本:https://github.com/grahamc/mydns-ng/blob/master/contrib/admin.php