1. 程式人生 > >Apache2.4.4伺服器配置檔案httpd.conf的主要結構註釋

Apache2.4.4伺服器配置檔案httpd.conf的主要結構註釋

# ServerRoot: 目錄樹的根結點。伺服器配置、出錯資訊、日誌檔案都儲存在根目錄下。
# 不要再目錄末尾加"/"
ServerRoot "D:/apache"

# Listen: 允許將Apache綁頂到指定的IP地址和埠,作為預設值的輔助選項。
#Listen 12.34.56.78:80
Listen 80

# 要使用基於DSO的功能模組,需要替換此處相應的
# `LoadModule' 行。這樣在使用之前這些包含的標識都將生效。

LoadModule access_compat_module modules/mod_access_compat.so

LoadModule actions_module modules/mod_actions.so

LoadModule alias_module modules/mod_alias.so

LoadModule allowmethods_module modules/mod_allowmethods.so

LoadModule asis_module modules/mod_asis.so

LoadModule auth_basic_module modules/mod_auth_basic.so

#LoadModule auth_digest_module modules/mod_auth_digest.so

#LoadModule authn_anon_module modules/mod_authn_anon.so

LoadModule authn_core_module modules/mod_authn_core.so

#LoadModule authn_dbd_module modules/mod_authn_dbd.so

#LoadModule authn_dbm_module modules/mod_authn_dbm.so

LoadModule authn_file_module modules/mod_authn_file.so

等等

# ServerAdmin: 你的地址。如果伺服器有任何問題將發信到這個地址。
# 這個地址會在伺服器產生的某些頁面中出現,例如,錯誤報告。

# ServerName 允許設定主機名。如果與程式獲得的不同,主機名將返回客戶端。
#
# 注: 主機名不能隨便指定。必須是你的機器有效的DNS名稱。

# 如果你的主機沒有註冊DNS名,可在此輸入IP地址。
# 此時必須用IP地址來訪問。(如, http://123.45.67.89/)
# 這樣扔可以完成重新定向的工作。
# 127.0.0.1 是TCP/IP的本地環路地址, 通常命名為localhost.
# 機器預設此地置為本身。 如果只是使用Apache來進行本地測試和開發,
# 可使用127.0.0.1 作為伺服器名.
#ServerName www.woaixiaoyuan.com:80  #安裝時自己弄得—_—

# DocumentRoot: 放置服務文件的目錄。
# 預設狀態下,所有的請求都以這個目錄為基礎。
# 但是直接符號連線和別名可用於指向其他位置。
DocumentRoot "D:/website"

# Apache訪問的每個目錄可設定相關的服務和特性是允許或不允許。(同樣影響其子目錄)
# 首先,設定"default"地址只有最基本的許可權。
<Directory />
Options FollowSymLinks
AllowOverride None
< /Directory>

Directory語句就是用來定義目錄的訪問限制的,這裡可以看出它的標準語法,為一個目錄定義訪問限制。上例的這個設定是針對系統的根目錄進行的,設定了允許符號連線的選項FollowSymLinks ,以及使用AllowOverride None表示不允許這個目錄下的訪問控制檔案來改變這裡進行的配置,這也意味著不用檢視這個目錄下的相應訪問控制檔案。
由於Apache對一個目錄的訪問控制設定是能夠被下一級目錄繼承的,因此對根目錄的設定將影響到它的下級目錄。注意由於AllowOverride None的設定,使得Apache伺服器不需要檢視根目錄下的訪問控制檔案,也不需要檢視以下各級目錄下的訪問控制檔案,直至httpd.conf中為某個目錄指定了允許Alloworride,即允許檢視訪問控制檔案。由於Apache對目錄訪問控制是採用的繼承方式,如果從根目錄就允許檢視訪問控制檔案,那麼Apache就必須一級一級的檢視訪問控制檔案,對系統性能會造成影響。而預設關閉了根目錄的這個特性,就使得Apache從httpd.conf中具體指定的目錄向下搜尋,減少了搜尋的級數,增加了系統性能。因此對於系統根目錄設定AllowOverride None不但對於系統安全有幫助,也有益於系統性能。

# 這個地址應與DocumentRoot保持一致
<Directory "D:/website">

Options Indexes FollowSymLinks
# 此值可是: "None", "All", 或下列的組合:"Indexes",
AllowOverride None

# 控制哪些使用者可從此伺服器獲得資料。
Order allow,deny
Allow from all
< /Directory>

AllowOverride的設定 對每個目錄訪問控制檔案作用的影響 
All
預設值,使訪問控制檔案可以覆蓋系統配置 
None 伺服器忽略訪問控制檔案的設定 
Options 允許訪問控制檔案中可以使用Options引數定義目錄的選項 
FileInfo 允許訪問控制檔案中可以使用AddType等引數設定 
AuthConfig 允許訪問控制檔案使用AuthName,AuthType等針對每個使用者的認證機制,這使目錄屬主能用口令和使用者名稱來保護目錄 
Limit 允許對訪問目錄的客戶機的IP地址和名字進行限制

Options設定  可以使用Options來控制這個目錄下的一些訪問特性設定
All 所有的目錄特性都有效,這是預設狀態 
None 所有的目錄特性都無效 
FollowSymLinks 允許使用符號連線,這將使瀏覽器有可能訪問文件根目錄(DocumentRoot)之外的文件 
SymLinksIfOwnerMatch 只有符號連線的目的與符號連線本身為同一使用者所擁有時,才允許訪問,這個設定將增加一些安全性 
ExecCGI 允許這個目錄下可以執行CGI程式 
Indexes 允許瀏覽器可以生成這個目錄下所有檔案的索引,使得在這個目錄下沒有index.html(或其他索引檔案)時,能向瀏覽器傳送這個目錄下的檔案列表 

#這是設定預設索引檔案,優先順序自己排,中間是用空格隔開。

<IfModule dir_module>

    DirectoryIndexindex.php index.html index.htm index.html.var

</IfModule>

很多情況下,URL中並沒有指定文件的名字,而只是給出了一個目錄名。那麼Apache伺服器就自動返回這個目錄下由DirectoryIndex定義的檔案,當然可以指定多個檔名字,系統會這個目錄下順序搜尋。當所有由DirectoryIndex指定的檔案都不存在時,Apache伺服器可以根據系統設定,生成這個目錄下的所有檔案列表,提供使用者選擇。此時該目錄的訪問控制選項中的Indexes選項(Options Indexes )必須開啟,以使得伺服器能夠生成目錄列表,否則Apache將拒絕訪問。

ErrorLog "logs/error.log"

LogLevel warn

LogFormat "%h %l %u %t \"%r\" %>s %b\"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %b"common     

# You need to enable mod_logio.c to use %I and %O

LogFormat "%h %l %u %t \"%r\" %>s %b\"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

CustomLog "logs/access.log" common

這裡定義了系統日誌的形式,對於伺服器錯誤記錄, 由ErrorLog、LogLevel 來定義不同的錯誤日誌檔案及其記錄內容。 
對於系統的訪問日誌,預設使用CustomLog引數定義日誌的位置,預設使用combined 引數指定將所有的訪問日誌放在一個檔案中,然而也可以將不同種類的訪問日誌放在不同的日誌記錄檔案中,這是通過在 CustomLog中指定不同的記錄型別來完成的。common表示普通的對單頁面請求訪問記錄,referer表示每個頁面的引用記錄,可以看出一個頁面中包含的請求數,agent表示對客戶機的型別記錄,顯然可以將現有的combined 定義的設定行註釋掉,並使用common、referer和agent作為CustomLog的引數,來為不同種類的日誌分別指定日誌記錄檔案。

ScriptAlias /cgi-bin/ "D:/apache/cgi-bin/"

ScriptAlias用於URL路徑的對映,是對映CGI程式的路徑,這個路徑下的檔案都被定義為CGI程式,通過執行它們來獲得結果,而非由伺服器直接返回其內容。預設情況下CGI程式使用cgi-bin目錄作為虛擬路徑。

AddType application/x-compress .Z

AddType application/x-gzip .gz .tgz

AddType引數可以為特定字尾的檔案指定MIME型別,這裡的設定將覆蓋mime.types中的設定。

AddType application/x-httpd-php .php

#實質就是新增可以執行php的檔案型別,比如你再加上一行“AddType application/x-httpd-php .htm”,則.htm檔案也可以執行php程式了

# CGI模式安裝:

ScriptAlias /php/ "D:/PHP/"

AddType application/x-httpd-php .php

Action application/x-httpd-php"/php/php-cgi.exe"

CGI模式下,如果客戶機請求一個php檔案,Web伺服器就呼叫php-cgi.exe去解釋這個檔案,然後再把解釋的結果以網頁的形式返回給客戶機;

       以上就是Apache2.4.4伺服器配置檔案httpd.conf的主要結構,其中一些是我針對這次配置apache伺服器時對配置檔案httpd.conf所做的修改和註釋,一些是在網上查詢的解釋,大同小異,最值得注意就是<Directory >這裡,它針對分佈在不同目錄下的子目錄定義訪問控制權限。此外在注意一些版本的相容性,就差不多了。