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 >這裡,它針對分佈在不同目錄下的子目錄定義訪問控制權限。此外在注意一些版本的相容性,就差不多了。