1. 程式人生 > >Apache配置檔案及目錄結構詳解學習整理

Apache配置檔案及目錄結構詳解學習整理

一、配置檔案 配置檔案預設分為3個部分

[[email protected] ~]# grep ‘<Section>’ /etc/httpd/conf/httpd.conf -Hn

/etc/httpd/conf/httpd.conf:33:### Section 1: Global Environment

/etc/httpd/conf/httpd.conf:252:### Section 2: ‘Main’ server configuration

/etc/httpd/conf/httpd.conf:975:### Section 3: Virtual Hosts

NO.1-Global Environment(全域性配置)

控制整個Apache伺服器行為

ServerType standalone

#表示如何執行apache,standalone(獨立式),表示使用單獨的一個httpd程序監聽客戶端請求,有請求則生成一個子程序提供服務。inetd(超級守護程序式),表示使用inetd超級程序監聽客戶端請求,有請求則生成一個httpd程序提供服務

ServerRoot “/etc/Apache” #Apache安裝目錄

PidFile logs/httpd.pid #記錄程序ID的檔案位置

ScoreBoardFile logs/apache_runtime_status #用於儲存內部伺服器程序資訊的檔案

Timeout 300 #客戶程式和伺服器連線的超時間隔

KeepAlive On #允許保持連線(每個連線有多個請求)

MaxKeepAliveRequests 100 #每個連線可接受100個請求

KeepAliveTimeout 15 #同一連線同一客戶端兩個請求之間的等待時間

MaxRequestsPerChild 0 #每個子程序死亡之前最大請求數,0表示不限制(這兒請求應該是連線吧,自己理解的,請錯的話請指出哈)

ThreadsPerChild 50 #伺服器允許50個併發執行緒同時響應

Listen 12.34.56.78:80 #繫結Apache監聽12.34.56.78的80埠

BindAddress 166.111.178.144 #告訴伺服器監聽哪個IP地址

User www #配置Apahce所屬使用者

Group www #配置Apache所屬組

LoadModule auth_basic_module modules/mod_auth_basic.so #類似配置都是載入某模組

AddModule mod_so.c mod_mime.c mod_access.c mod_auth.c mod_negotiation.c #windows中還有類似配置,據說是把Apache模組編譯成標準的Windows結構

NO.2-主站點配置

Port 80 #監聽埠

ServerAdmin [email protected] #配置Apache管理員的郵箱,網站訪問報錯時會顯示在瀏覽器中

ServerName localhost #設定主機名

DocumentRoot “/var/www/” #網站程式檔案放置位置

Options Indexes FollowSymLinks #Indexes表示開啟目錄瀏覽,FollowSymLinks表示允許符號連結,詳解:http://www.365mini.com/pag /apache-options-directive.htm

Order deny,allow #先拒絕後允許

Deny from all #預設拒絕所有

<Directory “/var/www/”> #設定/var/www目錄的特性及許可權

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

Allow from all

UserDir “/home/” #開啟UserDir功能,比如訪問地址:www.test.com/~test 則會指向 /home/test目錄

#限制HTTP(謂詞)請求方法,還有一個Limitexcept節點(排除某些方法)

Order allow,deny

Allow from all #允許上面提到的方法

DirectoryIndex index.html #指定網站的預設首頁

AccessFileName .htaccess #每個目錄中用於控制訪問資訊的檔名

<Files ~ “^.ht”> #禁止使用者訪問.htaccess檔案

Order allow,deny

Deny from all

TypesConfig conf/mime.types #指定負責處理MIME對應格式的配置檔案的存放位置

DefaultType text/plai #新增MIME型別

MIMEMagicFile conf/magic #表示模組定義檔案標識的所在位置

HostnameLookups Off #關閉DNS反查,不獲取客戶端對應的主機名,節約伺服器資源

ErrorLog logs/error.log #Apache啟動,執行錯誤日誌檔案位置

LogLevel warn #設定記錄在error.log檔案中的資訊級別(debug, info, notice, warn, error, crit等)

LogFormat “%h %l %u %t “%r” %>s %b “%{ Referer }i” “%{ User-Agent }i”” combined #定義日誌記錄的格式

LogFormat “%h %l %u %t “%r” %>s %b” common

LogFormat “%{ Referer }i -> %U” referer

LogFormat “%{ User-agent }i” agent

CustomLog logs/access.log common #網站訪問日誌位置

CustomLog logs/referer.log referer #記錄客戶訪問站點的使用者身份

CustomLog logs/agent.log agent #記錄請求訪問的使用者代理

CustomLog logs/access.log combined #同時記錄訪問,使用者身份,代理

ServerSignature On #表示使用者請求所返回的頭部資訊中包括apache版本,PHP版本等資訊,為了安全一般設定Off

Alias /your_alias /your/dqm/new/proj/root #如:www.test.com/your_alias 則會訪問到/your/dqm/new/proj/root該目錄

DefaultIcon /icons/unknown.gif #為沒有顯式定義圖示的檔案提供預設圖示

ErrorDocument 500 “The server made a boo boo.” #定義500返回碼錯誤提示

ErrorDocument 404 /missing.html #404頁面

SetHandler server-info

Order deny,allow

Deny from all

Allow from .your_domain.com

NO.3-虛擬主機

LoadModule vhost_alias_module modules/mod_vhost_alias.so #啟用模組

NameVirtualHost *:80 #虛擬主機監聽的IP及埠,預設的預設值

<VirtualHost *:80> #虛擬主機配置例項,理論上大部分主站點的配置都可以在虛擬主機中使用

ServerAdmin webmaster at dummy-host dot example.com

DocumentRoot /www/docs/test-com

ErrorLog logs/test-com-error_log

CustomLog logs/test-com-access_log common

二、主要目錄結構 [[email protected] sbin]# ll /etc/httpd/

drwxr-xr-x 2 root root 4096 Nov 28 14:29 conf

drwxr-xr-x 2 root root 4096 Sep 16 2015 conf.d

drwxrwxrwx 1 root root 19 Sep 16 2015 logs

lrwxrwxrwx 1 root root 19 Sep 16 2015 run -> …/…/var/run/httpd

drwxr-xr-x 2 root root 4096 Nov 28 14:29 vhost

drwxr-xr-x 2 root root 4096 Nov 3 22:19 bin

drwxr-xr-x 2 root root 36 Nov 3 22:19 cgi-bin

drwxr-xr-x 2 root root 23 Nov 3 22:58 htdocs

drwxr-xr-x 14 root root 8192 Jul 16 2015 manual

drwxr-xr-x 2 root root 47 Nov 3 22:44 modules

conf #主要存放了配置檔案httpd.conf

conf.d #裡面存放的是一些額外的引數文件,比如php.conf,可以自定義設定一定配置引數放置到該目錄

logs #日誌檔案存放的目錄

run #PID檔案存放的目錄(可以自行更改)

vhost #虛擬主機配置檔案存放的目錄,這個也是自定義的

bin #執行檔案存放的目錄,比如:(ab 常用壓測工具),(apachectl 控制apache啟動的,實際呼叫的httpd),(apxs apache擴充套件編譯的工具),(htpasswd 為網站設定使用者名稱密碼),(httpd apache的控制命令程式),(rotatelogs apache的日誌輪詢工具)等

cgi-bin #CGI處理程式的存放目錄

htdocs #apache網站程式檔案存放目錄(可以自定義)

manual #一些幫助及說明文件

modules #apache載入的module檔案存放目錄(預設配置)