apache2.4的最终配置成果:
httpd.conf

Listen 19010# Virtual hostsInclude conf/extra/httpd-vhosts.conf

httpd-vhosts.conf

# IP:Port,以端口号配置虚拟机<VirtualHost 127.0.0.1:19010>    # 网站谬误时提醒的分割管理员邮箱(可不配置)    ServerAdmin webmaster@dummy-host.example.com    # 虚拟主机根目录    DocumentRoot "${SRVROOT}"    # 服务器名称(可不配置)    ServerName dummy-host.example.com    # 服务器别名(可不配置)    ServerAlias www.dummy-host.example.com    # 谬误日志    ErrorLog "logs/dummy-host.example.com-error.log"    # 拜访日志    CustomLog "logs/dummy-host.example.com-access.log" common    # 拜访目录的配置,能够是其的一个子文件夹    <Directory "${SRVROOT}/public">        # 管制特定目录将启用哪些服务器个性        Options FollowSymLinks        # 指明Apache服务器是否去找.htacess文件作为配置文件        AllowOverride All        # 管制申请是否能够拜访        Require all granted    </Directory></VirtualHost>

局部参数具体阐明:

Options FollowSymLinks

Options指令是Apache配置文件中一个比拟常见也比拟重要的指令,Options指令能够在Apache服务器外围配置(server config)、虚拟主机配置(virtual host)、特定目录配置(directory)以及.htaccess文件中应用。
Options指令的次要作用是管制特定目录将启用哪些服务器个性。
All

示意除 `MultiViews`之外的所有个性。这也是Options指令的 **默认设置**。

None

示意不启用任何的服务器个性。

FollowSymLinks

服务器容许在此目录中应用符号连贯。如果该配置选项位于 `<Location>`配置段中,将会被疏忽。

Indexes

如果输出的网址对应服务器上的一个文件目录,而此目录中又没有 `DirectoryIndex`指令(例如: `DirectoryIndex index.html index.php`),那么服务器会返回由 `mod_autoindex`模块生成的一个格式化后的目录列表,并列出该目录下的所有文件。

MultiViews

容许应用 `mod_negotiation`模块提供内容协商的"多器重图"。

SymLinksIfOwnerMatch

服务器仅在符号连贯与指标文件或目录的所有者具备雷同的用户ID时才应用它。

ExecCGI

容许应用 `mod_cgi`模块执行CGI脚本。

Includes

容许应用 `mod_include`模块提供的服务器端蕴含性能。

IncludesNOEXEC

容许服务器端蕴含,但禁用"#exec cmd"和"#exec cgi"。但仍能够从 `ScriptAlias`目录应用"#include virtual"虚构CGI脚本。
AllowOverride All

AllowOverride参数就是指明Apache服务器是否去找.htacess文件作为配置文件,如果设置为none,那么服务器将疏忽.htacess文件,如果设置为All,那么所有在.htaccess文件里有的指令都将被重写。对于AllowOverride,还能够对它指定如下一些能被重写的指令类型。
从安全性思考,根目录的AllowOverride属性个别都配置成不容许任何Override 。
None

网站 .htaccess 文件将被齐全疏忽。

All

所有具备 .htaccess 作用域的指令都容许呈现在 .htaccess 文件中。

AuthConfig

容许应用与认证受权相干的指令(AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, 等)。

FileInfo

容许应用管制文档类型的指令(DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, mod\_mime中的 Add\* 和 Remove\* 指令等等)、管制文档元数据的指令(Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName)、mod\_rewrite中的指令(RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule)和mod\_actions中的Action指令。

Indexes

容许应用管制目录索引的指令(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, 等)。

Limit

容许应用管制主机拜访的指令(Allow, Deny, Order)。 个别 Apache 新装置 AllowOverride 默认为「None」。

个别都尽可能防止应用.htaccess文件,任何心愿放在.htaccess文件中的配置,都可放在主配置的<Directory>段中。防止应用的起因次要有:
性能问题

如果AllowOverride启用.htaccess文件,则Apache会在每个目录中查找.htaccess文件,因而启用.htaccess都会导致性能的降落。另外,对每一个申请,都须要读取一次.htaccess文件。还有,Apache必须在所有下级的目录中查找.htaccess文件,以使所有无效的指令都起作用(参见指令的失效)

平安问题

容许用户本人批改apache的配置,可能会导致某些意想不到的批改,如果给予用户较少的特权而不能满足其须要,则会带来额定的技术支持申请,所以必须明确地通知用户曾经给予他们的权限,阐明AllowOverride设置的值,并疏导他们参阅相应的阐明,免得日后生出许多麻烦。
Require all granted

在Apache2.2版本中,访问控制是基于客户端的主机名、IP地址以及客户端申请中的其余特色,应用Order(排序), Allow(容许), Deny(回绝),Satisfy(满足)指令来实现。
在Apache2.4版本中,应用mod_authz_host这个新的模块,来实现访问控制,其余受权查看也以同样的形式来实现。旧的访问控制语句该当被新的受权认证机制所取代,即使Apache曾经提供了mod_access_compat这一新模块来兼容旧语句。
用新办法取代旧语句实现雷同的访问控制示例:

1.所有申请都被回绝
Apache2.2 配置:

Order deny,allow #排序,先回绝后容许  Deny from all #回绝所有  

Apache2.4 配置:

Require all denied #回绝所有  

2.所有申请都被容许
Apache2.2 配置:

Order allow,deny #排序,先容许后回绝  Allow from all #容许所有  

Apache2.4 配置:

Require all granted #容许所有  

3.example.com所有申请都被容许,其余回绝
Apache2.2 配置:

Order Deny,Allow #排序,先回绝后容许  Deny from all #回绝所有  Allow from example.com #容许example.com  

Apache2.4 配置:

Require host example.com #容许example.com  

附:常见拜访控制指令

Require all granted #容许所有起源拜访  Require all denied #回绝所有起源拜访  Require expr expression #容许表达式为true时拜访  Require ip 10 172.1 192.168.2 #容许特定IP段拜访,多个段之前用空格隔开,每个段应用结尾几项示意  Require host example.com #只容许来自域名example.com的主机拜访