Apache下域名虛擬主機在我的主頁目錄上實現過程
實驗背景:
實驗步驟:
1、 Apache的安裝(開發源代碼應用程序的編譯安裝)
RHEL4默認安裝了Apache服務,根目錄在/etc/httpd/下,主配置文件在/etc/httpd/conf/httpd.conf下,文檔根目錄在/var/www/html/,啓動腳本爲/etc/init.d/httpd中。
本實驗經過編譯安裝的方式安裝Apache服務程序。
注意:安裝完成以後,在Linux系統中有兩套Apache服務程序,並且二者都能爲用戶提供WEB服務,啓用那個服務,那個Apache程序就爲用戶提供服務。而在現實環境中,兩個都是存在的,默認安裝的做爲編譯安裝的備份,配置過程當中可將二者都配置成同樣,當其中的一個壞掉以後能夠直接啓用另一個。能夠作到冗餘備份的做用。而在Windows下在一臺主機上安裝兩臺WEB服務器是不可能的,除非作羣集實現。
一、 確認系統中已經安裝了編譯環境
對任何應用程序的源代碼進行編譯安裝以前都須要確認當前系統中已經安裝了gcc編譯器環境。
注意:若是沒有安裝編譯環境能夠經過在應用程序管理器工具中選中「Development Tools」單擊「update」按鈕,而後按提示從第四張光盤開始安裝直到完成。
二、 下載Apache程序的源代碼安裝包文件
爲了與RHEL4系統中的Apache版本保持基本一致,可使用下面的命令下載Apache服務器的2.0.59版的源代碼軟件包。
注意:Apache服務器有1.X和2.X兩個版本,1.X版本目前最高的是1.3,這個版本對之前的老版本有較好的兼容性。運行也是至關的穩定。2.X版本相對於1.X版本增長了更多的功能特性,對於新創建的應用系統,Apache的2.X版本是一個不錯的選中。目前Apache的2.X版本有2.0和2.2兩個主要版本,2.2版本增長了不少新特性,但2.0版本相對於2.2較穩定。
本實驗中已下載好了,掛載到/mnt/hgfs/liunx/目錄下。
三、 釋放已下載的源代碼軟件包文件
將已下載的http源碼包複製到目錄「/usr/local/srv/」中,該目錄一般用於保存須要編譯的程序源代碼(目錄)。在「/usr/local/src」中使用tar命令將源代碼軟件包釋放。
在安裝以前最好檢查一下Linux系統時間,系統時間要大於一些安裝包的時間才行。設置方法以下:
解壓以後,查看解壓的文件看是否有目錄http-2.0.59,而後進入這個目錄。
四、 編譯前的配置
在httpd的源代碼目錄中使用「./configure」命令完成編譯前的配置工做。首先查看一下是否具備configure這個命令。
在「./configure」命令中須要使用命令選項對Apache服務器進行配置,命令含義的選項以下:
「--prefix」設置了程序安裝目錄的絕對路徑。若是不設置就安裝到默認路徑「/usr/local/bin」中。
「--ebable-so」選項設置了Apache服務器可使用動態加載模塊功能。
「--enable-rewrite」選項設置了Apache服務器具備rewrite功能。rewrite功能能夠實現對動態網頁地址的重寫,從而使網頁訪問者能夠經過更加簡單和容易記憶的網頁地址訪問動態網頁系統中的頁面。
五、 程序編譯過程
在使用configure命令對prozilla的源代碼進行配置後,須要使用make命令進行程序的二進制編譯。該過程是真正將程序源代碼轉換爲可執行程序的過程。
六、 程序安裝過程
「make install」命令將按照configure命令的「--prefix」選項中設定的安裝路徑將已編譯完成的應用程序安裝到目標目錄apache2中。安裝完成以後會在「/usr/local」下多出一個apache2目錄。
經過「du –sh」命令能夠查看apache2目錄的大小。
7、啓動httpd服務程序
安裝完成以後,須要從新啓動已安裝的Apache服務程序,bin目錄下的appachel是Apache服務器的啓動腳本,使用start做爲參數將啓動httpd服務程序。
注意:千萬不要使用「service httpd start」或「/etc/rc.d/init.d/httpd start」啓動Apache服務,由於這兩個都會啓動默認安裝Apache服務程序。
當httpd服務器程序啓動後,可使用網頁瀏覽器訪問Apache服務器的地址,若是顯示下面的內容,則證實http服務已經成功啓動。
注意:這個頁面顯示的是「/usr/local/apache2/htdocs/」下的index.html.var頁面。這個目錄是Apache的文檔目錄,默認裏面沒有index.html,而主頁文檔(在httpd.conf中的DirectoryIndex選項)默認有兩個,一個爲index.html,另外一個爲index.html.var,在最前面的優先顯示。
爲了更好地理解主頁的意義,能夠在htdocs目錄下建立一個index.html主頁。而後經過IE瀏覽器進行顯示。
2、 Apache的全局配置
在實際的應用系統中,Apache服務器須要設置爲在Liunx系統啓動時自動運行,所以須要將apachectl腳本的啓動命令寫入rc.local文件。在rc.local文件中加入以上apachectl命令後,每次系統啓動時都將自動啓動Apache服務器。
編輯http.conf文檔中的全局配置。
ServerRoot 設置了Apache服務器的根目錄,該目錄中包括了服務器運行必需的目錄和文件。
Timeout用於設置Apache服務器與瀏覽器之間網絡鏈接的超時秒數,默認爲300s。
KeepAlive設置爲on時,保持客戶端與服務器直接的鏈接功能,能夠請求一次傳輸多個文件。
MaxkeepAliveRequests設置客戶端請求相應的最大文件數
KeepAliveTimeout 客戶端兩次請求須要間隔的最大時間爲*秒
設置Apache服務器監聽的網絡端口號,默認爲80。
ServerAdmin用於設置Apache服務器管理員的E-mail地址,能夠經過E-mail地址及時聯繫Apache服務器管理員。
DocumentRoot用於設置Apache服務器網頁(文檔)根目錄在Linux系統中的實際目錄。
UserDir 設置用戶的我的主頁目錄爲public_html,即全部系統用戶的宿主目錄下若是有名爲public_html的子目錄,該目錄將做爲用戶在Apache服務器中我的主頁的文檔根目錄。
AddDefaultCharset GB2312 設置服務器的默認編碼爲GB2312
ServerName設置Apache服務器的主機名。
3、 域名虛擬主機的配置
爲了更好地管理和測試虛擬主機,本實驗將我的主頁的根目錄做爲每個虛擬主機的默認目錄。這樣一來能夠經過測試我的主頁來測試虛擬目錄的可用性,二來也方便虛擬主機目錄權限的分配。
一、 設置我的主頁目錄(一樣也是虛擬主機目錄)的訪問權限
在httpd.conf中有默認的配置權限,只不過都被註釋掉了,須要將註釋去掉。以下:
須要修改的是在「Indexes」前加一個「-」便可。
2、建立系統用戶
建立用戶xiaonuo和dreamfire,並在各宿主目錄下添加public_html目錄,而後在public_html目錄下添加主頁用於測試。
因爲Liunx系統對用戶的宿主目錄默認設置了比較嚴格的訪問權限,所以須要爲其餘用戶增長進入宿主目錄的權限,以便Apache服務器可以有權限訪問用戶宿主目錄中public_html子目錄。
三、 域名虛擬主機的配置
在Apache服務器的httpd.conf配置文件中進行域名虛擬主機的設置內容。默認有配置模板
配置項的含義以下:
使用<VirtualHost 200.200.200.200>和</VirtualHost>創建在地址「200.200.200.200」上的虛擬主機區域;
在創建的虛擬主機區域中,使用ServerName設置當前虛擬主機所使用的域名;使用DocumentRoot設置當前主機所使用的文檔根目錄也就是我的主頁的根目錄;
設置完成以後,使用apachectl –t能夠查看對httpd.conf的語法進行檢測。
配置完成以後,須要從新啓動apachectl服務。http.conf中的修改才能生效。
四、 測試虛擬主機的連通性
注意:配置虛擬主機,須要DNS服務器的支持,本實驗中使用windows server 2003搭建了一臺DNS服務器,也能夠經過在客戶機Linux的/etc/hosts文件中添加
www.xiaonuo.com
和
www.dreamfire.com/
的地址解析記錄。或者在Windows系統目錄%systemroot%\system32\drivers\etc\hosts中添加地址解析記錄便可訪問。