美文网首页
Apache2.4虚拟目录访问权限问题解决

Apache2.4虚拟目录访问权限问题解决

作者: 韩奔跑2 | 来源:发表于2018-03-01 16:55 被阅读454次

    参考资料:http://blog.sina.com.cn/s/blog_ed3bdabf0102x0vx.html

    apache 2.4的虚拟目录配置与apache2.2的虚拟目录配置有所不同,常出现的问题如下:

    Invalid command 'Order', perhaps misspelled or defined by a module not included in the server configuration

    这个问题的原因可能是LoadModule authz_host_module modules/mod_authz_host.so这个模块没有打开,将其前面的#去掉即可,但大多情况下这个模块是解开的,那么第二个原因就是版本问题,在Apache2.4版本中,提供了由mod_authz_host支持的新的配置语法。而2.2版本中的Order、Allow等命令在新版本中也可以得到兼容,实现这个兼容功能的模块就是mod_access_compat。所以Load这个模块后,apache2.4就能识别这些语句了。

    但是新的问题随之而来,加载过mod_access_compat之后,apache是可以启动了,却发现无法访问虚拟目录下的文件,提示是没有权限,所以这就涉及到访问权限设置的问题了

    关于2.4和2.2访问权限的设置区别如下:

    所有的请求都被拒绝

    2.2上的配置

    Order deny,allow

    Deny from all

    2.4上的配置

    Require all denied

    所有请求都是允许的

    2.2上的配置

    Order allow,deny

    Allow from all

    2.4上的配置

    Require all granted

    在域中的所有主机都可以访问example,所有其他外网主机的访问被拒绝

    2.2上的配置

    Order Deny,Allow

    Deny from all

    Allow from example.org

    2.4上的配置

    Require host example.org

    要想外网访问将 Require local 改为 Require all granted 。

    经常会用到的: Require all denied Require all granted Require host xxx.comRequire ip 192.168.1 192.168.2 Require local

    举例说明

    仅允许IP:192.168.0.1 访问

    Require ip 192.168.0.1

    仅禁止IP:192.168.0.1访问

    Require all granted

    deny from 192.168.1.0

    ps:有些人说使用的是Require all granted Require not ip 192.168.0.1的指令,起初我也信以为真,但是亲自试验发现不行,用deny from 是可以的,读者们也可以自己试试

    允许所有访问

    Require all granted

    拒绝所有访问

    Require all denied

    默认是 Require local 仅允许本地访问。

    相关文章

      网友评论

          本文标题:Apache2.4虚拟目录访问权限问题解决

          本文链接:https://www.haomeiwen.com/subject/itqnxftx.html