apache 2.4.x 权限相关知识汇总

本文主要是依你初次安装apache之后的状态进行修复, 部分也源自xampp, xampps, wamp环境包设置. 并没有对错之分, 主要依需求来变更, 环境包的设置自然有它道理. windows下, 我当然推荐xampps.

安装完apache后, 我们首先会思考以下几个问题:

1: 隔壁同事是否可以通过局域网ip访问到我的环境?
2: 伪静态是否可用?
3: 目录结构是如何的?
4: IP访问规则怎么写?


# 所目录&访问导权限
<Directory />
    Options Indexes FollowSymLinks Includes ExecCGI
    indexOptions FancyIndexing ScanHTMLTitles DescriptionWidth=256 VersionSort FoldersFirst
    indexOptions IconHeight=16 IconWidth=16
    ServerSignature On
    AllowOverride All
    Require all granted
</Directory>

在httpd.conf配置文件中我们会看到一段Directory的规则层,这个配置相当于全局设置, 以支持让访问目录可以列表, 权限等, 如伪静态权限.
这儿我的建议释放所有权限, 依先放后限制的原则.
AllowOverride All #许可所有伪静态权限. 这句一定要加, 当vhost配置一个其它盘符的路径时, 效果就有了.
Require all granted  # 许可所有的访问, 2.4.x以后都用这个Require


现在我们的环境权限是最开放了.任何解析到此ip的域名,ip均可以直接访问.


<VirtualHost *:80>
    <Location />
      Require all denied
      Require local
    </Location>
</VirtualHost>

为此, 我们在httpd-vhosts.conf中增加一主机, *:80 表示本机, ip,所有未匹配的域名都匹配进这儿.
Require all denied #所有访问均禁止访问, 这儿将权限降到了无.
Require local  # 释放本地访问权限.


许多朋友也许会问, 既然全局已经开放的, 本地环境是可以访问, 为什么要建立这个vhost?
这儿主要是为了安全, 许多朋友呆在公司, 希望环境仅限自己可以访问, 私隐问题, 所以这儿的设置才可以实现. 还有许多朋友会在本地建立许多别名, 如phpmyadmin, 同样也不希望外部访问到, 本地访问更安全.


此权限规则通常只限本地, 假如是域名, 那Location段都不需要, 直接配置好目录,日志信息即可. 默认是许可访问.

在许多环境中, 都有个特殊要求, 禁止 . ~ 开头的文件访问. 如.htaccess文件, 我们并不希望被人访问.

<FilesMatch "^[.|~].*">
  Require all denied
</FilesMatch>

在httpd.conf配置中加入这段, 即可实现.



关于apache的日志, 首先我们注意这三段

LogLevel warn  # 错误日志级别.
ErrorLog "logs/error.log"  #错误日志
ScriptLog "logs/cgi.log"  #cgi错误, 伪静态错误等.

最后如果你希望header释放点自己的值. 可以加入如下:

<IfModule headers_module>
Header set Xampps "%t %D %l %i %b && %{QUERY_STRING}e"
</IfModule>


End

你可能感兴趣的:(apache 2.4.x 权限相关知识汇总)