Apache HTTP 伺服器第 2.4 版
相關模組 | 相關指令 |
---|---|
Apache HTTP 伺服器設定方式為將指令配置在純文字設定檔裡。通常主要設定檔被稱為 httpd.conf
。此檔案位置在編譯時設定,但可以透過 -f
命令列旗標覆寫。此外,可以使用 Include
指令新增其他設定檔,並可使用萬用字元來包含多個設定檔。任何指令都可以放置在這些設定檔中。主設定檔案的變更只有在 httpd 啟動或重新啟動時才會被辨識。
伺服器也會讀取包含 MIME 文件類型的檔案;檔名由 TypesConfig
指令設定,預設為 mime.types
。
httpd 設定檔中每一行有一個指令。反斜線「\」可以用作行末最後一個字元,表示指令會繼續到下一行。反斜線和行尾中間不能有其他字元或空白處。
指令的參數以空白分隔。如果參數包含空白處,您必須用引號將該參數括起來。
組態檔案中的指令不分大小寫,但指令參數通常區分大小寫。以雜湊字元「#」開頭的列被視為註解,且會被忽略。不得將註解包含在與組態指令相同的列中。指令前的空白會被忽略,所以您可以縮排指令以增加清晰度。空白列也會被忽略。
使用
或 shell 環境變數定義的變數值可以使用 Define
${VAR}
語法在組態檔案列中使用。如果「VAR」是有效變數的名稱,該變數的值將被取代到組態檔案列中的該位置,然後將繼續處理,就像該文字是直接在組態檔案中找到的一樣。使用
定義的變數優先於 shell 環境變數。如果找不到「VAR」變數,字元 Define
${VAR}
將保持不變,並記錄警告。變數名稱不得包含冒號「:」字元,以避免與
的語法發生衝突。RewriteMap
只有在伺服器啟動之前定義的 shell 環境變數才能用於擴充。在組態檔案本身中定義的環境變數,例如使用
,生效太慢而無法用於組態檔案中的擴充。SetEnv
在變數取代和連接任何換行之後,一般組態檔案中列的最大長度約為 16 MiB。在 .htaccess 檔案 中,最大長度為 8190 個字元。
您可以使用 apachectl configtest
或 -t
命令列選項來檢查組態檔案的語法錯誤,而不啟動伺服器。
您可以使用
的 mod_info
-DDUMP_CONFIG
來傾印組態,並解析所有包含的檔案和環境變數,並移除所有註解和不匹配的
和 <IfDefine>
部分。但輸出不會反映重複指令可能發生的合併或覆寫。<IfModule>
相關模組 | 相關指令 |
---|---|
httpd 是一個模組化伺服器。這表示核心伺服器僅包含最基本的功能。擴充功能是透過可載入 httpd 的模組提供的。預設情況下,一套基本模組在編譯時就包含在伺服器中。如果伺服器編譯為使用動態載入模組,則可使用LoadModule
指令在任何時候個別編譯並新增模組。否則,必須重新編譯 httpd 才能新增或移除模組。設定指令可以包含具有特定模組存在的條件,只需將其放在<IfModule>
區塊中即可。不過,<IfModule>
區塊不是必要的,在某些情況下它可能會隱藏您遺漏重要模組的事實。
如要查看目前編譯到伺服器中的模組,可以使用-l
指令列選項。您也可以使用-M
指令列選項查看動態載入哪些模組。
相關模組 | 相關指令 |
---|---|
放置在主設定檔中的指令套用到整個伺服器。如果您只想變更伺服器一部分的設定,可以將指令放在<Directory>
、<DirectoryMatch>
、<Files>
、<FilesMatch>
、<Location>
和<LocationMatch>
區段來設定其範圍。這些區段會將其包含的指令套用到特定的檔案系統位置或 URL。它們也可以巢狀,讓設定能夠非常精細。
httpd 有能力同時提供許多不同的網站。這稱為虛擬主機。指令的範圍也可以透過放置在<VirtualHost>
區段中來設定,因此它們只會套用到特定網站的請求。
雖然大多數指令都可以放置在這些區段中的任何一個,但有些指令在某些情況下沒有意義。例如,控制程序建立的指令只能放置在主伺服器環境中。若要找出哪些指令可以放置在哪些區段中,請查看指令的環境。有關進一步的資訊,我們提供有關目錄、位置和檔案區段運作方式的詳細資料。
相關模組 | 相關指令 |
---|---|
httpd 允許透過放置於 Web 樹中特定的檔案,進行分散式配置管理。特定檔案通常稱為 .htaccess
,不過在 AccessFileName
指令中可以指定任何名稱。置於 .htaccess
檔案中的指令套用於放置檔案的目錄和所有子目錄。.htaccess
檔案遵循與主設定檔相同的語法。由於 .htaccess
檔案在每次要求時都會讀取,因此在這些檔案中所做的變更會立即可見。
若要找出可以放置於 .htaccess
檔案中的指令,請查看指令的 內容。伺服器管理員還可以透過在主設定檔中設定 AllowOverride
指令,來進一步控制哪些指令可以放置於 .htaccess
檔案中。
關於 .htaccess
檔案的詳細資訊,請參閱 .htaccess 簡介。