本文將描述用于配置Apache HTTP服務器的文件。
通過將指令放在純文本配置文件中來配置Apache。主配置文件通常是一個名稱為:httpd.conf的文本文件。此文件的位置在編譯時設置,但可以使用-f命令行標志覆蓋。此外,可以使用Include指令添加其他配置文件,并且可以使用通配符包含許多配置文件。任何指令都可以放在任何這些配置文件中。只有Apache在啟動或重新啟動時才能識別對主配置文件的更改。
服務器還讀取包含mime文檔類型的文件; 文件名由TypesConfig指令設置,默認為mime.types。
Apache配置文件每行包含一個指令。反斜杠\可以用作一行的最后一個字符,表示該指令繼續(xù)到下一行。反斜杠和行尾之間不能有其他字符或空格。
配置文件中的指令不區(qū)分大小寫,但指令的參數(shù)通常區(qū)分大小寫。以井號#開頭的行被視為注釋,并被忽略。注釋可能不會與配置指令包含在同一行中。忽略指令之前出現(xiàn)的空格,因此為了清楚起見,您可以縮進指令??招幸脖缓雎?。
可以使用語法${ENVVAR}在配置文件行中使用shell環(huán)境變量的值。如果“ENVVAR”是有效環(huán)境變量的名稱,則該變量的值將替換為配置文件行中的該位置,并繼續(xù)處理,就好像該文本直接在配置文件中找到一樣。(如果未找到ENVVAR變量,則字符${ENVVAR}保持不變,以供配置文件處理中的后續(xù)階段使用。)
在環(huán)境變量替換之后,連接任何連續(xù)行并刪除前導和尾隨空格的配置文件中的行的最大長度為8192個字符。
可以使用apachectl configtest或-t命令行選項檢查配置文件中的語法錯誤,而無需啟動服務器。
Apache是一個模塊化服務器。這意味著核心服務器中只包含最基本的功能??梢酝ㄟ^可以加載到Apache的模塊獲得擴展功能。默認情況下,服務器在編譯時包含一組基本模塊。如果服務器編譯為使用動態(tài)加載的模塊,則可以單獨編譯模塊,并使用LoadModule指令隨時添加模塊。否則,必須重新編譯Apache以添加或刪除模塊。配置指令可以通過將它們封裝在<IfModule>塊中而以包含特定模塊的條件為條件。
要查看當前編譯到服務器中的模塊,可以使用-l命令行選項。
放置在主配置文件中的指令適用于整個服務器。如果您只想更改服務器的一部分配置,可以將指令放在<Directory>,<DirectoryMatch>,<Files>,<FilesMatch>,<Location>和<LocationMatch>部分中。這些部分限制了它們包含在特定文件系統(tǒng)位置或URL中的指令的應用。它們也可以嵌套,允許非常精細的粒度配置。
Apache可以同時為許多不同的網(wǎng)站提供服務。這稱為虛擬主機。指令也可以通過將它們放在<VirtualHost>部分中來限定范圍,以便它們僅適用于特定網(wǎng)站的請求。
盡管大多數(shù)指令可以放在這些部分中的任何部分中,但某些指令在某些情況下沒有意義。例如,控制進程創(chuàng)建的指令只能放在主服務器上下文中。要查找哪些指令可以放在哪些部分中,請檢查指令的上下文。
Apache允許通過放置在Web樹中的特殊文件來分散管理配置。特殊文件通常稱為.htaccess,但可以在AccessFileName指令中指定任何名稱。放置在.htaccess文件中的指令適用于放置文件的目錄和所有子目錄。.htaccess文件遵循與主配置文件相同的語法。由于每次請求都會讀取.htaccess文件,因此對這些.htaccess文件所做的更改會立即生效。
要查找可以放在.htaccess文件中的指令,請檢查指令的上下文。服務器管理員通過在主配置文件中配置AllowOverride指令,進一步控制可以在.htaccess文件中放置哪些指令。
更多建議: