Apache配置文件:conf/httpd.conf。(注意:表示路徑時使用‘/’而不使用‘\’,註釋使用‘#’)php
1. ServerRoot:服務器根目錄,也就是Apache的安裝目錄,其餘的目錄配置如果使用相對路徑,都是相對於服務器根目錄的。html
配置示例:瀏覽器
ServerRoot 「D:/wamp/bin/Apache2.4.23」服務器
2. Listen:服務器監聽的端口,能夠只配置端口,也能夠同時指定IP地址和端口,還能夠指定使用的協議。(可配置多個端口)app
完整配置示例:ide
Listen 127.0.0.1:80 http性能
3. DocumentRoot:網站的根目錄,也就是放置網站文件的地方。網站
配置示例:ui
DocumentRoot = 「D:/wamp/www」spa
4. LoadModule:加載特定的DSO模塊,這些已編譯的DSO模塊存放於Apache安裝目錄下的modules目錄中。
配置示例:
LoadModule actions_module modules/mod_actions.so
5. User:設置實際提供服務的子進程的用戶。
配置示例:
User daemon
6. Group:設置提供服務的Apache子進程運行時的用戶組。
配置示例:
Group daemon
7. ServerAdmin:設置在全部返回給客戶端的錯誤信息中包含的管理員的郵件地址。(也可使用URL)
配置示例:
ServerAdmin 23423423@qq.com
8. ServerName:設置服務器用於識別本身的主機名和端口號。若是沒有指定端口號,服務器會使用接受請求的那個端口。
配置示例:
ServerName localhost:80
9. <Directory>:和</Directory>一塊兒用於封裝一組指令,使之僅對某個目錄及其子目錄生效。該指令不能被嵌套使用,也不能出現
在<Limit>或<LimitExcept>配置段中。
配置示例:
<Directory 「D:/wamp/www」>
Options Indexes FollowSymLinks MultiViews Includes IncludesNOEXEC ExecCGI
AllowOverride None
Order allow, deny
allow from all
</Directory>
指令及其參數說明:
(1)Options:控制在特定目錄中將使用哪些服務器特性。
Indexs:若訪問目錄下無index文件,則准許顯示該目錄下的文件列表以供選擇。
FollowSymLinks:准許在目錄中使用符號連接到其餘目錄。
MultiViews:准許內容協商的「多重視圖」。若是客戶端請求的路徑可能對應多種類型的文件,服務器將根據客戶端請求的具體情
況自動選擇一個最匹配客戶端要求的文件。例如只在地址欄輸入index也能夠訪問到index.php頁面。
Includes:准許SSI。
IncludesNOEXEC:准許SSI,但不可以使用exec和include功能。
ExecCGI:准許在該目錄下使用CGI。
All:表示除了MultiViews以外的全部特性。
None:表示不啓用任何的服務器特性。
注意:若是一個目錄被屢次設置了options,則最特殊的一個會被徹底接受。
(2)AllowOverrid:是否准許文件「.htaccess」中設定的權限覆蓋「access.conf」文件中設定的權限。
All:准許覆蓋。
None:不許許覆蓋。
AuthConfig:容許使用與認證受權相關的指令。
FileInfo:容許使用控制文檔類型的指令、控制文檔元數據的指令、mod_rewrite中的指令、mod_actions中的Action指令。
Indexs:容許使用控制目錄索引的指令。
Limit:容許使用控制主機訪問的指令。
(3)Order:控制默認的訪問狀態和allow、deny指令生效的順序。
allow:容許訪問。
deny:拒絕訪問。
這兩個參數由最後一個出現的參數決定,如「Order allow,deny」默認拒絕了全部的意思(中間有且只有一個逗號),但最終的判斷
結果還要總下面的allow、deny語句中各自所包含的範圍(若是有的話),這兩個語句後面都必定接着「from」,不然Apache
會沒法啓動。「Order allow,deny」表示先判斷allow語句再判斷deny語句。
注意:上面的Order和allow、deny語句是針對Apache2.2的配置,Apache2.4的客戶端訪問控制由Require語句來配置。
區別示例:
拒絕全部請求:
2.2配置:
Order deny,allow
deny from all
2.4配置:
Require all denied
容許全部請求:
2.2配置:
Order allow,deny
allow from all
2.4配置:
Require all granted
只容許某個特定IP的訪問:
2.2配置:
Order deny,allow
deny from all
allow IP-address
2.4配置
Require host IP-addres
10. <Files>:提供基於文件名的訪問控制。<Files>段將根據他們在配置文件中出現的順序被處理:在<Directory>段和.htaccess文件被處理以後,但在<Location>段以前。<Files>能嵌
入到<Directory>段中以限制它們做用的文件範圍。也可用於.htaccess文件當中,以容許用戶在文件層面上控制對文件的訪問。
配置示例:
<Files ".ht*">
Require all denied
</Files>
11. <IfModule>:封裝根據指定的模塊是否啓用而決定是否生效的指令。
配置示例:
<IfModule http2_module>
ProtocolsHonorOrder On
Protocols h2 h2c http/1.1
</IfModule>
12. DirectoryIndex:當客戶端請求一個目錄時尋找的資源列表。
配置示例:
DirectoryIndex index.php index.htm index.html
(服務器將返回最早找到的那一個)
13. ErrorLog:指定當服務器遇到錯誤時記錄錯誤日誌的文件。
(若不是一個以「/」開頭的絕對路徑,則是一個相對於ServerRoot的相對路徑)
配置示例:
ErrorLog "logs/error.log"
14. LogLevel:用於調整記錄在錯誤日誌中的信息的詳細程度。
錯誤信息詳細程度按重要性降序排列以下:
emerg:緊急(系統沒法使用)
alert:必須當即採起措施。
crit:致命狀況。
error:錯誤狀況。
warn:警告狀況。
notice:通常重要狀況。
info:普通訊息。
debug:調試信息。
(當指定了某個級別時,全部級別高於它的信息也會被同時記錄)
配置示例:
LogLevel warn
15. LogFormat:定義訪問日誌的記錄格式。
配置示例:
LogFormat "%h %l %u %t \"%r\" %>s %b" common
(其中common就是這種格式的標識符)
16. CustomLog:設定日誌的文件名和格式。
配置示例:
CustomLog "logs/access.log" common
(使用標識符common定義的格式來記錄logs/access.log這個日誌文件)
17. TransferLog:指定日誌文件的位置。
本指令除不容許直接定義日誌格式或根據條件進行日誌記錄外,與CustomLog指令有完全相同的參數和功能。
18. Alias:映射URL到文件系統的特定區域。Alias指令使客戶端能夠訪問到DocumentRoot之外的本地文件。
配置示例:
Alias /myphoto "E:/照片"
<Directory "E:/照片">
Options Indexes
Require all granted
</Directory>
目錄/myphoto是相對於DocumentRoot的相對路徑,甚至能夠是一個不存在的目錄,這時訪問該目錄就會映射到「E:/照片」目錄中。
注意:必定要經過<Directory>段明確地對目標目錄設定訪問權限,不然會提示「forbidden」。
Redirect:將一個路徑重定向到另外一個路徑下。
配置示例:
Redirect /haha /chsfc
(Redirect和Alias不一樣,配置中的兩個路徑都是在DocumentRoot目錄下的)
注意:要使用Alias和Redirect都應該先開啓alias_module模塊功能。
19. ScriptAlias:映射一個URL到文件系統並視之爲CGI腳本目錄。
配置示例:
ScriptAlias /cgi-bin/ "D:/wamp/bin/Apache2.4.23/cgi-bin"
20. DefaultType:當服務器沒法肯定一個文檔的內容類型時發送的默認MIME內容類型。
配置示例:
DefaultType text/plain (純文本,瀏覽器在內部打開)
DefaultType application/octet-stream (瀏覽器提示用戶進行保存)
21. AddType:爲特定後綴的文件指定MIME類型,這裏的設置將覆蓋mime.types中的設置。
配置示例:
AddType application/x-httpd-php .php .html .htm (前導點可帶可不帶)
22. ErrorDocument:批示當遇到錯誤的時候服務器將給客戶端什麼樣的應答。
語法:
ErrorDocument error-code document
其中error-code時服務器返回的錯誤代碼,document是迴應的數據,能夠是簡單的文本,
本地網頁,本地CGI程序,或遠程主機上的網頁。
配置示例:
ErrorDocument 500 "The server made a boo boo."
ErrorDocument 402 http://www.example.com/subscription_info.html
23. EnableMMAP:指示httpd在遞送中若是須要讀取一個文件的內容,是否可使用內存映射。
配置示例:
EnableMMAP On
EnableMMAP Off
(這種內存映射有時會帶來性能的提升,有時卻會出現問題)
24. EnableSendfile:控制httpd是否可使用操做系統內核的sendfile支持來將文件發送到戶端。
配置示例:
EnableSendfile Off
(這個sendfile機制避免了分開的讀和寫操做以及緩衝區分配,可是在一些平臺或文件系統上會引起一些問題)
25. include:在服務器配置文件中包含其餘配置文件。
配置示例:
include conf/extra/httpd-autoindex.conf
在Apache安裝目錄下的conf/extra/目錄中有一些補充配置文件,能夠根據須要,經過配置將它們包含到主配置文件conf/httpd.conf文件中。
注意:寫Apache配置時,千萬不能出現拼寫錯誤,否則服務器會一直重啓失敗!