配置檔案解析
apache配置檔案預設位於/usr/local/apache2/conf目錄下,在該目錄下最主要的配置檔案是httpd.conf檔案,還有一些位於extra目錄下的附加配置檔案。此外original目錄中存有所有這些配置檔案的副本。apache http sever主配置檔案主要由指令以及容器組成,容器使用《容器名稱》開始,serverroot指令設定apache軟體的安裝主目錄,如果採用原始碼安裝則預設路徑為/usr/local/apache2。
apache http server的特色之一就是她的功能多數是以模組方式載入的,但如果希望apache動態載入模組,需要在編譯apache時通過–enable-so將mod_so以靜態方式編譯到apache核心模組中,loadmodule指令的作用就是載入模組。語法格式為loadmodule 模組 模組檔名稱,模組檔案一般位於serverroot指定目錄下的modules目錄中。
loadfile指令功能類似於loadmodule,區別在於loadfile可以通過絕對路徑載入modules目錄以為的模組檔案。
servername指令設定伺服器本機的主機名稱以及埠,對於url位址的重定向很重要。
該指令設定web服務對客戶端開放可見的文件根目錄,也就是客戶端訪問**的根路徑,預設為/usr/local/apache2/htdocs。
errorlog定位伺服器錯誤日誌的位置,預設使用相對路徑,為serverroot指定目錄下的」logs/error_log」檔案。
設定錯誤日誌的格式,apache http server事先定義了很多格式字串 可以直接引用。
該指令設定客戶端的訪問日誌檔名以及日誌格式,預設為」logs/access_log」,語法格式為customlog 檔名 格式。
描述使用者日誌檔案格式,可以直接使用apache預先設定的格式字串,一般我們會為logformat指令設定的日誌格式建立別名,然後可以再通過customlog指令呼叫該日誌格式別名。
include指令允許apache在主配置檔案中載入其他的配置檔案,該指令語法比較簡單,inclde指令後直接跟上其他附加配置檔案路徑即可。
為特定目錄設定選項,語法格式為options [+|-]選項 [[+|-]選項]。選項可以設定為none,代表不啟用任何額外功能,也可以使用如下常用選項。
all:開啟出來multiviews之外的所有選項。
execcgi:允許執行cgi指令碼。
followsymlinks:允許目錄下通過鏈結檔案鏈結到目錄外的檔案或目錄。
indexes:如果與url對應的目錄下,沒有directoryindex指定的首頁文件,則apache
將會把當前目錄的所有檔案索引出來。
控制預設訪問狀態以及allow與deny次序,如果使用order deny,allow,則先檢查拒絕,沒有拒絕則預設允許。如何使用order allow,deny,則先檢查允許,沒有允許則預設拒絕。
以下為具體案例:
order deny,allow
deny from all
先檢查拒絕規則,再檢查允許規則,預設為允許。這裡deny from all代表拒絕所有,所以最終結果為拒絕所有。
order allow,deny
allow from all
先檢查允許規則,再檢查拒絕規則,allow from all代表允許所有,所以最終結果為允許所有。
order allow,deny
allow from 192.168.0.1
先檢查允許規則時允許192.168.0.1,其餘為預設值,預設為拒絕所有,最終除192.168.0.1外拒絕所有。
order allow,deny
allow from 192.168.0.1
deny from all
先檢查允許規則時允許192.168.0.1訪問,但檢查拒絕規則時為拒絕所有,而192.168.0.1也包含在all之中,當allow與deny有衝突時,以order最後的規則覆蓋其他的規則,本案例將使用deny規則覆蓋allow規則,最終效果為拒絕所有人訪問。
order deny,allow
deny from all
allow from 192.168.0.1
先檢查拒絕規則,再檢查允許規則,拒絕規則為拒絕所有,允許規則為允許192.168.0.1,拒絕與允許規則有衝突的部分本案例將採用allow的規則,最終本案例可以實現僅允許192.168.0.1訪問,其他任何主機均無法訪問apache服務。
ifdefine容器封裝的指令僅在啟動apache時測試條件為真才會被處理,測試條件需要在啟動apache時通過httpd -d定義。語法格式為指令。具體案例如下:
loadmodule mem_cache_module modules/mod_mem_cache.so
< /ifdefine>
< ifdefine usecache>
loadmodule cache_module modules/mod_ cache.so
< /ifdefine>
這樣的配置可以讓管理員採用多種配置方式啟動apache,啟動apache時如果使用了httpd -dusecache -dmemcache,則apache將載入mod_mem_cache與mod_cache模組,如果沒有使用-d指定任何引數,則apache將不載入這些模組。
使用ifmodule容器可以封裝僅在條件滿足時才會處理的指令,根據指定的模組是否載入決定條件是否滿足,語法格式
以上配置說明,僅在apache載入了unixd_module模組後user daemon與group daemon才會被apache處理。該容器內的指令僅應用於特定的檔案系統目錄、子目錄以及目錄下的內容,語法格式為指令。路徑可以使用~匹配正規表示式。具體案例如下:
options indexs followsymlinks
< /directory>
< directory ~ 「^/www/[0-9]」>
allowoverride none
< /directory>
以上案例中opions index followsymlins僅對/usr/local/apache2/htdocs目錄有效,allowoverride none僅對所有/www目錄下包含三個數字的子目錄有效。
directorymatch類似於directory,但可以直接使用正規表示式匹配,而無需像directory一樣使用~符號才可以匹配。
該容器類似於directory容器,但files容器內的指令僅應用於特定的檔案,語法格式如下:location容器內定義的指令僅對特定的url有效,語法格式為指令,如果需要使用正規表示式匹配url可以使用~符號。
locationmatch僅使用正規表示式匹配url,等同於使用了~符號匹配的location。
Apache 主配置檔案大致解析
1.軟體的安裝 yum install httpd2.開啟服務 3.檢視埠是否開啟 netstat ntl4.解析配置檔案 servertokens prod full 該引數設定http頭部返回的apache版本資訊 引數 prod 僅軟體名稱,例如 apache major 包括主版本號,例如 ...
Apache 配置檔案
http.conf是apache的配置檔案這個是讓.txt字尾的檔案可執行php,如果txt檔案中包括php 則該檔案和.php字尾的檔案完全 一樣,都成為動態檔案,在伺服器端處理。如果在httpd.conf中不設定此語句,則以字元的形式直接讀取txt檔案中的內容,不作php處理。2 loadmod...
apache配置檔案詳解
配置檔案詳解 檔案位置 serverroot etc httpd 伺服器的根路徑,改檔案中所有涉及到的路徑的根都是相對它而言的。listen 80 監聽的埠 include conf.modules.d conf 包含輔助配置檔案目錄下的所有以.conf結尾的 檔案 etc httpd conf.m...