Linux下虛擬域名的實(shí)現(xiàn)(3)
添加時(shí)間:2010-11-9
添加:
admin
目前Linux操作系統(tǒng)十分火爆,所以很多朋友希望了解一下Linux下虛擬域名的實(shí)現(xiàn)過(guò)程。下面就基于目前比較流行的RedHat來(lái)討論一下。三、CGI程序的編制
要實(shí)現(xiàn)虛擬域名的在線申請(qǐng),就必須編寫(xiě)相應(yīng)CGI程序動(dòng)態(tài)修改獨(dú)立的配置文件(即上面的vhostdbm文件)和進(jìn)行用戶(hù)的管理(包括用戶(hù)申請(qǐng),登錄,密碼修改等等)。在此只介紹對(duì)獨(dú)立的配置文件的操作,其他屬于如何用Perl語(yǔ)言來(lái)編寫(xiě)CGI程序,請(qǐng)參考有關(guān)資料。
vhostdbm文件使用dbm格式來(lái)記錄數(shù)據(jù),與用普通文本文件相比可加快尋找速度,而且易于修改。許多UNIX系統(tǒng)都具有叫做dbm(database management)的標(biāo)準(zhǔn)庫(kù)。該庫(kù)將鍵-值對(duì)的集合存貯到一對(duì)磁盤(pán)文件中,提供簡(jiǎn)單的數(shù)據(jù)庫(kù)管理工具,可以方便的更改、新增或刪除數(shù)據(jù)內(nèi)容。
Perl訪問(wèn)dbm的方式:通過(guò)一個(gè)類(lèi)似于打開(kāi)文件的進(jìn)程將關(guān)聯(lián)數(shù)組與dbm數(shù)據(jù)庫(kù)聯(lián)系起來(lái)。在數(shù)組中創(chuàng)建新元素時(shí)立即就更改了dbm數(shù)據(jù)庫(kù)。刪除一個(gè)元素的同時(shí)也刪除了dbm數(shù)據(jù)庫(kù)中的數(shù)值。可使用:
1、欲將dbm數(shù)據(jù)庫(kù)與dbm數(shù)組相關(guān)聯(lián)起來(lái):
dbmopen(%arrayname,"dbmfilename",$mode);
如果dbmfilename不存在的話就新建該庫(kù)。%arrayname參數(shù)是Perl的關(guān)聯(lián)數(shù)組(如果這個(gè)數(shù)組已經(jīng)有值,那么這些值就被刪除)。該關(guān)聯(lián)數(shù)組連接到叫做dbmfilename的dbm數(shù)據(jù)庫(kù)中。$mode 參數(shù)是當(dāng)需要?jiǎng)?chuàng)建庫(kù)時(shí)控制庫(kù)文件權(quán)限的數(shù)字,該數(shù)字被指定為8制,經(jīng)常被用到的是0644,給除了機(jī)主之外的新用戶(hù)以只讀的權(quán)限,機(jī)主可有全部權(quán)限。
2、關(guān)閉dbm庫(kù):
dbmclose(%arrayname);
%arrayname 是已經(jīng)與dbm庫(kù)關(guān)聯(lián)了的數(shù)組名。
例6、VHOST打開(kāi)vhostdbm,或新建一個(gè)dbm庫(kù):
dbmopen(%VHOST,"vhostdbm",0644);
例7、新建記錄或更改已有記錄(設(shè)從html文件form中傳過(guò)來(lái)的參數(shù)名為vhost、rhost):
$VHOST{$FORM{'vhost'}}=$FORM{'rhost'};
例8、刪除已有記錄(設(shè)從html文件form中傳過(guò)來(lái)的參數(shù)名為vhost):
delete $VHOST{$FORM{'vhost'}};
例9、關(guān)閉vhostdbm:
dbmclose(%VHOST);
要實(shí)現(xiàn)虛擬域名的在線申請(qǐng),就必須編寫(xiě)相應(yīng)CGI程序動(dòng)態(tài)修改獨(dú)立的配置文件(即上面的vhostdbm文件)和進(jìn)行用戶(hù)的管理(包括用戶(hù)申請(qǐng),登錄,密碼修改等等)。在此只介紹對(duì)獨(dú)立的配置文件的操作,其他屬于如何用Perl語(yǔ)言來(lái)編寫(xiě)CGI程序,請(qǐng)參考有關(guān)資料。
vhostdbm文件使用dbm格式來(lái)記錄數(shù)據(jù),與用普通文本文件相比可加快尋找速度,而且易于修改。許多UNIX系統(tǒng)都具有叫做dbm(database management)的標(biāo)準(zhǔn)庫(kù)。該庫(kù)將鍵-值對(duì)的集合存貯到一對(duì)磁盤(pán)文件中,提供簡(jiǎn)單的數(shù)據(jù)庫(kù)管理工具,可以方便的更改、新增或刪除數(shù)據(jù)內(nèi)容。
Perl訪問(wèn)dbm的方式:通過(guò)一個(gè)類(lèi)似于打開(kāi)文件的進(jìn)程將關(guān)聯(lián)數(shù)組與dbm數(shù)據(jù)庫(kù)聯(lián)系起來(lái)。在數(shù)組中創(chuàng)建新元素時(shí)立即就更改了dbm數(shù)據(jù)庫(kù)。刪除一個(gè)元素的同時(shí)也刪除了dbm數(shù)據(jù)庫(kù)中的數(shù)值。可使用:
1、欲將dbm數(shù)據(jù)庫(kù)與dbm數(shù)組相關(guān)聯(lián)起來(lái):
dbmopen(%arrayname,"dbmfilename",$mode);
如果dbmfilename不存在的話就新建該庫(kù)。%arrayname參數(shù)是Perl的關(guān)聯(lián)數(shù)組(如果這個(gè)數(shù)組已經(jīng)有值,那么這些值就被刪除)。該關(guān)聯(lián)數(shù)組連接到叫做dbmfilename的dbm數(shù)據(jù)庫(kù)中。$mode 參數(shù)是當(dāng)需要?jiǎng)?chuàng)建庫(kù)時(shí)控制庫(kù)文件權(quán)限的數(shù)字,該數(shù)字被指定為8制,經(jīng)常被用到的是0644,給除了機(jī)主之外的新用戶(hù)以只讀的權(quán)限,機(jī)主可有全部權(quán)限。
2、關(guān)閉dbm庫(kù):
dbmclose(%arrayname);
%arrayname 是已經(jīng)與dbm庫(kù)關(guān)聯(lián)了的數(shù)組名。
例6、VHOST打開(kāi)vhostdbm,或新建一個(gè)dbm庫(kù):
dbmopen(%VHOST,"vhostdbm",0644);
例7、新建記錄或更改已有記錄(設(shè)從html文件form中傳過(guò)來(lái)的參數(shù)名為vhost、rhost):
$VHOST{$FORM{'vhost'}}=$FORM{'rhost'};
例8、刪除已有記錄(設(shè)從html文件form中傳過(guò)來(lái)的參數(shù)名為vhost):
delete $VHOST{$FORM{'vhost'}};
例9、關(guān)閉vhostdbm:
dbmclose(%VHOST);
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶(hù)
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶(hù)的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無(wú)AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解