LAMP应用之Mydns
Mydns
为便于管理dns服务器,今天我们来搭建一个dns服务器,我们还是在前面所说的LAMP环境下实现它,它需要通过网页实现对dns的管理(dns内容信息存在于mysql数据库内,这里我们使用mydnconfig),这种简单的交互式管理界面,方便了我们对dns的管理使用。
搭建所需要安装服务有:(搭建环境红帽5.4)
LAMP环境(前面已经有详细介绍)
mydns-1.1.0
MyDNSConfig-1.1.0(只是一个web管理工具)
在LAMP环境搭建完整的前提下,接下来我们就去安装mydns:
同样的解压,编译并安装
[root@localhost ~]# tar -zxvf mydns-1.1.0.tar.gz -C /usr/local/src/
[root@localhost ~]# cd /usr/local/src/mydns-1.1.0/
[root@localhost mydns-1.1.0]# ./configure --prefix=/usr/local/mydns
Make
Make install
接下来执行make conf 来生成mydns的配置文件
接下来去编辑mydns的配置文件/etc/mydns.conf
登录我们之前我们搭建好的mysql数据库,添加用户并创建mydns数据库,这里最好给用户所有权限
下图为mydns用户和数据库
至于mydns内的表等我们用到时再去创建
接下来去安装mydnsconfig
[root@localhost ~]# tar -zxvf MyDNSConfig-1.1.0.tar.gz -C /usr/local/src/
创建一个mydnsconfig目录
[root@localhost MyDNSConfig-1.1.0]# mkdir /usr/share/mydnsconfig/
[root@localhost lib]# ln -s /usr/share/mydnsconfig/web/ /usr/local/apache/htdocs/mydnsconfig编辑/mydnsconfig/lib/config.inc.php(更改一个登录密码)
[root@localhost MyDNSConfig-1.1.0]# mkdir /var/lib/mysql/
[root@localhost MyDNSConfig-1.1.0]# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
创建域表以及记录表等,这里直接可以使用MyDNSConfig自带的脚本来快速创建
(创建之前需要我们去做上面两个步骤)
[root@localhost MyDNSConfig-1.1.0]# mysql -u mydns -p mydns < install/mydnsconfig.sql
Enter password:
[root@localhost MyDNSConfig-1.1.0]# /usr/local/mydns/sbin/mydns &
[1] 27721
重启其他服务
打开浏览器输入http://192.168.129.251/mydnsconfig会出现下面的错误
通过上网查看资料得知
错误解释:
如果这样使用函数(或者类)的话,会产生一个 PHP Fatal error:
foo(&$var);
实际上,这样用法在php5.3中就会有提示,只是之前的仅仅会提示Deprecated而已。
view plaincopy to clipboardprint?
// 正确写法
function myFunc(&$arg) { do something... }
myFunc($var);//Call myFunc
//错误写法
function myFunc($arg) { do something... }
myFunc(&$arg);//Call myFunc
php.ini中allow_call_time_pass_reference参数的意思
从php手册中可以找到:allow_call_time_pass_reference boolean,在PHP5.3里是一个警告可以用:
allow_call_time_pass_reference = On
来去掉,但是在PHP5.4里就成了一个错误,得修改,如下:
函数原型:
private function encodeRecommendListHtmlTags($targetname = 'video', &$list)
{
}
以前调用:$this->encodeRecommendListHtmlTags($target, &$list);
修改调用:$this->encodeRecommendListHtmlTags($target, $list); //去掉这个&符号。
按照大家所提供的解决办法,应该就差不多了吧