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