主服務器設置
Apache服務器需要各種設置,以定義自己使用各種參數以提供Web服務。對於使用虛擬主機的情況,除了在虛擬主機的定義項中覆蓋的設置之外(有的設置必須重新定義),這裡的設置也是虛擬主機的缺省設置。
Port 80
Port定義了Standalone模式下httpd守護進程使用的端口,標准端口是80。這個選項只對於以獨立方式啟動的服務器才有效,對於以inetd方式啟動的服務器則在inetd.conf中定義使用哪個端口。
在Unix下使用80端口需要root權限,一些管理員為了安全的原因,認為 httpd 服務器不可能沒有安全漏洞,因而更願意使用普通用戶的權限來啟動服務器,這樣就不能使用80端口及其他小於1024的端口,而必須使用大於 1024的端口來啟動httpd,一般情況下8000或8080也是常用的端口。而Apache httpd服務器本身可以在以root權限打開80端口後再改變為普通用戶身份進行運行,這樣就減少了危險性,因而就不需要考慮這個安全問題。但是如果普通用戶也想安裝配置自己的WWW服務器,那麼就不得不使用大於1024的端口。
User nobody
Group nogroup
User和Group配置是Apache的安全保證,Apache在打開端口之後,就將其本身設置為這兩個選項設置的用戶和組權限進行運行,這樣就降低了服務器的危險性。這個選項也只用於 Standalone模式,inetd模式在inetd.conf中指定運行Apache的用戶。由於服務器必須執行改變身份的setuid()操作,因此初始進程應該具備root權限,如果是使用非root用戶來啟動Aapche,這個配置就不會發揮作用。
缺省設置為nobody和nogroup,這個用戶和組在系統中不擁有文件,保證了服務器本身和由它啟動的CGI 進程沒有權限更改文件系統。在某些情況下,例如為了運行CGI與Unix交互,也需要讓服務器來訪問服務器上的文件,如果仍然使用nobody和nogroup,那麼系統中將會出現屬於nobody的文件,這對於系統安全是不利的,因為其他程序也會以nobody和nogroup的權限執行某些操作,就有可能訪問這些nobody擁有的文件,造成安全問題。一般情況下要為Web服務設定一個特定的用戶和組,同時在這裡更改用戶和組設置。
ServerAdmin [email protected]
配置文件中應該改變的也許只有ServerAdmin, 這一項用於配置WWW服務器的管理員的email地址,這將在HTTP服務出現錯誤的條件下返回給浏覽器,以便讓Web使用者和管理員聯系,報告錯誤。習慣上使用服務器上的webmaster作為WWW服務器的管理員,通過郵件服務器的別名機制,將發送到webmaster 的電子郵件發送給真正的Web管理員。