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檔案存放目錄(預設配置)