Apahce 設定指令可以分成兩大塊,核心指令和第三方提供的指令。在apache中,每個指令都對應著一個模組,而在所有模組中,最重要的就是core_module,so_module,http_module,以及mpm模組,他們除了so_moudle以外的其他模組都不可以關掉或禁止.
一:httpd.conf
(1) 主伺服器部分
1 、ServerName: 定義apache預設主機名,可以是網域名稱或IP位址
2 、ServerRoot: 用來定義伺服器所在的目錄,這個路徑通常是在設定時候由--prefix來指定的
3 、DocumentRoot: 用來指定apache提供頁面服務的根目錄,這個路徑必須是絕對路徑而不是相對路徑,如果有空格還需要用引號括起來
4 、ServerAdmin: 伺服器出錯後給管理員發郵件的位址
5 、ServerAlias 和Alias: 都用於映射目錄,只是ServerAlias將映射的目錄識別為CGI腳本目錄,並將此目錄所有檔案都當作CGI腳本對待。但是Alias只是映射為一個普通的目錄
6 、User 和Group: 用來定義用於運行apache 子程序的使用者和使用者群組
7 、Listen: 用來定義監聽apache的連接埠號碼
8 、LoadModule 指令:用於載入模組或目標檔案LoadModule cgi_module modules/mod_cgi.so_module
#9、 ErrorDocument: 自義錯誤頁面資訊ErrorDocument 500 "unknown error" 404 "/var/server/www/cgi-bin/missing_404.pl" ErrorDocument 402 http://www.nicky.com/error_402.html
10、 options : 決定在哪些目錄中使用那些特性,這些特性如下:
None: option 指令將不會起作用
ExecCGI: 允許目前目錄下執行CGI腳本
Includes: 允許使用SSI功能
IncludesNOEXEC: 允許使用SSI功能,但是exec cgi and exec cmd 功能停用
Indexes: 開立索引功能,例如一個請求到目錄URLz中沒有有DirectoryIndex 指令指定的索引文件,那麼伺服器就會自動傳回一個請求目錄內容清單
FollowSymLinks: 允許在目前環境使用符號連接,但是在Location 容器中會被忽略
All: 使用除MultiViews之外的所有特性,也是options的預設參數
MultiViews: 用於啟動mod_negotiations模組提供的多重視圖功能
11 、ServerTokens: OS/Major/Full 影響錯誤頁腳資訊的詳細程度,一般不建議使用
(2) 容器部分
1 、
<IfModule mpm_netware_module><br> DirctoryIndex index.html <br></IfModule>
如果載入則執行<IfModule ! mpm_netware_module><br> DirctoryIndex index.html <br></IfModule>
如果不載入則執行
2
依據
<IfDefine Proxy>
LoadModule proxy_module modules/libproxy.so
</IfDefine>
##</IfDefine>
##</IfDefine>
##>
#Directory: 讓它封裝的指令在它的指定的目錄或他的子目錄起作用,這個目錄必須是一個完整的路徑,當然你也可以使用萬用字元* ?匹配目錄,也考慮利用使用[]來確定字元範圍,不過不論是哪一種都不能匹配/
# Order Deny,Allow
Deny from all
#上述範例禁止了對/var/apache/html目錄的存取權限。任何請求到/var/apache/html都會被拒絕
如果希望目錄使用正規表示式,那麼需要在前面加上一個~
##Allow from all
4
Files: 只作用於文件,也可以使用通配符和[]以及在正規表示式前面~來使用正規表示式< Files "^\.css"><br> Order Deny,Allow<br>Allow from All<br></Files>
FilesMatch: Files 而不需要加上一個~符號<FilesMatch "\.(gif|jpe?g|png)$"><br>Order Deny,Allow<br>Allow from All<br></FilesMatch>
#5
#Order Allow,Deny
Deny from All
#如果以cgi開頭URL則會被拒絕
另外還可以將URL 請求對應到Apache模組處理器上,例如使用mod_status模組:<Location /server-status><br>SetHandler server-status<br></Location>
如果使用上面的配置。那麼存取/server-status,apache會將連線交給mod_status模組處理,並傳回一個Apache伺服器運行狀態頁面
容器的處理順序問題:
Apache 會優先處理Directory 容器(但是不會處理有正規表示式的Directory和.htaccess,)接著處理Files 和FilesMatch 容器,再接著就是處理Location 和LocationMatch容器
#<Location /var/apache /html>
Order deny,allow
Allow from All
</Location> ;
<Direcotry /var/apache/html>
Order allow,deny
#Allow from All
Deny from www.jons.com
#</Direcotry>
#上述例子,由於Apache會先處理
更多相關問題請造訪PHP中文網:linux影片教學
以上是Apache服務配置詳細講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!