歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> Linux下虛擬域名的實現(3)

Linux下虛擬域名的實現(3)

日期:2017/3/6 15:39:04   编辑:關於Unix
目前 Linux 操作系統十分火爆,所以很多朋友希望了解一下Linux下虛擬域名的實現過程。下面就基於目前比較流行的RedHat來討論一下。三、CGI程序的編制 要實現虛擬域名的在線申請,就必須編寫相應CGI程序動態修改獨立的配置文件(即上面的vhos td bm文件)和進
目前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);

注:以上已經假設傳過來的參數經過了驗證,不存在重復的記錄,否則會導致已有記錄的混亂。

Copyright © Linux教程網 All Rights Reserved