<-
Apache > HTTP 伺服器 > 文件 > 第 2.4 版

設定檔

可用語言:  de  |  en  |  fr  |  ja  |  ko  |  tr 

此文件說明用於設定 Apache HTTP 伺服器之檔案。

Support Apache!

另參閱

top

主要設定檔

Apache HTTP 伺服器設定方式為將指令配置在純文字設定檔裡。通常主要設定檔被稱為 httpd.conf。此檔案位置在編譯時設定,但可以透過 -f 命令列旗標覆寫。此外,可以使用 Include 指令新增其他設定檔,並可使用萬用字元來包含多個設定檔。任何指令都可以放置在這些設定檔中。主設定檔案的變更只有在 httpd 啟動或重新啟動時才會被辨識。

伺服器也會讀取包含 MIME 文件類型的檔案;檔名由 TypesConfig 指令設定,預設為 mime.types

top

設定檔語法

httpd 設定檔中每一行有一個指令。反斜線「\」可以用作行末最後一個字元,表示指令會繼續到下一行。反斜線和行尾中間不能有其他字元或空白處。

指令的參數以空白分隔。如果參數包含空白處,您必須用引號將該參數括起來。

組態檔案中的指令不分大小寫,但指令參數通常區分大小寫。以雜湊字元「#」開頭的列被視為註解,且會被忽略。不得將註解包含在與組態指令相同的列中。指令前的空白會被忽略,所以您可以縮排指令以增加清晰度。空白列也會被忽略。

使用 Define 或 shell 環境變數定義的變數值可以使用 ${VAR} 語法在組態檔案列中使用。如果「VAR」是有效變數的名稱,該變數的值將被取代到組態檔案列中的該位置,然後將繼續處理,就像該文字是直接在組態檔案中找到的一樣。使用 Define 定義的變數優先於 shell 環境變數。如果找不到「VAR」變數,字元 ${VAR} 將保持不變,並記錄警告。變數名稱不得包含冒號「:」字元,以避免與 RewriteMap 的語法發生衝突。

只有在伺服器啟動之前定義的 shell 環境變數才能用於擴充。在組態檔案本身中定義的環境變數,例如使用 SetEnv,生效太慢而無法用於組態檔案中的擴充。

在變數取代和連接任何換行之後,一般組態檔案中列的最大長度約為 16 MiB。在 .htaccess 檔案 中,最大長度為 8190 個字元。

您可以使用 apachectl configtest-t 命令列選項來檢查組態檔案的語法錯誤,而不啟動伺服器。

您可以使用 mod_info-DDUMP_CONFIG 來傾印組態,並解析所有包含的檔案和環境變數,並移除所有註解和不匹配的 <IfDefine><IfModule> 部分。但輸出不會反映重複指令可能發生的合併或覆寫。

top

模組

httpd 是一個模組化伺服器。這表示核心伺服器僅包含最基本的功能。擴充功能是透過可載入 httpd 的模組提供的。預設情況下,一套基本模組在編譯時就包含在伺服器中。如果伺服器編譯為使用動態載入模組,則可使用LoadModule指令在任何時候個別編譯並新增模組。否則,必須重新編譯 httpd 才能新增或移除模組。設定指令可以包含具有特定模組存在的條件,只需將其放在<IfModule>區塊中即可。不過,<IfModule>區塊不是必要的,在某些情況下它可能會隱藏您遺漏重要模組的事實。

如要查看目前編譯到伺服器中的模組,可以使用-l指令列選項。您也可以使用-M指令列選項查看動態載入哪些模組。

top

指令的範圍

放置在主設定檔中的指令套用到整個伺服器。如果您只想變更伺服器一部分的設定,可以將指令放在<Directory><DirectoryMatch><Files><FilesMatch><Location><LocationMatch>區段來設定其範圍。這些區段會將其包含的指令套用到特定的檔案系統位置或 URL。它們也可以巢狀,讓設定能夠非常精細。

httpd 有能力同時提供許多不同的網站。這稱為虛擬主機。指令的範圍也可以透過放置在<VirtualHost>區段中來設定,因此它們只會套用到特定網站的請求。

雖然大多數指令都可以放置在這些區段中的任何一個,但有些指令在某些情況下沒有意義。例如,控制程序建立的指令只能放置在主伺服器環境中。若要找出哪些指令可以放置在哪些區段中,請查看指令的環境。有關進一步的資訊,我們提供有關目錄、位置和檔案區段運作方式的詳細資料。

top

.htaccess 檔案

httpd 允許透過放置於 Web 樹中特定的檔案,進行分散式配置管理。特定檔案通常稱為 .htaccess,不過在 AccessFileName 指令中可以指定任何名稱。置於 .htaccess 檔案中的指令套用於放置檔案的目錄和所有子目錄。.htaccess 檔案遵循與主設定檔相同的語法。由於 .htaccess 檔案在每次要求時都會讀取,因此在這些檔案中所做的變更會立即可見。

若要找出可以放置於 .htaccess 檔案中的指令,請查看指令的 內容。伺服器管理員還可以透過在主設定檔中設定 AllowOverride 指令,來進一步控制哪些指令可以放置於 .htaccess 檔案中。

關於 .htaccess 檔案的詳細資訊,請參閱 .htaccess 簡介

可用語言:  de  |  en  |  fr  |  ja  |  ko  |  tr 

top

註解

注意
這不是問答區。置於此處的留言應為改善文件或伺服器的建議,如果已實作或被視為無效/離題,我們的管理員可能會移除這些留言。有關如何管理 Apache HTTP 伺服器方面的問題,應導向我們的 IRC 頻道 Libera.chat 上的 #httpd 或發送至我們的 電子郵件清單