歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> 在Ubuntu Linux上架設Web服務器詳解

在Ubuntu Linux上架設Web服務器詳解

日期:2017/3/3 16:44:51   编辑:關於Linux

Apache 是一種功能強大的Web服務器。如今,Internet上無數運行在Linux上的Apache服務器正為Web世界的日益繁榮提供著有力的支撐。本文將向讀者介紹如何在Ubuntu Linux系統迅速搭建Apache Web服務器。

盡管Ubuntu 是一種新興的Linux分支,但Ubuntu 組織卻為Apache提供了豐富的支持軟件,這些軟件都可以從發行版的光盤獲取,也可以從官方站點輕松下載。所以,Ubuntu非常適合作為Web服務器的平台。

一、 安裝Apache

下面,我們首先介紹如何安裝Apache。具體安裝命令如下所示:

$ sudo apt-get install apache2

然後運行Apache,命令如下所示:

$ sudo /etc/init.d/apache2 restart

Apache在安裝期間將會新建一個目錄:/var/www,該目錄是該服務器中存放文檔的根目錄。只要在浏覽器的地址欄輸入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系統有所幫助。

Copyright © Linux教程網 All Rights Reserved