Web服務器apache
W eb 服務器Apache田逸(sery@163.com)相信使用過計算機的人,都應該有過訪問web 服務器的經(jīng)歷。在網(wǎng)站瀏覽新聞、登錄郵件服務器收發(fā)郵件、通過網(wǎng)絡購物、以瀏覽器方式配置防火墻等等,
W eb 服務器Apache
田逸(sery@163.com)
相信使用過計算機的人,都應該有過訪問web 服務器的經(jīng)歷。在網(wǎng)站瀏覽新聞、登錄郵件服務器收發(fā)郵件、通過網(wǎng)絡購物、以瀏覽器方式配置防火墻等等,無一例外都有一個web 服務器在為訪問者提供服務。盡管有別的方式來實現(xiàn)對設備或服務的訪問(如配置衛(wèi)星調(diào)制解調(diào)器),但以web 方式提供訪問的策略依然是最受歡迎的,因為它更直觀,也更方便。也是因為這樣,是的web 服務器得以更廣泛的流行。
Apache 是linux 主流的服務器,為linux 的迅速繁榮立下汗馬功勞。根據(jù)資料顯示,截至2005年12月,在internet 上,Apache 服務器以70.98的絕對優(yōu)勢雄居web 服務器之首。在這節(jié)內(nèi)容中,我們就話花些時間來討論linux 下大名鼎鼎的web 服務器Apache 。請初學者注意,不要花費心思去搜尋名字為apache 這樣的軟件包,它現(xiàn)在的名字是httpd 。
Apache 服務器的安裝
有兩種安裝apache 服務器的機會:安裝linux 操作系統(tǒng)的時候選擇安裝web 服務器和安裝完系統(tǒng)后安裝apache 服務器。如果是在安裝linux 操作系統(tǒng)期間沒有安裝apache ,這就需要使用包文件來安裝。一個運行著的系統(tǒng),你怎么知道它裝沒裝apache 服務器?用下面這個命令來檢查 # rpm –qa | grep httpd , 如果沒有輸出,則表明沒有安裝。下圖是某個安裝了Apache 服務器輸出的一個輸出范例。
提示:如果是以源碼安裝的apache 服務器,則此種方法無效,需要用find 工具查找httpd 文件是否存在。
1、RPM 包的安裝。Linux 的安裝光盤和互聯(lián)網(wǎng)上,都可以得到apache 的RPM 安裝包,然后把安裝包復制到硬盤,并切換到安裝包文件所在的目錄。本案以httpd-2.0.52-9.ent.rpm 為例,執(zhí)行命令 # rpm –ivh httpd-2.0.52-9.ent.rpm ,然后再執(zhí)行 # rpm –ivh httpd-manual-2.0.52-9.ent.rpm 把手冊也安裝上去。
2、源碼安裝。到網(wǎng)站下載欲安裝的版本,筆者喜歡嘗試最新的版本,當前的最新有效版本為httpd-2.2.0.tar.gz 。在httpd-2.2.0.tar.gz 文件所在的當前目錄解壓文件 # tar zxvf httpd-2.2.0.tar.gz , 然后切換目錄到 httpd-2.2.0 ,進行配置 # cd httpd-2.2.0.tar.gz ; ./configure --prefix=/usr/local/apache , 順利完成這步后,接著進行編譯安裝
,# make;make install 。其中,配置這一過程,使用了選項“--prefix=/usr/local/apache”來指定apache 的安裝目錄,使apache 服務器所需的大部分文件都被復制在這個目錄里。實際上,配置是一個很靈活的選擇,根據(jù)需要可以添加更多的選項,來支持更多的功能。由于這里打算先講述基本功能,其它選項將在后面的應用中逐步增加。
配置文件
Apache 的配置文件是httpd.conf ,一般在/etc/http/conf或/usr/local/apache/conf目錄,以rpm 包形式安裝的apache 的配置文件的位置是/etc/httpd/conf/httpd.conf。對 apache 服務器進行得最多的操作恐怕就是在不時更改這個文件的內(nèi)容。當然,如果只是運行簡單的靜態(tài)網(wǎng)頁,也可以不用對它做任何更改。
打開配置文件httpd.conf ,可以獲悉根文檔的目錄位置。前面安裝的apache 的根文檔位置是/usr/local/apache/htdocs(rpm包安裝的apache 的根文檔位置是/var/www/html),欲運行自己的網(wǎng)站,需要把做好的網(wǎng)頁文件和目錄復制到apache 的根文檔才可以。當初,我在配置apache 服務器的時候,在這一步費了不少周折。
上傳網(wǎng)頁文件及目錄
上傳網(wǎng)頁文件及目錄的最佳方式是啟用ftp 服務。關于怎樣安裝、配置、啟用ftp 服務在這里不再介紹。創(chuàng)建一系統(tǒng)用戶,使該用戶對目錄/usr/local/apache/htdocs具有讀寫權(quán)限或者該用戶的主目錄為/user/local/apache/htdocs。在這里我們創(chuàng)建一用戶,使其主目錄為apache 的根文檔目錄。# useradd –d /usr/local/apache/htdocs webuser //添加的用戶為webuser, # passwd webuser //再給該用戶設置一個訪問密碼。這樣就可以很方便的修改或上傳網(wǎng)頁文件和目錄了。有的人認為,用ssh 客戶端工具也可以實現(xiàn)文件的上傳,但這是不方便的,因為ssh 客戶端工具只可以傳送文件而不能上傳目錄。
啟用/關閉apache 服務
上面的步驟都準備好以后,就可以啟用這個網(wǎng)站服務器了。啟用方法如下:
apache 服務器的計算機瀏覽器里輸入apache 服務器的IP 地址或者預先解析好的域名,網(wǎng)站的主頁就會出現(xiàn)在瀏覽器里。在apache 服務器端,通過輸入命令 # ps -aux | grep httpd 檢查apache 服務器是否正在運行。到此,一個具備基本功能的apache 服務器誕生了。
虛擬主機
有時候,我們可能需要用一個apache 服務器來做多個web 服務器,比如運行幾個不同的網(wǎng)站, 這樣就可以大大地節(jié)省開支。
使用虛擬主機大致有以下幾個步驟:
1、 確定使用虛擬主機的方式。虛擬主機有基于域名、IP 、端口等幾種形式,應該根據(jù)自己
的實際情況來決定。
2、 修改配置文件/etc/httpd/conf/httpd.conf或 / usr/local/apache/conf/httpd.conf.在這個文件
里,已經(jīng)給出了如何更改的范例,它是以注釋方式出現(xiàn)的。只要按照范例的格式添加需
,要的內(nèi)容即可。然后保存退出配置文件。
3、 域名解析(基于域名的虛擬主機)。這一步需要在域名服務器上進行。
4、 啟用/關閉虛擬主機。啟用/關閉apache 守護進程即可,但這將關閉所有的web 服務。能
否單獨關閉某個虛擬主機,我本人沒這方面的經(jīng)驗。
接下來,我就給出以個虛擬主機的實例。先描述一下需求:一臺服務器,要求運行一個以PHP 為腳本的網(wǎng)站,另外還要用它來做網(wǎng)絡流量監(jiān)控(需要web 服務)。在這里,我們采用二進制源碼包的方式來安裝配置apache 虛擬服務器,以便于對apache 服務器有更深刻的理解。
(一)安裝apache 服務器。從www.apache.org 下載包httpd-2.2.0.tar.gz 到目錄/root,然后執(zhí)行操作
然后在與之聯(lián)網(wǎng)的計算機的瀏覽器里輸入運行apache 服務的計算機的IP 地址,出現(xiàn)測試頁面表明配置一切正常。
(二) 安裝PHP 。下載包php-4.3.11.tar.gz 到目錄/root,然后執(zhí)行下面的操作
完成后看是否真在目錄/usr/local/apache/modules生成文件libphp4.so, 再打開配置文件httpd.conf 中看 LoadModule php4_module modules/libphp4.so是否被自動追加。
(三)修改apache 配置文件/usr/local/apache/conf/httpd.conf。加入行
TypeAdd application /x-httpd-php .php4 到307行的位置,當然其他位置也是可以的。請?zhí)貏e注意:.php4前面有一個空格。我第一次配置php 整合apache 的時候就犯了這個錯誤,用了好幾天的時間才弄明白的。Php 前面那個“. ”(小黑點) 一定不要寫漏了, 會有什么后果, 請讀者自己去嘗試一下。
(四)啟動一下apache 服務器。找?guī)讉€php 腳本的網(wǎng)頁文件,把它復制到apache 指定的根文檔目錄/usr/local/apache/htdocs,然后在與之聯(lián)網(wǎng)的計算機的瀏覽器中輸入apache 所在機器的URL(形如 http://192.168.100.10/test.php) ,來檢驗一下配置是否成功。
(五)創(chuàng)建虛擬服務器。Apache/2.2.0與以前的版本有些差異,它是以包含文件的方式來加載用戶定義的虛擬主機配置,前面的版本定義虛擬主機就在httpd.conf 文件中。我們還是先在主配置文件中把虛擬主機的配置文件 /usr/local/apache/conf/extra/httpd-vhosts.conf 包含進來;具體的操作就是把行 #Include conf/extra/httpd-vhosts.conf 的注釋去掉,使之成為Include conf/extra/httpd-vhosts.conf,這一行在httpd.conf 的行號是394。然后保存后退出。接著我們打開文件/usr/local/apache/conf/extra/httpd-vhosts.conf,其默認狀態(tài)如下:
,#
保存后退出。然后運行命令 # /usr/local/apache/bin/htpasswd –c /usr/local/apache/.mrtg sery 按照提示設定用戶sery 的訪問密碼。
(九)做域名解析。在域名服務器上解析主機mrtg.sery.com.
(十)啟用apache 服務。用指令 # ps –aux | grep httpd 檢查apache 是否正常運行,然后在另外的計算機的瀏覽器里輸入apache 服務器的URL ,如輸入www.sery .com 則應該訪問到主配置文件設定的網(wǎng)頁,如果輸入mrtg.sery.com 則訪問上面設定的虛擬機頁面,并且需要輸入正確的用戶名和密碼才能訪問。
總結(jié)
通過上面的實踐,我們可以得出這樣一個結(jié)論:apache 服務器功能設定的主要操作就是修改配置文件—主配置文件httpd.con 及包含配置文件。當然,apache 的配置不僅僅是上文所描述的那些,可以說是非常豐富,也是非常靈活的,限于篇幅,不再詳敘。至于要讓apache 隨系統(tǒng)啟動,可以把守護進程/usr/local/apache/bin/httpd&加在文件/etc/rc.local里。
偏方:為了在同一環(huán)境下使用更多的apache 服務,可以安裝多個apache 到不同的目錄,安裝目錄在安裝過程中的配置操作 ./configure – prefix=<安裝目錄> 制定,所有apache 的配置原則都是一致的。所有配置完成后,把他們?nèi)繂悠饋?。關于配置多個虛擬主機與安裝多個apache 服務,究竟有多大的差別,望各位讀者自己去做評判。
2005-12-30 于白石橋