Apaceh配置檔

本文將描述用於配置Apache HTTP伺服器的檔。

主配置檔

通過將指令放在純文本配置檔中來配置Apache。主配置檔通常是一個名稱為:httpd.conf的文本檔。此檔的位置在編譯時設置,但可以使用-f命令行標誌覆蓋。此外,可以使用Include指令添加其他配置檔,並且可以使用通配符包含許多配置檔。任何指令都可以放在任何這些配置檔中。只有Apache在啟動或重新啟動時才能識別對主配置檔的更改。

伺服器還讀取包含mime文檔類型的檔; 檔案名由TypesConfig指令設置,默認為mime.types

配置檔的語法

Apache配置檔每行包含一個指令。反斜杠\可以用作一行的最後一個字元,表示該指令繼續到下一行。反斜杠和行尾之間不能有其他字元或空格。

配置檔中的指令不區分大小寫,但指令的參數通常區分大小寫。以井號#開頭的行被視為注釋,並被忽略。注釋可能不會與配置指令包含在同一行中。忽略指令之前出現的空格,因此為了清楚起見,您可以縮進指令。空行也被忽略。

可以使用語法${ENVVAR}在配置檔行中使用shell環境變數的值。如果“ENVVAR”是有效環境變數的名稱,則該變數的值將替換為配置檔行中的該位置,並繼續處理,就好像該文本直接在配置檔中找到一樣。(如果未找到ENVVAR變數,則字元${ENVVAR}保持不變,以供配置檔處理中的後續階段使用。)

在環境變數替換之後,連接任何連續行並刪除前導和尾隨空格的配置檔中的行的最大長度為8192個字元。

可以使用apachectl configtest-t命令行選項檢查配置檔中的語法錯誤,而無需啟動伺服器。

模組化

Apache是一個模組化伺服器。這意味著核心伺服器中只包含最基本的功能。可以通過可以加載到Apache的模組獲得擴展功能。默認情況下,伺服器在編譯時包含一組基本模組。如果伺服器編譯為使用動態加載的模組,則可以單獨編譯模組,並使用LoadModule指令隨時添加模組。否則,必須重新編譯Apache以添加或刪除模組。配置指令可以通過將它們封裝在<IfModule>塊中而以包含特定模組的條件為條件。

要查看當前編譯到伺服器中的模組,可以使用-l命令行選項。

指令的範圍

放置在主配置檔中的指令適用於整個伺服器。如果您只想更改伺服器的一部分配置,可以將指令放在<Directory><DirectoryMatch><Files><FilesMatch><Location><LocationMatch>部分中。這些部分限制了它們包含在特定檔系統位置或URL中的指令的應用。它們也可以嵌套,允許非常精細的粒度配置。

Apache可以同時為許多不同的網站提供服務。這稱為虛擬主機。指令也可以通過將它們放在<VirtualHost>部分中來限定範圍,以便它們僅適用於特定網站的請求。

儘管大多數指令可以放在這些部分中的任何部分中,但某些指令在某些情況下沒有意義。例如,控制進程創建的指令只能放在主伺服器上下文中。要查找哪些指令可以放在哪些部分中,請檢查指令的上下文。

.htaccess檔

Apache允許通過放置在Web樹中的特殊檔來分散管理配置。特殊檔通常稱為.htaccess,但可以在AccessFileName指令中指定任何名稱。放置在.htaccess檔中的指令適用於放置檔的目錄和所有子目錄。.htaccess檔遵循與主配置檔相同的語法。由於每次請求都會讀取.htaccess檔,因此對這些.htaccess檔所做的更改會立即生效。

要查找可以放在.htaccess檔中的指令,請檢查指令的上下文。伺服器管理員通過在主配置檔中配置AllowOverride指令,進一步控制可以在.htaccess檔中放置哪些指令。


上一篇: Apache綁定指定地址與端口 下一篇: Apache配置片段