httpd.conf配置選項的含義
準備好服務器。
httpd.conf
tpd.conf是主配置文件。它告訴服務器將如何運行。
一、最重要的配置選項ServerType standalone | inetd
這個配置選項指定如何運行WEB服務器。Apache可以使用兩種方法來運行服
務器:standalone(獨立的)和inetd(由inetd運行的)。standalone參數表示
WEB服務進程以一個單獨的守候進程的方式在後臺偵聽是否有客戶端的請求,如
果有就生成一個子進程來爲其服務。 inetd參數表示WEB服務不是以一個單獨的
守候進程的形式支持。而是由Inetd這個超級服務器守候進程進行代勞,當它收
到一個客戶端的WEB服務請求的時候,再啓動一個WEB服務進程爲其服務。從功
能的角度看,這兩種方法幾乎是相同的。但它們之間實際有很大區別,區別在
於服務器的性能。一個由 inted運行的服務器進程在它結束對請求服務的同時
立刻退出。而在standalone模式下,子WWW服務器進程在退出之前要掛起一段時
間,這就給它們提供了機會,可以重新用來服務新的請求。
在standalone模式下,不存在對每個請求啓動新進程的開銷,所以它的效率更
高;而inetd模式被認爲比standalone模式更具安全性。
standalone模式:
此種模式下,WWW服務器偵聽特定端口的連接請求。當客戶機發出到特定端口地
址的連接請求時,主服務器進程啓動子WWW服務進程來服務該請求。另外還需要
告訴主服務器進程偵聽的特定端口地址,使用命令:
Port [number] (缺省值爲80)
inetd模式
inetd 是偵聽有小於1024的端口連接請求的Internet守護進程(一個服務器進
程)。與前面的方法不同,當客戶系統發出到WWW服務器的連接請求時, inetd
啓動一個WWW服務器進程,由此進程服務此請求,完成服務後即退出。如果選擇
通過inetd服務器來運行Apache,需要編輯 /etc/inetd.conf文件爲Apache添加
一條新的記錄:
httpd stream tcp nowait httpd /etc/httpd/bin/httpd -f
/etc/httpd/conf/httpd.conf
修改了/etc/inetd.conf文件後,就需要修改/etc/services中添加一行
httpd 80/tcp httpd
做完以上修改後,需要重新啓動inetd進程。首先,使用以下命令取得inetd的
進程ID:
ps auxw |grep inetd
然後執行命令:kill -HUP <inetd的進程ID>
在RedHat Linux中,默認是採用inetd服務器來運行Apache,所以只要你在安裝
時選擇了httpd,以上工作在安裝時就已經代你完成了。
二、其它配置選項
Server Admin命令,用來設置WEB管理員的E-Mail地址。這個地址會出現在
系統連接出錯的時候,以便訪問者能夠將情況及時地告知WEB管理員。
命令格式: Server Admin [you E-Mail address]
例:Server Admin [email protected]
ErrorLog命令,用來指定錯誤記錄文件名稱和路徑。
命令格式: ErrorLog [log filename]
例:ErrorLog /var/httpd/error.log
Timeout命令,只要客戶端超過這裏設定的秒數還沒有完成一個請求的話,服務
端將終止這次請求服務。如果網絡速度較慢的話,建議在此設置較大的數值。
以給客戶端更多機會。
命令格式: Timeout [second]
例:Timeout 120
ServerRoot命令,它指定在何處保存服務器的配置、錯誤及日誌文件。
命令格式: ServerRoot [fully qualified path name]
例:ServerRoot /etc/httpd
ServerName命令,它配置服務器的Internet主機名
命令格式: ServerName [host name]
例:ServerName www.xxx.com
srm.conf
srm.conf是資源配置文件,用它來告訴服務器你想在WWW站點上提供什麼資源以
及在哪裏和如何提供們。
DocumentRoot命令,用來指定主文檔的地址。
命令格式: DocumentRoot [Path]
例:DocumentRoot /home/httpd/html
UserDir 命令,用來指定個人主頁的位置。如果你有一個用戶test,那麼它主
目錄是"/home/test",當客戶端輸入"http: //yourdomain/~test";;,系統就
會到對應的目錄"/home/test/UserDir/"中去尋找。其中"UserDir"就是在
UserDir命令中設置的指定目錄。
命令格式: UserDir [Path]
例: UserDir Public_html
DirectoryIndex 命令,用來聲明首頁文件名稱。一般地,我們使用
"index.html"或"index.htm"作爲首頁的文件名。如果這樣設置後,那麼客戶端
發出 WEB服務請求時,將首先調入的主頁是在指定目錄下文?quot;index.html"或
"index.htm"。
命令格式: DirecotryIndex [filename]
例:DirecotryIndex index.html index.htm
ScriptAlias命令,爲腳本程序目錄起個別名,具體可見4.7小節。
命令格式: ScriptAlias [/alias/] [fullly qualified path for script
directory]
例: ScriptAlias /cgi-bin/ /home/httpd/cgi-bin
access.conf的配置
access.conf文件用來設置WWW站點上諸如文件、目錄和腳本項目的訪問權限。
該文件的第一段非註釋部分如下:
<Directory /home/httpd/html>
Option Indexes Includes ExecCGI FollowSymLink
AllowOverride None
Order allow , deny
allow from all
</Directory>
大家應該注意到,這一個部分是以<Directory /home/httpd/html>開始,以
</Directory>結束的。這表示在其中間的部分都是針對指定目錄
��"/home/httpd/html"而言的。
1.Option命令有很多的參數,各個參數的意義如下所示:
All 准許以下所有功能(MultiViews除外);
MultiViews 准許內容協商的Multiviews;
Indexes 若該目錄下無index文件,則准許顯示該目錄下的文件以供選擇;
IncludesNOEXEC 准許SSI(Server-side Includes),但不可使用#exec和
#include功能;
Includes 准許SSI;
FollowSymLinks 准許符號鏈接到其他目錄;
ExecCGI 准許該目錄下可以使用CGI。
2.而AllowOverride命令則是用來決定是否准許在"access.conf"文件中設定的
權限是否可以被在文件".htaccess"中設定的權限覆蓋。它有兩個參數:
All 准許覆蓋;
None 不准許覆蓋。
3.Order命令:用來設定誰能從這個服務器取得控制。它也有兩個參數:
allow 可以取得控制;
deny 禁止取得控制。
現在我們一起來看看關於目錄"/home/httpd/html"的設置的含義:它使得這個
目錄,如果不存在index.htm文件時,列出目錄信息以供選擇,准許SSI,允許
執行CGI程序,開啓了動態連接。它不允許再使用在文件".htaccess"中設定來
覆蓋這裏所設置的權限。使所有的人都可以取得控制。
該文件的第二段非註釋部分如下:
<Directory /home/httpd/cgi-bin>
Option ExecCGI
AllowOverride None
</Directory>
這個表示目錄"/home/httpd/cgi"的設置爲,當前目錄下可以執行CGI程序。不
允許再使用在文件".htaccess"中設定來覆蓋這裏所設置的權限。
需要說明的是,不同的LINUX系統中,可以在這個文件中看到的信息不完全相
同,但是根據這裏給出的信息,大家可以參照命令的解釋自行理解文件中的設
置,以及根據自己的需要進行相應的修改。
4.4 使新的配置生效
在上面,我們可能已經根據新的需求更改了相應的配置選項,如果我們要使得
這個新的配置立即生效。我們就必須重新啓動WEB服務進程。在LINUX中,我們
可以十分方便地使用命令行來使得WEB服務進程重啓。
/etc/rc.d/init.d/httpd restart
五、爲用戶開闢個人主頁空間
如果我們利用了LINUX系統架設了一臺WEB服務器,我們不僅可以存放公司的主
頁,而且還可以爲公司的每一個員工提供一塊個人主頁的空間。
首先,爲需要個人主頁空間的員工在LINUX上開設一個帳號。這樣,它就擁有了
一個用戶主目錄"/home/用戶帳號名"。
addusr 用戶帳號名
passwd 用戶帳號名
在用戶主目錄下建立一個目錄"public_html",然後爲其設置相應的權限。
cd ~用戶帳號名
mkdir public_html
chmod 755 public_html
確認在srm.conf文件中的UserDir命令設置的是public_html目錄。讓員工將自
己的個人主頁上傳到自己用戶主目錄下的public_html目錄中。
現在就可以使用"http://www.company.com/~用戶帳號名"來訪問員工的個人主
頁了。