盡管Ubuntu 是一種新興的Linux分支,但Ubuntu 組織卻為Apache提供了豐富的支持軟件,這些軟件都可以從發行版的光盤獲取,也可以從官方站點輕松下載。所以,Ubuntu非常適合作為Web服務器的平台。
一、 安裝Apache
下面,我們首先介紹如何安裝Apache。具體安裝命令如下所示:
$ sudo apt-get install apache2
然後運行Apache,命令如下所示:
$ sudo /etc/init.d/apache2 restart
Apache在安裝期間將會新建一個目錄:/var/www,該目錄是該服務器中存放文檔的根目錄。只要在浏覽器的地址欄輸入http://localhost/或機器的IP地址就能訪問放置在此目錄中的所有文檔。
二、 安裝PHP
PHP是一種流行的服務器端腳本語言,一般與MySQL或 Postgres結合起來用於管理Web內容、blog和論壇。下面介紹其安裝方法,其實它的安裝也很簡單,命令如下所示:
$ sudo apt-get install libapache2-mod-php5
重新啟動 Apache 以加載上面安裝的模塊:
$ sudo /etc/init.d/apache2 restart
為了驗證PHP模塊是否正確加載,我們可以建立一個PHP文件,然後嘗試通過Web服務器訪問該文件。此外,我們知道PHP內建了一個phpinfo函數,該函數能夠給出它的環境的詳細信息。所以我們還可以利用下面的命令來檢查PHP的工作情況:
sudo sh -c "echo '' > /var/www/info.php"
之後,在浏覽器地址欄鍵入http://localhost/info.php,然後回車,這時應該能看到一個顏面,給出剛才安裝的PHP的詳細信息。需要注意的是,如果在此過程中浏覽器不顯示頁面,而是提示你下載文件,這就說明Apache沒有正確加載PHP模塊。解決問題的辦法是,在/etc/apache2/apache2.conf 或 /etc/apache2/mods-enabled/php5.conf文件中加入下面一行命令:
AddType application/x-httpd-php .php .phtml .php3
加入上面的命令行後,為了保證Apache重新讀取配置文件關閉,我們可以通過下面的命令將其關閉,然後再加以啟動:
$ sudo /etc/init.d/apache2 stop $ sudo /etc/init.d/apache2 start 三、配置動態虛擬主機
一般情況下,我們會在Web服務器上寄放多個Web站點,並且每個站點都有它自己的虛擬服務器。對於Apache來說,它同時支持基於名稱的虛擬服務器和基於IP的服務器。
對於基於IP的虛擬服務器,每個站點都具有一個單獨的IP地址,這樣的缺點是使用太多的IP地址,但如今IPv4的地址已有枯竭的跡象,所以不提倡使用,通常在要求使用SSL 時才使用。
對於基於名稱的虛擬服務器,多個Web站點共享一個IP地址。在這種情況下,通常根據HTTP請求頭部來決定將其發給哪一個站點。為此,我們需要為每個虛擬服務器分別建立一個配置,給作為Web站點的根的目錄以及主機命名。但是,如果這樣的話我們每當添加一個新的虛擬服務器時,就要修改Apache的配置並重新啟動,這的確很煩人呢!
值得高興的是,如果使用動態虛擬主機技術的話,可以隨時加入虛擬主機時而不必重新配置或啟動Apache。該技術要用到一個模塊,稱為vhost_alias。我們可以通過在Apache2已啟用的模塊目錄中建立一個符號鏈接來啟用該模塊,命令如下所示:
$ sudo ln -s /etc/apache2/mods-available/vhost_alias.load \\ /etc/apache2/mods-enabled/vhost_alias.load
要想使vhost_alias正常工作,我們還需要修改/etc/apache2/apache2.conf 來關閉常規名稱(canonical names),修改日志文件的配置,並為我們的虛擬主機規定存放位置。下面是一個實例:
#從"Host:"頭中取得主機名 UseCanonicalName Off
# 這種日志格式可以從第一個字段中提取出主機名 LogFormat "%V %h %l %u %t "%r" %s %b" vcommon CustomLog /var/log/apache2/access_log vcommon
# 在返回請求的文件名路徑中包含主機名 VirtualDocumentRoot /var/www/vhosts/%0/web VirtualScriptAlias /var/www/vhosts/%0/cgi-bin
接下來,創建存放虛擬主機的目錄,命令如下:
$ sudo mkdir /var/www/vhosts
新建一個基干虛擬服務器,命令如下所示:
$ sudo mkdir -p /var/www/vhosts/skeleton/cgi-bin $ sudo cp -a /var/www/apache2-default /var/www/vhosts/skeleton/web
重新啟動apache2,使得上面的配置生效,方法如下所示:
$ sudo /etc/init.d/apache2 restart
好了,現在我們可以建立基於名稱的虛擬主機了。方法是將基干拷貝到要響應的主機名。舉例來說,要想為www.mysite.com新建一個虛擬服務器的話,只要運行下面的命令就行了:
$ sudo cp -a /var/www/vhosts/skeleton /var/www/vhosts/ www. mysite.com
現在,所有到達你的Apache服務器的HTTP連接中,只要其“Host:”頭部被設成 www. mysite.com,那麼將由對應的虛擬服務器來響應。
為了早些看到我們的勞動成果,可以在本地進行測試。為此編輯/etc/hosts,加入下面一項:
127.0.0.1 www. mysite.com
這樣,在本機上就能訪問該站點了。但是,為了讓所有用戶都能訪問虛擬主機,還需申請域名,並且我們還需要在公共DNS服務器上進行設置。
四、小結
本文為讀者介紹了在Ubuntu Linux下安裝Apache和PHP的方法。同時,我們還介紹了兩種常見的虛擬服務器類型。最後,給出了動態虛擬主機的詳細配置方法。希望本文對讀者學習Ubuntu Linux系統有所幫助。