在linux下設定WWWServer(轉)

BSDLite發表於2007-08-11
在linux下設定WWWServer(轉)[@more@]  編者按:許多人的生活已變得越來越簡單:食物、水、空氣、網路。這種簡單源於一種“透明”—網路操作對於使用者已變得越來越透明瞭。但在這種透明背後,卻是越來越龐大複雜的網路作業系統,越來越不透明的管理。你看看本期專題的幾篇文章便可明白了。  
  其實關於網路作業系統真是罄竹難書。這裡不過是冰山一角。但也許是最閃亮的一角:如何在Linux上設定WWW Server和建立DNS伺服器,教你在SCO OpenServer和Windows NT、Windows 95中相互共享印表機的技巧,Solaris和NetWare5安裝技巧。當然,UNIX作業系統還有很多,這裡的幾款無法代表全部。希望大家舉一反三,能夠獲得一些啟發。  
  目前WWW Server軟體有許多,能執行在linux下的也不少,有NCSA HTTPd Server、CERN HTTPd Server、pache、Netscape Fast Track Server、Zeus Server等。這些軟體各有特色:NCSA(美國伊利諾斯大學的國家超級計算應用中心)是WWW Browser Mosaic發跡之地,也是Netscape公司的安德森成名的地方;CERN(歐洲原子核研究中心)是WWW的起源地,1989年蒂姆·貝納斯-李正是在這開發成功了世界上第一個Web伺服器和客戶機。這兩家推出的WWW Server功能齊全,成為同類軟體的標準,再加上它們都是Freeware,因此剛一推出就大受歡迎。前幾年,在linux下WWW Server軟體使用最多的是NCSA和CERN,但這一兩年來,後起之秀Apache卻獨領風騷,號稱“WWW Server之王”。在最新的Red Hat、Slackware和 OpenLinux各版本中都包含了Apache。 
   Apache是在NCSA的基礎上發展起來的,因此這二者的配置檔案十分相似。Redhat5.2自帶的是Apache 1.3。
  
  一、安裝  Apache的安裝十分簡單。最好在安裝red hat時,選擇安裝web server,這樣即使你對編譯操作不熟的話,也能輕輕鬆鬆把伺服器架設起來。
    如果你想親自編譯原始檔,那麼你已經不是一個初學者,建議你直接去看how-to文件或其他資料。
    開啟機器,進入X-Window系統後,啟動Netscape Navigator,敲入本機的IP地址,如果出現“It worked”的歡迎頁面,那說明伺服器程式工作正常。你可以進行下一步配置工作。
    在不同的版本下,伺服器預設的工作根目錄也不一樣。Red Hat預設的是/etc/httpd,配置檔案在/etc/httpd/conf目錄下,頁面檔案在/home/httpd目錄下。
    二、設定httpd.conf、srm.conf、access.conf檔案
    Apache安裝成功後,在conf子目錄下有四個檔案:httpd.conf、srm.conf、access.conf、magic(請注意:在www-howto文件中,說第四個檔案是mime.types,但在實際安裝中,在conf子目錄下是magic檔案)。httpd.conf是Apache設定檔案中的主檔案,httpd程式啟動時會先讀取httpd.conf。srm.conf是資料配置檔案,在這個檔案中主要設定WWW Server讀取檔案的目錄、目錄索引時的畫面、CGI執行時的目錄等等。access.conf是負責基本的讀取檔案控制,限制目錄所能執行的功能及訪問目錄的許可權設定。

    下面將簡單對這三個資料設定檔案進行說明。
    1. httpd.conf檔案
    TransferLog:如果你想知道你的網站上哪個頁面最受來訪者的歡迎,在一段時間內有多少人訪問你的站點,你當然可以設定一個計數器,但每頁都設計數器,太繁瑣而且得到的結果不太可靠。最好的辦法是檢視相應log檔案,TransferLog命令就是指定當瀏覽器要求伺服器傳送檔案時記錄到所設定的檔案,可以根據此檔案檢視有哪些使用者看過哪些HTML檔案。可用一些程式分析這個檔案的資料,得出監測各種有用的資料。預設的訪問log檔案是logs/access_log。  ErrorLog:這個命令是指定當WWW Server運轉過程中發生問題時錯誤資訊存放到哪個檔案。預設是logs/error_log。
    VirtualHost:這個命令是用來設定虛擬主機,即用一臺主機執行多個域名的WWW Server。詳細命令使用將在第三部分詳細解釋。
    2. srm.conf
    DocumentRoot:指定WWW Server存放html檔案的根目錄。WWW Server從硬碟中讀取html檔案傳送給瀏覽器,並不是可從任一個目錄中讀取檔案,而是從一個特定目錄中開始讀取檔案,這個特定的目錄就是由DocumentRoot命令來指定。red hat5.2中預設的目錄是/home/httpd/html。
    如果使用者訪問,此時WWW Server並不是從系統的根目錄下的netlife目錄中讀取index.html,而是從/home/httpd/html/netlife目錄中讀取index.html檔案。
    UserDir:如果要在WWW Server上給一些使用者開設空間,擱放個人主頁,最好不要把每個人的html檔案都放到DocumentRoot目錄中,用UserDir命令可讓每個人的頁面放置在自己的home目錄中。預設的目錄是public_html。
    如果UserDir設定的目錄是public_html,而Username是yan,而該user的home目錄是/home/yan,那你訪問時所看到的intr.html檔案存放在/home/yan/public_html中,而不是/home/httpd/html。   3. access.conf
    如果你有些目錄只想讓某些人訪問,或者只允許在特定的目錄下允許CGI程式,這時就要對access.conf進行修改。
    Apache的存取控制方式有兩種:一是“整體存取控制”,只透過access.conf來控制檔案的設定,來限定目錄所能執行的功能及存取目錄的許可權設定。二是“特定目錄存取控制”,在特定目錄中建立存取設定檔案,這個檔名在srm.conf中的AcessFileName來決定,預設是.htaccess。例如某些目錄中的檔案只允許某些人訪問,那可在該目錄下建立.htaccess檔案,當WWW Server讀取該目錄時便會自動讀取.htaccess來決定是否讀取執行或要求口令驗證。這兩種方式所使用的命令幾乎相同,而且設定的格式也相同。
    Directory:說明要設定的目錄,然後再用命令來設定目錄的功能和許可權。 
    Options:設定目錄可以執行哪些功能。有None、All、ExecCGI、Includes、Indexs、IncludesNoExec、FollowSymlink、SymlinksOwnerMatch等選項。如果想讓某個目錄可以執行CGI程式,那麼應在Options命令中加上ExecCGI選項。  Require:設定可以對所指定目錄以指定方式來存取的Users和Group。該命令執行後,當讀取該目錄資料時,系統會要求輸入Username和Password。
    * 忠告:修改完設定檔案後,不要像在Windows工作那樣,重啟機器使其生效。要記住,你現在linux下,使用linux的好處之一就是不用再見到Windows 98那當機時的藍色畫面以及不必對配置檔案做了一點點修改就無聊而又頻繁地重啟機器。你的WWW伺服器任何時候都有很多人在訪問,頻繁地重啟機器將把你的客人趕跑。要學會不重啟機器,而是重新啟動一個正執行的程式(Process,嚴格一點應叫做程式、作業)。可以用kill命令來使程式重新啟動。具體kill的使用參見有關文件。
    先用ps命令檢視httpd的pid號,然後用kill命令殺死它,重新啟動httpd。具體命令如下:
    linux〉 ps -x  
   linux〉 kill -HUP 13668(13668是假設httpd的pid號,在實際使用中,不同的情況值也不同)
    這樣就可將httpd重新啟動,使修改的配置檔案生效。
    看完上面一大堆命令,是不是有些煩,其實你不瞭解這些命令也無所謂,用系統預設設定也能正常工作。

    三、虛擬主機(Virtual Host)的設定
    作為系統管理員,若你只有一個IP地址,卻有好幾個域名,又要求訪問每個域名都要看到不同的內容,那怎麼辦?總不至於為每個域名都配上一臺伺服器吧。這就要採用虛擬主機(Virtual Host)技術,幸好Apache就支援這種功能。虛擬主機有兩種方式:IP-Based(基於IP式)、Name-based(基於域名式)。IP-Based指的是一個域名對應一個IP地址,而Name-based指的是多個域名對應一個IP地址。
    虛擬主機的設定並不複雜,只要在httpd.conf檔案中加入相應的命令就行。  下面是一個Name-based(基於域名式)虛擬主機的httpd.conf例子(編者注:因篇幅原因,我們這隻給出了相關部分,全文見)。
  IP為:192.9.188.20,兩個域名分別是long.com.cn、short.com.cn。  
  
QUOTE:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-946488/,如需轉載,請註明出處,否則將追究法律責任。

在linux下設定WWWServer(轉)
請登入後發表評論 登入
全部評論

相關文章