Apache常用配置

                                     Apache常用配置詳解

Apache配置文件:conf/httpd.conf。(注意:表示路徑時使用‘/’而不使用‘\’,註釋使用‘#’)

1. ServerRoot:服務器根目錄,也就是Apache的安裝目錄,其他的目錄配置若是使用相對路徑,都是相對於服務器根目錄的。

   配置示例:

   ServerRoot  “D:/wamp/bin/Apache2.4.23”

2. Listen:服務器監聽的端口,可以只配置端口,也可以同時指定IP地址和端口,還可以指定使用的協議。(可配置多個端口)

   完整配置示例:

   Listen 127.0.0.1:80 http

3. DocumentRoot:網站的根目錄,也就是放置網站文件的地方。

   配置示例:

   DocumentRoot = “D:/wamp/www”

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  [email protected]

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文件中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章