Mysql+Apache+php+MyDNS安装配置和管理

1.认识MyDNS

MyDNS是一个UNIX平台下的免费DNS服务器端软件。它被设计成直接从数据库中读取DNS记录的软件,并且修改记录后也可以及时生效。目前MyDNS支持的数据库有mysqlPostgreSql

mydnshttp://mydns.bboy.net/          mydnsconfighttp://www.mydnsconfig.org/


2.安装

安装素材: centos6.2apache2.4mysql5.5php5.5MyDNS-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,soarr

[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–background

[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

134452705.jpg

注:如果admin.php出现bug,而又不知道怎么解决,那么可以去下面url中下载无bug版本:https://github.com/grahamc/mydns-ng/blob/master/contrib/admin.php