13、Apache中虚拟目录和目录权限配置,apache虚拟目录


一、虚拟目录

之前的个人主页,为了安全起见,需要把~yanji 用户隐藏起来,这时就可以设置个 虚拟目录。

它在Apache服务器应用比较多,能够隐藏系统的真实目录,实用性非常高。

虚拟目录主要 通过 Alias语句 和 ScriptAlias语句进行实现

二者区别:

Alias语句  :         针对普通别名

ScriptAlias语句:   针对脚本别名,即是ScriptAlias语句设置的别名可以支持CGI脚本

 

1、Alias语句方式     Alias    /别名  "真实目录"

[root@localhost root]#    cd   /etc/httpd/conf.d
[root@localhost conf.d]#  cat  >   v_p_user_auth.conf
Alias    "/useryan"   "/home/yanji/public_html"

[root@localhost conf.d]#   service   httpd    restart
停止 httpd:                                               [  确定  ]
启动 httpd:                                               [  确定  ]

在浏览器验证如下     http://192.168.170.4/useryan/  

vi   /etc/httpd/conf/httpd.conf

找到ScriptAlias  /cgi-bin/   "/var/www/cgi-bin/"  确保它不给“#”注释。  如下图

创建测试的主页

[root@localhost conf.d]# cat  >  /var/www/cgi-bin/test.sh

#! /bin/bash
echo  "Content-type: text/html"
echo
    for x in  早上  中午  晚上;
    do
    echo "$x<br/>"
    done

浏览器输入  http://192.168.170.4/cgi-bin/test.sh
会因为权限问题,不成功。

[root@localhost conf.d]#   chmod   +x   /var/www/cgi-bin/test.sh

网页乱码,就是/etc/httpd/conf/httpd.conf里面的AddDefaultCharset的值不为utf-8

      改为utf-8后,重启httpd服务就行)

 

二、目录权限配置

 

Apache服务器中,可以使用Order allow deny 语句对其进行控制,有两种格式:

1、Order  allow,deny                                     (表示先允许后拒绝,即是没有允许的全部拒绝) 严格配置

    Allow   from  192.168.170.0/24                 (表示192.168.170.0/24 网段的所有主机可以访问)

    Deny   from  all                                          (表示拒绝所有主机的访问)

 

2、Order  deny,allow                                        (表示先拒绝后允许,默认没有拒绝的全部允许)  宽松配置

     Deny  from  192.168.170.0/24                     (表示拒绝192.168.170.0/24网段的所有主机访问,允许其他网段的主机访问)              

 

 

例如:   /var/www/music  目录只允许 内网用户访问,不允许外网用户访问,那就把内网的网段范围写在<Directory  "/var/www/music" >节点之间

为了不混乱主配置文件,我们可以在 /etc/httpd/conf.d  目录创建music.conf文件,添加以下内容:

Alias  "/music"   "/var/www/music"

<Directory  "/var/www/music">

     Options  Indexes  SymLinksIfOwnerMatch

     Order  allow,deny                                    

     Allow   from  192.168.170.0/24   192.168.155.0/24

</Directory>

 

然后重启服务就行了   apachectl  restart

 

如果<Directory  "/var/www/music" >节点之间加上

AuthType   Basic
AuthName   "please  input  name$passwd"
AuthUserFile    "/var/www/users"
Require    valid-user

就可以同上一篇的身份验证结合,增强安全性。

相关内容