天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧系统 >> 正文

Httpd 2.2.0虚拟主机目录权限设置问题

2008-4-8赛迪网佚名

  因为手里可用服务器资源有限,只能用apache虚拟机来完成更多的工作任务。当前的apache版本是2.2.4,与以前的版本相比,有很多地方做了改进,最大的一个差别是在主配置文件中以包含文件的方式把虚拟机单独做成一个文件,当然差别还有很多,这里只关注虚拟机。


系统 solaris 10
Apache版本 httpd-2.2.0
网络接口地址 192.168.27.201
Apache的安装路径 /usr/local/apache2/
虚拟机的方式端口 8088


  修改主配置文件/usr/local/apache2/conf/httpd.conf。用编辑器(vi等)打开主配置文件httpd.conf,把Include conf/extra/httpd-vhosts.conf这行(大概在395行的位置)前面的注释取消,使其包含功能生效。再在主配置文件加入虚拟机的监听“Listen 192.168.27.201:8088”(第一个字母‘L’是大写的)。修改加入的内容如下所示:


Listen 192.168.27.201:8088
…………..(省略若干,不用修改的地方)
Include conf/extra/httpd-vhosts.conf  //虚拟机配置单独用一个文件,
//这种方式是主配置文件变小了,更易于维护。
 

  修改虚拟机配置文件。它的目录在主配置文件httpd.conf中以包含的方式(Include)指出了路径是 /usr/local/apache2/conf/extra/httpd-vhosts.conf,如果打算用其他的文件,可以在主配置文件中重新指定。这个虚拟机配置文件是一个模版,给出了2个apache虚拟机的事例,把它们全部注释掉!注:如果是基于域名的虚拟机机制,NameVirtualHost *.80这行是必须的,因为我这里是基于端口(确切的说是基于IP地址)的虚拟机制,所以要把它注释掉。先照着模版加入下面的块到httpd-vhosts.conf:


< VIRTUALHOST 192.168.27.201:8088>
DocumentRoot "/www/docs"    //虚拟机根文档目录
ServerName 192.168.27.201:8088
< /VIRTUALHOST>
 


  然后回到apache的安装目录执行命令 bin/apachectl –t检查主配置文件语法是否正确,无误后再执行bin/apachectl –S 检查虚拟机的语法是否正确。接下来在虚拟机的根文档目录创建一个测试文档test.html,启动apache服务 bin/apachectl start&,用浏览器访问http://192.168.27.201,显示apache的默认页面,表明主配置文件是正常的;再访问http://192.168.27.201:8088/test.html.返还代码 403(禁止访问),页面内容为“你无法查看该网页…”,同样的问题已经有2个人遭遇过了,他们都一致认为,以前在apache1.3等老版本上就是这样设置的,应该不会这样呀!并且语法检查也通过了,是什么问题呢?打开主配置文件conf/httpd.conf,发现如下的块:

 

< DIRECTORY />
Options FollowSymLinks
AllowOverride None
Order deny,allow     //先拒绝后允许
Deny from all        //拒绝所有的访问
< /DIRECTORY>
 

  这一个块就是对目录进行访问控制的,而且设置得非常严格,因此,我们必须手动加入虚拟机目录的权限控制块,才可以让用户正常访问虚拟机的目录及页面文件。有两个地方可以加入虚拟目录访问权限控制块:主配置文件httpd.conf和虚拟机配置文件httpd-vhost.conf,加在那一个地方更合适呢?当然选虚拟机配置文件,最重要的理由是维护起来更方便,可能也涉及安全方面的问题(这个我没有做个测试)。接下来就把目录访问控制块插入到虚拟机配置文件,其形式如下:


< VIRTUALHOST 192.168.27.201:8088>
DocumentRoot "/www/docs"   
ServerName 192.168.27.201:8088

< DIRECTORY docs? www ?>     //插入开始处
Options -Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
< /DIRECTORY>               //插入结束处

< /VIRTUALHOST>
 

  完成文件,检查语法,重启apache服务,再用浏览器访问虚拟机地址,这下应该正常了。

欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛https://bbs.txwb.com

关注天下网吧微信,了解网吧网咖经营管理,安装维护:


本文来源:赛迪网 作者:佚名

声明
本文来源地址:0
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com.,本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行