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
参考: