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

如何使用Linux搭建全自動的虛擬主機(上)

  一般,作為一所高校都會為各院系、部門,及老師、學生提供虛擬主機服務。一般要求有一個二級域名,能由用戶自主管理,能支持PHP、jsp等動態網頁技術,並且需要給用戶一個空間限制,要求他們不能任意上傳大量文件。     對於熟悉Web的系統管理員實現以上要求並不困難:二級域名可以通過在域名系統做一個CNAME記錄,並在Apache的配置文件裡為其做一個基於名稱的虛擬主機實現;自主管理可以通過給每個用戶一個FTP賬號實現;支持PHP和JSP則可以通過安裝相應模塊實現。但是問題隨之而來,每次修改完Apache的配置文件後都要重新啟動Apache;在域名系統裡添加記錄後還要做ndc reload(Red Hat 9.0下為mdc reload);隨著用戶的增加,系統的httpd.conf文件變大,/etc/passwd文件裡的用戶變多,這樣一個大的系統對於管理、安全來說都是災難性的。     怎麼能高效、安全、方便地管理這樣一個系統呢?筆者作為一名高校的網絡管理員,經過仔細地研究和實踐,成功地利用自由軟件在Linux服務器上實現了該系統的自動管理。一切工作都可以在Web頁面上自助完成,系統會要求身份驗證,管理員通過Web頁面核對該用戶資料是否屬實,確認後可為用戶開通服務。目前該系統運行良好。     准備工作     1.軟件的選擇     按照需求提供服務是最基本的原則。這裡提供服務的實際環境為一台DNS/Web服務器(IBM x232),要求有固定IP。     這裡選擇Apache來提供虛擬Web服務。Apache是一個可自由使用、功能完備的Web服務器,被廣泛地應用,許多商業Web服務軟件都采用Apache作為前端服務軟件。Apache有各種模塊供用戶選擇,基本上能滿足用戶要求,這裡使用兩個重要的非默認模塊。     考慮現在普及的方式和系統成本,采用FTP來管理文件,實現用戶的自我管理。FTP服務軟件種類很多,選擇的原則是:不能使用系統賬號,安全性高,易用性強。經典的wu-ftpd在許多Unix平台是默認的FTP服務軟件,但其使用了系統賬號,安全性較差;與Red Hat搭配的vsftpd安全性高、穩定性好,但其易用性沒有達到本系統要求。所以最後選擇了proftpd。proftpd是一個非常流行的FTP服務軟件,配置方便,並有mysql和Quota模塊可供選擇,利用它們的完美結合可以實現非系統賬號的管理和用戶磁盤的限制。     用戶域名服務選擇Bind。可在Red Hat系統安裝時選擇Bind。     實現PHP動態網頁服務當然少不了PHP。JSP則采用Resin,沒有采用常見的Tomcat,主要是考慮Apache和Resin的結合會更好。當然,也可以選擇其它服務軟件。     最後還必須安裝MySQL軟件。安裝MySQL軟件可以在Red Hat系統安裝時進行,也可以安裝完系統後再手工安裝。這裡選擇手工編譯安裝,盡管RPM包安裝要方便很多,但手工編譯帶來的是更方便的選擇。     除以上軟件外,該系統還安裝了Zend Optimizer和mod_security。Zend Optimizer軟件不僅能提供加密代碼的執行,更關鍵的是能夠提高PHP代碼的執行效率。mod_security則是一個為了防范某些SQL注入攻擊行為的模塊。更多信息請參考相關資料。     2.軟件的下載     可將所有軟件都下載到/root/vhosts/下。     (1)Apache1.3.28     #wget ftp://ftp.linuxaid.com.cn/pub/mirrors/apache/dist/httpd/apache_1.3.28.tar.gz     (2)PHP4.3.3     #wget http://php.linuxaid.com.cn/get/php-4.3.3.tar.gz/from/cn.php.net/mirror     (3)MySQL4.0.16     #wget http://www.mysql.com/get/Downloads/MySQL-4.0/mysql-4.0.16.tar.gz/from/http://mysql.linuxforum.net/     (4)proftpd1.2.8     #wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.8.tar.gz     (5)proftpd-mod-quotatab-1.2.7     #wget http://www.castaglia.org/proftpd/modules/proftpd-mod-quotatab-1.2.7.tar.gz     (6)Resin2.1     #wget http://www.caUCho.com/download/resin-2.1.11.tar.gz     (7)Zend Optimizer     http://www.zend.com/store/getfreefile.php?pid=13&zbid=548     這裡要有一個Accept的用戶授權協議,然後才能下載。     (8)mod_security     #wget http://www.modsecurity.org/download/mod_security-1.6.tar.gz     系統安裝和配置     下面就進入具體的實現步驟。具體實現前請注意,安裝系統時要求選擇開發包,即把GCC及關聯軟件包選擇上。     1.DNS服務器的安裝     安裝Red Hat 9.0時需選擇服務器安裝方式,選擇域名服務,其它軟件均可不裝。安裝需要的安裝系統是安全的一個基本原則。     2.域名服務器的配置     首先將申請域名的解析權利交給該台DNS服務器。具體辦法是申請的時候要求把DNS解析權指向該服務器,然後可在其上配置域。     /etc/named.conf文件配置示例如下:     options {   Directory "/var/named";  };  zone "." in {   type hint;   file "named.root";  };  zone "0.0.127.in-addr.arpa" in {   type master;   file "localhost.rev";  };  zone "yourdomain.com" in {   type master;   file "yourdomain.hosts";  };  zone "176.118.202.in-addr.arpa" in {   type master;   file "176.rev";  };     域名裡面的yourdomain是配置的關鍵,將采用泛域名形式。     /var/named/yourdomain.hosts文件內容如下:  $TTL 3600  @ IN SOA hrbeu.hrbeu.edu.cn. root.mail.hrbeu.edu.cn. (   2003080812 ; serial   360000 ; refresh every 100 hours   3600 ; retry after 1 hour   4w ; eXPire after 4 weeks   3600 ; default ttl is 1 hours   ) ; Define the nameservers and mail servers   IN NS hrbeu.hrbeu.edu.cn.   IN NS lion.hrbeu.edu.cn.   IN MX 10 mail.yourdomain.com.  ; Define localhost  localhost IN A 127.0.0.1  ; Define hosts in this zone  *.yourdomain.com. IN A 218.7.43.21     其中主要用的就是這個*.yourdomain.com. IN A 218.7.43.21。以後任何像abc.yourdomain.com、hello.yourdomain.com的域名都將解析到218.7.43.21。這樣就不用每開一個虛擬主機都必須在域名系統上做一個CNAME記錄,並reload域名配置文件。特別要注意的是,*.yourdomain.com.後面有一個“.”。     3.MySQL的安裝和配置     (1)添加mysql用戶和mysql組     #cd /root/vhosts/  #groupadd mysql  #useradd -g mysql mysql     (2)編譯安裝     #tar -zxvf mysql-3.23.52.tar.gz  #cd mysql-3.23.52  #./configure --prefix=/usr/loca/mysql  #make  #make install     (3)初始化數據庫,修改目錄權限並啟動數據庫     #scripts/mysql_install_db  #chown -R root /usr/local/mysql  #chown -R mysql /usr/local/mysql/var  #chgrp -R mysql /usr/local/mysql  #cp support-files/my-medium.cnf /etc/my.cnf  #/usr/local/mysql/bin/safe_mysqld --user=mysql &     (4)設置MySQL自啟動     #cp support-files/mysql.server /etc/init.d/  #ln -s /etc/init.d/mysql.server /etc/rc3.d/S99mysqld     注意,修改mysql.server和S99mysqld為可執行。     為了方便以後進入MySQL,最好把MySQL的客戶端程序路徑加入到/etc/profile中。在該文件末尾加入export PATH=/usr/local/mysql/bin:$PATH。     到此MySQL的安裝已經完成,可以使用MySQL命令進入。注意要先退出再進入,因為已經修改/etc/profile,重新進入後才能自動搜索MySQL路徑。進入後,請注意修改MySQL的root密碼。命令如下:     #mysqladmin -u root passWord newpassword     注意,還應刪除自己的.bash_history文件,否則可能造成密碼洩露。     4.proftpd的安裝     (1)將proftpd的源碼包解壓縮到目錄下     #tar -zxvf proftpd-1.2.8.tar.gz     解壓縮mod_quotatab-1.2.7:     #tar -zxvf proftpd-mod-quotatab-1.2.7.tar.gz     進入mod_quotatab目錄,把mod_quotatab中的文件拷貝到proftpd的modules目錄中:     #cd mod_quotatab  #cp -Rpf * ../proftpd-1.2.8/modules     (2)在開始運行configure之前,先修改mod_sql_mysql.c文件     #cd ../proftpd-1.2.8/contrib  #vi mod_sql_mysql.c     把#include 改為實際路徑,如MySQL安裝在/usr/local/mysql下,將其修改為:     #include </usr/local/mysql/include/mysql/mysql.h>     (3)配置proftpd     #cd ..  #./configure--prefix=DIR  --with-modules=mod_sql:mod_sql_mysql:mod_quotatab:mod_quotatab_sql  --with-includes=DIR  --with-libraries=DIR     需要修改的三個地方是:     ◆--prefix=DIR,DIR為要安




Copyright © Linux教程網 All Rights Reserved