歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

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

目前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