Apache启动时,会绑定本机上的地址和端口,然后等待请求的进入。默认情况下,它会监听本机的所有地址。但是,当需要监听特定的地址或端口或地址与端口的组合,或者需要对不同的IP地址、主机名、端口作出不同的响应(如使用虚拟主机)时,就必须明确指定。
Listen指令告诉服务器接只受来自特定端口(或地址+端口的组合)的请求。如果Listen指令仅指定了端口,则服务器会监听所有的IP地址;如果指定了地址+端口的组合,则服务器只监听来自此特定地址上特定端口的请求。使用多个Listen指令,可以指定在多个地址和端口上进行监听。
举例说明如下:
Listen 8002 (8002为要监听的端口)
2.设置要访问的目录的访问权限
<Directory>和</Directory>用于封装一组指令,使之仅对某个目录及其子目录生效。任何可以在"directory"作用域中使用的指令都可以使用。Directory-path可以是一个目录的完整路径,或是包含了Unix shell匹配语法的通配符字符串。在通配符字符串中,"?"匹配任何单个的字符,"*"匹配任何字符序列。您也可以使用"[]"来确定字符范围。以上通配符都不能匹配"/"字符。所以<Directory public_html>能够正确匹配。
举例说明如下:
<Directory "E:/caixun/WorkingArea/Codes/Client/php2.0/futures/index">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks Includes
#Options指令控制了在特定目录中将使用哪些服务器特性。
#option可以为None ,在这种情况下,将不启用任何额外特性。或设置为以下选项中的一个或多个:(介绍几个个人认为比较重要的,根据需要配置,不要开启用不到的选项,详细请参考apache手册)
#Indexes
#如果一个映射到目录的URL被请求,而此目录中又没有DirectoryIndex(例如:index.html),那么服务器会返回由mod_autoindex生成的一个格式化后的目录列表。
#FollowSymLinks
#服务器允许在此目录中使用符号连接。不知道符号链接?去学习linux。
#Includes
#允许使用mod_include提供的服务器端包含。
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
#AllowOverride仅在不包含正则表达式的<Directory>配置段中才是有效的。在<Location>, <DirectoryMatch>, <Files>配置段中都是无效的。
#如果此指令被设置为None ,那么.htaccess文件将被完全忽略。事实上,服务器根本不会读取.htaccess文件。
#当此指令设置为 All时,所有具有".htaccess"作用域的指令都允许出现在.htaccess文件中。其他参数请参考apache手册。
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
#Order指令控制默认的访问状态与Allow和Deny指令生效的顺序。Ordering取值范围是以下几种范例之一:
#Deny,Allow
#Deny指令在Allow指令之前被评估。默认允许所有访问。任何不匹配Deny指令或者匹配Allow指令的客户都被允许访问。
#Allow,Deny
#Allow指令在Deny指令之前被评估。默认拒绝所有访问。任何不匹配Allow指令或者匹配Deny指令的客户都将被禁止访问。
#Mutual-failure
#只有出现在Allow列表并且不出现在Deny列表中的主机才被允许访问。这种顺序与"Order Allow,Deny"具有同样效果,不赞成使用。
#关键字只能用逗号分隔;它们之间不能有空格。注意在所有情况下每个Allow和Deny指令语句都将被评估。
#Allow指令控制哪些主机可以访问服务器的该区域。可以根据主机名、IP地址、 IP地址范围或其他环境变量中捕获的客户端请求特性进行控制。
#这个指令的第一个参数总是"from",随后的参数可以有三种不同形式:如果指定"Allow from all",则允许所有主机访问。详细说明请参考apache手册。
</Directory>
3.配置虚拟主机
<VirtualHost>和</VirtualHost>用于封装一组仅作用于特定虚拟主机的指令。任何在虚拟主机配置中可以使用的指令也同样可以在这里使用。当服务器接受了一个特定虚拟主机的文档请求时,它会使用封装在<VirtualHost>配置段中的指令。Addr可以是: 虚拟主机的IP地址
虚拟主机IP地址对应的完整域名
字符"*",仅与"NameVirtualHost *"配合使用以匹配所有的IP地址
字符串"_default_",与基于IP的虚拟主机联用以捕获所有没有匹配的IP地址
您可以指定一个":port"来改变匹配的端口。如果没有指定,它将沿用主服务器中离它最近的那个Listen指定的值。您也可以指定":*"来匹配那个地址上的所有端口(当您使用"_default_"时,这是推荐采用的方法)。
举例说明如下:
<VirtualHost 127.0.0.1:8002>
ServerAdmin [email protected]
DocumentRoot E:caixunWorkingAreaCodesClientphp2.0futuresindex
ServerName future.caixun.com
ErrorLog logs/host.foo.com-error_log
TransferLog logs/host.foo.com-access_log
</VirtualHost>
其中的指令很简单,就不一一说明了。本人也只知道皮毛,在各位大侠面前班门弄斧请勿见怪,只为了帮助初学者掌握,请不要拍板砖。
声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。