目前Linux操作系统十分火爆,所以很多朋友希望了解一下Linux下虚拟域名的实现过程。下面就基于目前比较流行的RedHat来讨论一下。
三、CGI程序的编制
要实现虚拟域名的在线申请,就必须编写相应CGI程序动态修改独立的配置文件(即上面的vhostdbm文件)和进行用户的管理(包括用户申请,登录,密码修改等等)。在此只介绍对独立的配置文件的操作,其他属于如何用Perl语言来编写CGI程序,请参考有关资料。
vhostdbm文件使用dbm格式来记录数据,与用普通文本文件相比可加快寻找速度,而且易于修改。许多UNIX系统都具有叫做dbm(database management)的标准库。该库将键-值对的集合存贮到一对磁盘文件中,提供简单的数据库管理工具,可以方便的更改、新增或删除数据内容。
Perl访问dbm的方式:通过一个类似于打开文件的进程将关联数组与dbm数据库联系起来。在数组中创建新元素时立即就更改了dbm数据库。删除一个元素的同时也删除了dbm数据库中的数值。可使用:
1、欲将dbm数据库与dbm数组相关联起来:
dbmopen(%arrayname,"dbmfilename",$mode);
如果dbmfilename不存在的话就新建该库。%arrayname参数是Perl的关联数组(如果这个数组已经有值,那么这些值就被删除)。该关联数组连接到叫做dbmfilename的dbm数据库中。$mode 参数是当需要创建库时控制库文件权限的数字,该数字被指定为8制,经常被用到的是0644,给除了机主之外的新用户以只读的权限,机主可有全部权限。
2、关闭dbm库:
dbmclose(%arrayname);
%arrayname 是已经与dbm库关联了的数组名。
例6、VHOST打开vhostdbm,或新建一个dbm库:
dbmopen(%VHOST,"vhostdbm",0644);
例7、新建记录或更改已有记录(设从html文件form中传过来的参数名为vhost、rhost):
$VHOST{$FORM{'vhost'}}=$FORM{'rhost'};
例8、删除已有记录(设从html文件form中传过来的参数名为vhost):
delete $VHOST{$FORM{'vhost'}};
例9、关闭vhostdbm:
dbmclose(%VHOST);
注:以上已经假设传过来的参数经过了验证,不存在重复的记录,否则会导致已有记录的混乱。
请保留地址 http://www.qqread.com/linux/y516415020.html
更多内容请看Linux集群技术、体验Linux的音影世界、Linux驱动大全专题,或进入讨论组讨论。
三、CGI程序的编制
要实现虚拟域名的在线申请,就必须编写相应CGI程序动态修改独立的配置文件(即上面的vhostdbm文件)和进行用户的管理(包括用户申请,登录,密码修改等等)。在此只介绍对独立的配置文件的操作,其他属于如何用Perl语言来编写CGI程序,请参考有关资料。
vhostdbm文件使用dbm格式来记录数据,与用普通文本文件相比可加快寻找速度,而且易于修改。许多UNIX系统都具有叫做dbm(database management)的标准库。该库将键-值对的集合存贮到一对磁盘文件中,提供简单的数据库管理工具,可以方便的更改、新增或删除数据内容。
Perl访问dbm的方式:通过一个类似于打开文件的进程将关联数组与dbm数据库联系起来。在数组中创建新元素时立即就更改了dbm数据库。删除一个元素的同时也删除了dbm数据库中的数值。可使用:
1、欲将dbm数据库与dbm数组相关联起来:
dbmopen(%arrayname,"dbmfilename",$mode);
如果dbmfilename不存在的话就新建该库。%arrayname参数是Perl的关联数组(如果这个数组已经有值,那么这些值就被删除)。该关联数组连接到叫做dbmfilename的dbm数据库中。$mode 参数是当需要创建库时控制库文件权限的数字,该数字被指定为8制,经常被用到的是0644,给除了机主之外的新用户以只读的权限,机主可有全部权限。
2、关闭dbm库:
dbmclose(%arrayname);
%arrayname 是已经与dbm库关联了的数组名。
例6、VHOST打开vhostdbm,或新建一个dbm库:
dbmopen(%VHOST,"vhostdbm",0644);
例7、新建记录或更改已有记录(设从html文件form中传过来的参数名为vhost、rhost):
$VHOST{$FORM{'vhost'}}=$FORM{'rhost'};
例8、删除已有记录(设从html文件form中传过来的参数名为vhost):
delete $VHOST{$FORM{'vhost'}};
例9、关闭vhostdbm:
dbmclose(%VHOST);
注:以上已经假设传过来的参数经过了验证,不存在重复的记录,否则会导致已有记录的混乱。
请保留地址 http://www.qqread.com/linux/y516415020.html
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Linux集群技术 (8375篇文章)
- 体验Linux的音影世界 (8047篇文章)
- Linux驱动大全 (8847篇文章)
- Linux下的路由的配置与应用 (11847篇文章)
- Linux命令简介 (9900篇文章)
- Linux防火墙 (9727篇文章)
- Linux日志专题 (8501篇文章)
- Linux服务器的安全性能 (20483篇文章)
- 揭秘Linux内存管理 (8111篇文章)
- 解析Linux文件系统 (8313篇文章)
- 实用技巧:配置Linux操作系统环境变量 (30次浏览)
- 安装qmail全套功略 (18次浏览)
- TurboLinux 入门教程:第七课 TurboLinux简介 (18次浏览)
- Linux系统管理员秘技:用快捷命令一招制胜 (18次浏览)
- Linux系统命令分类详解 (1) (18次浏览)
- Linux下使用aMsn详解 (18次浏览)
- 你会在Linux下用POP3收Web电子邮箱吗? (18次浏览)
- 在Linux中用三款工具轻松制作网页 (18次浏览)
- Linux上的偷窺裝置 (1394的使用) (18次浏览)
- 深入浅出分析Linux内核漏洞的问题 (18次浏览)



