Apache中虚拟目录和目录权限配置
为了安全起见,需要把~yanji 用户隐藏起来,这时就可以设置个 。
它在服务器应用比较多,能够隐藏系统的真实目录,实用性非常高。
虚拟目录主要 通过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/
2、ScriptAlias语句方式 ScriptAlias /别名 "真实目录"
[root@localhost conf.d]#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"echoforxin早上中午晚上;do
echo"$x
"
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、Orderallow,deny (表示先允许后拒绝,即是没有允许的全部拒绝)严格配置
Allow from 192.168.170.0/24 (表示192.168.170.0/24 网段的所有主机可以访问)
Deny from all (表示拒绝所有主机的访问)
2、Orderdeny,allow (表示先拒绝后允许,默认没有拒绝的全部允许)宽松配置
Deny from 192.168.170.0/24 (表示拒绝192.168.170.0/24网段的所有主机访问,允许其他网段的主机访问)
例如: /var/www/music 目录只允许内网用户访问,不允许外网用户访问,那就把内网的网段范围写在
为了不混乱主配置文件,我们可以在 /etc/httpd/conf.d 目录创建music.conf文件,添加以下内容:
Alias "/music" "/var/www/music"
Options Indexes SymLinksIfOwnerMatch
Order allow,deny
Allow from 192.168.170.0/24 192.168.155.0/24
然后重启服务就行了apachectl restart
如果
AuthType Basic
AuthName "please input name$passwd"
AuthUserFile "/var/www/users"
Require valid-user
就可以同上一篇的身份验证结合,增强安全性。