本文主要是依你初次安装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>