httpd.conf
是wamp下Apache的主要配置文件,包含服務器的配置指令,詳細參見Apache官方文檔。
指定文件名時,需要用斜杠代替反斜杠。
eg: C:/apache代替 C:\apache
建議使用絕對路徑避免混淆。
ServerSignature/ServerTokens
ServerSignature:在頁面產生錯誤時是否出現服務器版本信息。推薦設置為Off。
ServerSignature:On
ServerSignature:Off
ServerTokens:配置Http頭部返回的Apache版本信息。6種類型信息內容遞增:Prod/Major/Minor/Min/OS/Full,推薦Prod。
ServerSignature Off
ServerTokens Prod
ServerSignature文檔
ServerTokens文檔
ServerRoot
ServerRoot 服務頂級目錄樹。
不要在路徑的最后加斜杠/
。如果你指定的ServerRoot不是本地磁盤,要確定用互斥指令【Mutex directive】指定一個本地磁盤,如果基于文件的互斥指令被使用。如果你希望共享在多個httpd守護進程【daemons】中共享相同的ServerRoot,你至少需要修改PidFile。
Define APACHE24 Apache2.4
Define VERSION_APACHE 2.4.23
Define INSTALL_DIR D:/wamp64
Define APACHE_DIR ${INSTALL_DIR}/bin/apache/apache${VERSION_APACHE}
ServerRoot "${APACHE_DIR}"
互斥(Mutex)
互斥:允許你為多個不同的互斥對象設置互斥機制【mutex mechanism】和互斥文件目錄,或者修改全局默認值。
如果互斥對象是基于文件的以及默認的互斥文件目錄不在本地磁盤或因為其它原因而不適用,那么取消注釋并改變目錄。
# Mutex default:logs
監聽(Listener)
監聽:允許你綁定Apache服務器到指定ip地址和/或端口,用來代替默認值。參見<VirtualHost>
指令。
修改這個指令以偵聽下面指定的ip地址,避免Apache服務器抓取全部綁定的IP地址。
#Listen 12.34.56.78:80
Listen 0.0.0.0:80
Listen [::0]:80
動態對象/DSO共享支持
Dynamic Shared Object (DSO) Support
為了能夠使用一個作為DSO創建的模塊【modules】的功能,你需要放置相應的【corresponding】LoadModule
行在這個位置,這樣在你使用之前,這些指令就包含在模塊中了。
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
...
...
LoadModule php5_module "${INSTALL_DIR}/bin/php/php5.6.25/php5apache2_4.dll"
<IfModule unixd_module>
如果你希望httpd以不同的用戶或組來運行,你必須最初以root運行httpd,它將切換過去
User/Group:運行httpd的用戶名/組 的名字。對于大多數系統服務來講,為運行httpd創建一個專用用戶和組是一個好的實踐方法。
User daemon
Group daemon
Main
服務配置
本節的指令集用來設置`main`服務器所使用的值,服務器響應任何沒有被<VirtualHost>
定義所處理的請求。
這些值也為任何稍后你可能在下面定義的<VirtualHost>
容器【containers】提供默認值。
所有這些指令可能顯示在<VirtualHost>容器里面,在這種情況下【case】這些默認設置將被覆蓋。
ServerAdmin:你的郵箱地址,當發生問題時服務器將向此郵箱發送郵件。這個郵箱顯示在一些服務器生成的頁面,例如錯誤文檔。如:admin@your-domain.com。
ServerAdmin wampserver@wampserver.invalid
ServerName:提供用于識別自己的名字和端口。名字和端口通常由服務器自動定義,但是我們建議你明確地指定它以避免啟動過程中產生問題。
如果你的主機沒有注冊DNS域名,在這里輸入DNS的IP地址。
ServerName localhost:80
文件系統訪問權限:Apache允許對不同目錄有不同的訪問控制功能。
默認配置,拒絕所有對你服務器文件系統的訪問:
<Directory />
AllowOverride none
Require all denied
</Directory>
也可以單獨制定目錄訪問控制功能,home/blog
目錄:
<Directory "home/blog"/>
Opinions FollowSymlinks
AllowOverride None
</Directory>
HostnameLookups:啟用對客戶端IP的DNS查找。
語法: HostnameLookups on|off|double。
double:指定進行一次雙向DNS。也就是說在一次反向查詢之后,再對返回的結果進行一次forward查詢。在forward查詢結果中至少應該有一個ip地址與初始的地址相符
默認值設置為off是為了那些不需要進行反向查詢的站點節約網絡帶寬考慮的。
HostnameLookups Off
**DocumentRoot **:網絡上可以觀看的主文檔樹的目錄,默認為所有請求都從這個目錄獲取,但是可以使用符號連接(symbolic link)
和別名指定其它到位置。
語法: DocumentRoot 目錄路徑
DocumentRoot "${INSTALL_DIR}/www"
例子:
<Directory "${INSTALL_DIR}/www/">
Options +Indexes +FollowSymLinks +Multiviews
AllowOverride all
# onlineoffline tag - don't remove
Require local
</Directory>
- 指令選項可以用
None
,All
,也可以將下列指令任意組合:Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
,注意"MultiViews"
必須準確命名-----"Options All"
將不會生效。
選項指令復雜且重要。請參閱官方文檔。 -
AllowOverride
控制的指令可能包含在.htaccess文件中。它可以是All
、None
、或以下關鍵字的任意組合:AllowOverride FileInfo AuthConfig Limit
參考: