httpd.conf 設定檔的參數說明
1. 基礎環境設定:
以下這些在 httpd.conf 中的選項分別代表的意義為:
ServerType
standalone ⇐上面在設定啟動 apache 的狀態,如果是 standalone 表示開機即執行,通常我們都是選擇 standalone 這個(預設值),不過,若選擇:ServerType inetd :則表示使用網際網路的服務來連線時才啟動!
ServerRoot
“/usr/local/apache” ⇐表示 apache 的目錄所在地
Timeout
300 ⇐這是用來設定連接到你這部主機的用戶端,當超過 300 秒用戶端還沒有辦法連上你的主機時,就予以斷線處理!
MinSpareServers
5 ⇐若是小站或是一般小型個人網站,可以改成 3
MaxSpareServers
10 ⇐若是小站或是一般小型個人網站,可以改成 5
StartServers
5
MaxClients
150 ⇐若是小站或是一般小型個人網站,可以改成 100
上面兩個是開啟 httpd 服務數目的地方,當你執行 httpd 之後,在 shell 下執行 ps -aux|grep httpd 就可以看到 httpd 的數目量,通常這與你的 RAM 有關,如果是小站的話,可以設小一點,例如最小設 3 最大設 5 即可!而
StartServers 則設與 Min 相同即可! 至於
MaxClients 則可以設小一點,因為設定太大很耗系統資源,而太小則無法讓很多人連上來!所以可以設成例如
100。
Port
80 ⇐這東西儘量不用動,因為 www 服務的預設通訊口(port)就是 80,除非你要自己架一個別人連不進來的網站(內部網站),
User
nobody ⇐
Group
nobody ⇐ 將 apache 預設為 nobody 這個人及群組!意即所有人皆可以使用
ServerAdmin
vbird@vbird.adsldns.org ⇐這個是設定你的機器的 httpd 管理員帳號!設成你的帳號吧!
ServerName
vbird.adsldns.org ⇐這是你主機的名稱,先將前面的註解符號拿掉吧!請設定吧,如果你沒有主機名稱,就選 localhost 吧!
BindAddress
* ⇐是用來允許你的 WWW 接受虛擬 IP 的機器的項目,例如你的虛擬網域為192.168.1.0 ,則可以將 * 改成 192.168.1.0 喔!通常如果要接受虛擬 IP 的話,直接打 * 就好了!
* 2. 路徑設定:
以下的參數在設定每一個網頁或者是服務的路徑所在!(舊版在 access.conf 中)
DocumentRoot "/usr/local/apache/htdocs"
上面這個在設定你的主機的主要首頁所在,由於我們設定主機名稱為:vbird.adsldns.org ,則當別人在網址列上打入
vbird.adsldns.org 時,系統將會把 /usr/local/apache/htdocs 這個路徑下的首頁檔案傳出去!你也可以自行改變這個路徑!
<Directory "/usr/local/apache/htdocs">
Options
Indexes ExecCGI FollowSymLinks MultiViews
AllowOverride None
Order
allow,deny
Allow
from all
</Directory>
上面顯示在主機主網頁放置的目錄下 WWW 所可以進行的事情! options 為網頁可以進行的工作,可以複選,有以下的幾個項目:
ExecCGI:表示可以在這個目錄中執行
CGI 程式;
FollowSymLinks:表示可以連結至他處;
MultiViews:表示可以執行動畫、音樂等項目
AllowOverride None 表示任何人都可以讀取資料;
至於Allow from all 則表示你的主機接受任何位置來源的連接。
<IfModule
mod_userdir.c>
UserDir
public_html
</IfModule>
上面這個選項需要開啟,那樣你的用戶帳號才可以有首頁!
而你用戶的首頁放置在 /home/user/public_html 下,你可以將
public_html
改成 WWW ,則用戶的首頁就需要放在
/home/user/www,若以上面的設定,則以我為例,我的首頁需要放在
/home/vbird/public_html 底下才行!
<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.php
</IfModule>
這個是用來說明首頁的檔案名稱,通常預設值是 index.html,但是有些
網頁編輯器的附檔名是 index.htm ,所以你可以加上後面的幾個檔名,
如此一來,你的首頁就可以支援多種檔名了!
—-
# 語法:ServerType [standalone/inted]
# 說明:定義 httpd 的啟動方式
#
standalone:開機後立即執行,效率較高,http獨立執行,即使沒有瀏覽者連入本網站,都會啟動httpd以隨畤提供服務。
#
inted:需要時才臨時啟動,監聽所有進入本機請求的port,然後核對port所對應的服務以決定要用哪一個服務,再執行httpd,當請求完結就將httpd結束。
# 語法:Port [編號]
# 說明:指定 httpd 服務的閘道,一般是 80,
# 語法:HostNameLookups [on/off]
# 說明:設定要不要把自動搜尋 HostName 的功能打開
# 設定為on時,則會記錄進入此網站使用者的主機名稱(例如fo23.flag.com.tw)
# 設為off,則僅記錄使用者主機的IP(例如203.74.205.23)
# 語法:User [username/#uid]
# 說明:設定 httpd 這程式的執行者是誰.
# 一般是 nobody,也可以是已註冊的 user,若用 user id 要加上
# 號
# 語法:Group [groupname/#gid]
# 說明:設定 httpd 這程式的執行者所屬的群組
# 一般是 nogroup,此 group 必須要存在於 /etc/group 中
# 語法:Server Admin [E-mail 位址]
# 說明:設定此 web 站管理者的 E-mail位址,在系統發生錯誤時,方便與管理者聯絡
# 語法:ServerRoot [目錄的絕對路徑]
# 說明:設定 apache 所安裝的絕對路徑,所有網站相關的襠案都存放在此目錄中
# 舉例:ServerRoot /usr/local/apache
# 語法:BindAddress [*/IP/FQDN]
# 說明:強迫 apache 只對某個特定位址反應, * 則是對所有位址都反應
# 如果要採用 Virtual Host 虛擬主機功能,務必要設為 BindAddress *
# 說明:設定要以哪一個 address 來服務,可使用 IP 或完整的主機名稱(FQDN),
# * 是全部接受
# 當使用虛擬主機功能畤,一台電腦上可能有幾張網路卡分別設定不同的IP。BindAddress 設為*,表示系統會監聽每一個IP的連線;設為IP值,則僅監聽該IP的連線;亦可設定為domain
name,僅監聽來自該處的連線
# 語法:ErrorLog [檔案名稱]
# 說明:記錄執行 apache 時所產生的錯誤訊息,如果檔名不是以 / 開頭,那就不會連接到 ServerRoot 的路徑下
# 舉例:ErrorLog logs/error_log
# 將錯誤訊息放在
/usr/local/apache/logs/error_log 中
#
apache 的 root
directory 在 /usr/local/apache
# 語法:LogLevel
[debug/info/notice/warm/error/crit/alert/emerg]
# 說明:設定 error_log 中記錄的錯誤訊息種類,建議值是 warm,越右邊越簡略
# 語法:CustomLog [檔案名稱][combined/common/referer/agent]
# 說明:同 ErrorLog 部份 ,是屬於傳輸記錄,並起設定該記錄所記錄的資訊
# 舉例:CustomLog logs/access_log common
(common 是建議值)
# 越右邊的參數越簡略
# 若 user 多時,此檔會變很大,要小心管理
#
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}@→%U”referel
#
LogFormat”%{User-agent}i“agent
# 設定每筆記錄的楁式,有 combined、common、referer與
agent四種
#
The location of the access logfile (Common Logfile Format)
# If
this does not start with /, ServerRoot is prepended to it.
#
CustomLog/usr/local/apacHe/Var/log/access_log common
# 存取記錄的位置,使用Comon格式
# If
you would like to have an agent and referer logfile uncomment the
#
following directives.
#
CustomLog/usr/local/apache/var/log/referer_logreferel
# 記錄瀏覽者經由本網站所連結出丟的網址,使用refere「自訂格式
#
CustomLog/usr/local/apache/var/log/agent_logagent
# 記錄瀏覽者連到本網站所使用的瀏覽器版本與種類,使用agent自訂格式
# If
you prefer a single logfile with access, agent and referer information
#
(Combined Logfile Format) you can use the following directive.
#
CustomLog /usr/local/apache/var/log/access_log combined
# 語法:PidFile [pid-filename]
# 說明:記錄 httpd 啟動時的 PID,以方便管理員的管理;方便重新啟動時做參考,這樣就不必用 ps 來尋找
# 舉例:PidFile logs/httpd.pid
#
PidFile /usr/local/apache/var/run/httpd.pid ←紀錄httpd的 PID
# 語法:ScoreBoardFile [檔案名稱]
# 說明:紀錄被使用過的檔案
# 舉例:ScoreBoardFile
logs/apache_runtime_status
# 語法:ServerName [主機名稱]
# 說明:設定該伺服器的 Domain Name ,此名稱必須是已經向貴網域的 DNS 註冊。
# 語法:CacheNegotiatedDocs
# 說明:當使用者藉 Proxy 來讀取 Web Server 時,Apache Httpd 會送出 Pragma: no-cache 的檔頭使得 Proxy Server 不會把他留在 cache 中。
# 語法:Timeout [秒數]
# 說明:設定 httpd 等待使用者下一個指令的時間,如果在此時間內使用者沒有回應,則終止服務,如果網路速度慢,時間設長一些。
# 舉例:Timeout 300
# 語法:KeepAlive [on/off]
# 說明:設定是否接受使用者之連續請求。
# 語法:MaxKeepAliveRequests [數目]
# 說明:設定能接受之最大連續請求量,如果連續請求超過此數量,
server 會自動踢掉。
# 舉例:MaxKeepAliveRequests 100 ←每次連線可提出要求數量,設為0表示不限次數,頇設為100
# 語法:KeepAliveTimeout [秒數]
# 說明:設定使用者連續請求等待的時間上限,如果 user 連續請求的時間超過此數,則不再執行此請求
# 舉例:KeepAliveTimeou 15 ←下個要求如果超過多少秒還未到達,則視為連線結束
# 語法:MaxSpareServers [數量] MinSpareServers [數量]
# 說明:設定閒置來等待服務的伺服器數量,當系統的閒置個數小於此設定時,系統會開啟更多的 server 來服務;當系統的閒置個數大於此設定時,多餘的個數會被刪掉;如果 web 使用率高,應加大
MinSpareServers
# 舉例:MaxSpareServers 10
MinSpareServers 5
# 語法:StartServers [數量]
# 說明:一開始驅動 apache httpd 時,閒置等待服務的伺服器數量
# 舉例:StartServers 5 ←(執行ps-aux指令就可以看到這5個serverprocesses)
# 語法:MaxClients [數量]
# 說明:設定最多能提供給幾個 user 同時連線
# 舉例:MaxClients 150 ←因為同時連進來的數目大多時,會降低系統存取的效能,可設定此數值限制同時連線進來的數目,若您的系統CPU很快、記憶體很多且效能很好時,可以考慮將此值調高.否則就降低一點
# 語法:MaxRequestsPerChild [數量]
# 說明:設定每個子程序所能接受的最大服務次數,當達到此數目時,子程序會自動關閉
# 舉例:MaxRequestsPerChild 30
# 語法:ProxyRequests [On/Off]
# 說明:開啟或關閉 Proxy 的功能,內定值是關閉,大部份情況也是關閉。用標準安裝時,Apache並沒有將 proxy 模組加入,若需要此功能,請參考INSTALLS檔的誽明。
# 語法:<VirtualHost
[hostname]>..</VirtualHost>
# 說明:虛擬主機的設定;在做此設定之前,必須有支援 multipule
address 或有一片以上的網路卡
# 舉例:
#
NameVirtualHost 203.72.230.212 ## 一定要設,apache 1.3以上才有的改變
#
<VirtualHost wwwa.hmes.kh.edu.tw> ## 第一部份
#
ServerAdmin webadmin@hmes.kh.edu.tw
# 設定虛擬主機的管理者信箱,不一定要和本機的網站管理者相同
#
DocumentRoot /www/docs/
# 指定虛擬主機的網站主目錄
#
ServerName wwwa.hmes.kh.edu.tw ##設為 VirtualHost 的名稱
# 指定虛擬主機的URL
#
ErrorLog logs/?? ??
# 虛擬主機發生錯誤時要記錄在哪個目錄
#
TransferLog logs/??
# 虛擬主機存取之前要存放的目錄
#
</VirtualHost>
#
<VirtualHost wwwb.hmes.kh.edu.tw> ##第二個 DNS ## 第二部份
#
ServerAdmin webadmin2@hmes.kh.edu.tw
#
DocumentRoot /www/docs2/
#
ServerName wwwb.hmes.kh.edu.tw
#
ErrorLog logs/??
#
TransferLog logs/??
#
</VirtualHost>
留言
張貼留言