1. 程式人生 > >Ubuntu下的Apache2虛擬主機的配置

Ubuntu下的Apache2虛擬主機的配置

1、Apache2的配置檔案

<1>Ubuntu中Apache的配置檔案是//etc/apache2/apache2.conf。Apache在啟動時會找到這個檔案並自動讀取該檔案中的配置資訊,而其他配置檔案則是通過include指令包含進來的,在apache2.conf 中可以看到這些引入行。當然,也可以將所有的配置全放在apache2.conf或者httpd.conf或者其他檔案中,Apache這樣劃分是一種比較好的習慣。
<2>在/etc/apache2目錄下,發現了sites-enabled目錄,然而還有一個sites-available目錄,那麼這兩個目錄到底有什麼作用呢?其實,sites-available這個目錄包含Apache虛擬主機的配置檔案。虛擬主機允許Apache配置多個站點併為每個站點配置不同的引數。而sites-enabled目錄的作用是持有/etc/apache2/sites-available目錄下檔案的連結。當Apache重啟後,該目錄中包含的站點將會被啟用。如果apache上配置了多個虛擬機器,每個虛擬機器的配置檔案都放在sites-available下,那麼對於虛擬主機的停用,啟動就是非常方便了,操作某個虛擬主機就不用動配置檔案了。
<3>在/etc/apache2下還用類似於sites-enabled和sites-available兩個目錄的mods-available和mods-enabled兩個目錄,那麼這兩個目錄有何作用呢?其實類似於sites-enabled和sites-available,mods-available這個目錄包含模組和模組配置檔案,不是所有的模組都有配置檔案。比如當apt-get install php5安裝了php模組,在這兩個目錄中就有了php5.load、php5.conf和指向這兩個檔案的連結。這對於apache開啟停用某個模組是非常方便的。
<4>在/etc/apache2目錄下,還有一個檔案ports.conf,這個檔案配置Apache監聽的埠
<5>在Ubuntu預設安裝的目錄有與其他相比有一點不同。在ubuntu中module和 virtual host的配置都有兩個目錄,一個是available,一個是enabled,available目錄是存放有效的內容,但不起作用,只有用ln 連到enabled過去才可以起作用。

2、什麼是虛擬主機?

所謂虛擬主機,就是把一臺執行在網際網路上的伺服器劃分成多個“虛擬”的伺服器,每一個虛擬主機都具有獨立的域名和完整的Internet伺服器(支援WWW、FTP、E-mail等)功能。再簡單的說,就是同一臺伺服器可以同時處理超過一個域名(domain)。假設www.example1.com和www.example2.com兩個域名都指向同一個伺服器,而web伺服器又支援虛擬主機,那麼www.example1.com和www.example2.com可以訪問到同一伺服器上不同的web空間。

3、Apache2的安裝

<1>安裝Apache2

sudo
apt-get install apache2

<2>Apache2安裝完成後,在自己的Ubuntu上訪問localhost,就可以訪問到如下介面:

這是因為apache2的/etc/apache2/sites-avaliable下面有一個000-default.conf,vim開啟此配置檔案之後:

NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/

說明web文件預設存放在/var/www下,果然在下面有一個index.html,就是我們剛才顯示的內容。
<3>訪問到如上內容,說明apache2安裝成功了,我們開始建虛擬主機了,虛擬主機可以基於三種方式來建 :域名,埠,ip地址。下面詳細分別介紹三種方法。

4、基於域名來新建虛擬主機

<1>自己取好域名,將其新增到/etc/hosts檔案中:

第三行是我自己新增的,ip是我的Ubuntu的ip,後面的域名是我隨便起的。
<2>建立自己的專案目錄,預設的目錄是/var/www,你也可以在這個下面建,也可以自己新建,下面是我新建的目錄,並且自己隨便寫了一個index.html

<3>進入/etc/apache2/sites-available新建my_test01.conf,我們可以複製000.default.conf,然後修改主要資訊就可以了:新增Servername,修改DocumentRoot。

<4>進入/etc/apache2/sites-enable建立軟連線:

<5>修改/etc/apache2.conf,賦予訪問該目錄的許可權:

<6>重啟apache2服務:

sudo /etc/init.d/apache2 restart

如果重啟失敗。要看看log,然後去修改相應的行。
<7>訪問測試:

<8>分析一下過程:訪問域名,首先會因為hosts檔案去訪問對映的ubuntu的ip地址,又因為安裝了apache2,訪問ubuntu的ip又會訪問apache2伺服器,伺服器上的配置檔案中分析到這個域名是訪問的專案目錄下的html檔案,所以結果是這樣。

5、基於埠來訪問

<1>基本的目的是訪問192.168.114.134來到test頁面,訪問192.168.114.134:6001來到secondtest頁面
<2>和之前一樣,新增hosts檔案中新的域名
<3>建立專案目錄,修改html檔案
<4>新建/etc/apache2/sites-available/my_test02.conf,修改如下:

<5>監聽6001埠:修改ports.conf:

<6>重啟服務並訪問測試:

6、基於ip地址新建虛擬機器

<1>再給ubuntu建立一塊網絡卡,設定ip為192.168.114.135,本來的是192.168.114.134

<2>同樣的像之前一樣,建立第三個測試檔案index.html,和之前一樣,新增進hosts檔案,然後在etc/apache2/sites-available/下面建立my_test03.conf,修改為:

<3>建立軟連線,之後修改apache2.conf,賦予許可權,測試如下: