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

因为手里可用服务器资源有限,只能用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服务,再用浏览器访问虚拟机地址,这下应该正常了。

时间: 2024-11-03 13:06:53

Httpd 2.2.0虚拟主机目录权限设置问题的相关文章

windows 2000虚拟主机基本权限的设置

在这里说一下我以为比较安全的win2000虚拟主机的权限设置方法,仅仅是说下权限设置. 一.虚拟主机需要的软件及环境 1.Serv-U5.0.11(似乎不安全,但是也未必) 2.Mysql数据库 3.Mssql数据库 4.PcAnyWhere远程控制 5.杀毒软件,我一般使用诺顿8.0 6.php5 7.ActivePerl5.8 以上各种软件,除Mssql数据库以为,其他的都应去官方网站下载推荐版本安装.下面开始就是安装设置了,从系统安装完开始.假设系统安装的windows2000高级服务器版

Windows下Apache 目录权限设置详解

环境配置情况: apache安装目录:d:www-sapache php目录:d:www-sphp5 mysql目录:d:www-smysql 网站根目录:d:wwwhtdocs 专门为运行Apache运行所使用的用户:apache-u(可不隶属于任何用户组) PS:这里只说Windows下Apache应用环境相关的目录权限设置,至于其他基本的服务器目录权限设置就不提啦! Windows下Apache应用环境塔建目录安全设置操作步骤: 配置目录权限 Apache所在的根目录(也就是D盘),只需要

Windows下Apache应用环境塔建安全设置(目录权限设置)_win服务器

环境配置情况:apache安装目录:d:\www-s\apachephp目录:d:\www-s\php5mysql目录:d:\www-s\mysql网站根目录:d:\www\htdocs 专门为运行Apache运行所使用的用户:apache-u(可不隶属于任何用户组) PS:这里只说Windows下Apache应用环境相关的目录权限设置,至于其他基本的服务器目录权限设置就不提啦! Windows下Apache应用环境塔建目录安全设置操作步骤: 配置目录权限 Apache所在的根目录(也就是D盘)

IIS7目录权限设置的问题详解

前段时间在windows server 2008 r2 (x64)服务器上配置好IIS 7.5+PHP(FASTCGI)+MYSQL以后,运行一直还算正常.直到昨天因为在线备份mysql失败而焦头烂额. php显示执行成功,但是显示执行时间是一个天文数字--这样的情况在以前配置nginx或者apache的php环境下也遇见过,原因无非是php内存限制过小,或者超时时间设置过小所致.然而修改fastcgi执行时间,加大php内存以后,问题依旧. 然后考虑到执行权限的问题,于是把默认的4个账户(创立

文件/目录权限设置命令chmod的详细用法

chmod是文件/目录权限设置的命令,在Linux中经常遇到,本博文以下总结chmod的详细用法.  Linux/Unix的档案调用权限分为三级,即档案拥有者user.群组group.其他other.u表示该档案的拥有者,g表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是. + 表示增加权限.- 表示取消权限.= 表示唯一设定权限. r表示可读取,w表示可写入,x表示可执行.   举例说明: (1).将档案file1.txt 设为所有人皆可读取: chmo

解决Ubuntu14 apache2虚拟主机目录403错误代码

刚刚安装上apache作为本地测试环境,ubuntu上apache和centos上不同,服务进程不是httpd,而是apache2,配置方法也不一样. Apache2的配置简介 ↑ 在我的服务器上,apache的配置文件在/etc/httpd目录下面httpd.conf,虚拟主机的配置文件conf.d/vhost.conf.而Apache2的配置目录则是/etc/apache2,其下的apache2.conf是总配置文件,引用了mods-available.mods-enabled.sites-

Apache服务器虚拟主机原理与设置方法

一.WWW服务器http://www.aliyun.com/zixun/aggregation/14840.html">虚拟主机原理 WWW服务器虚拟主机是指使用一台物理机器,充当多个主机名的WWW服务器.比如由一台机器同时提供http: //www.company1.co  m, http://www.company2.com 等的WWW服务,而浏览这些WWW站点的用户感觉不到这种方式下跟由不同的机器提供不同的服务有什么差别. 使用WWW虚拟主机的好处在于,一些小规模的网站,通过跟其他网

laravel框架的安装使用、目录权限设置

前置条件 增加mcrypt 如果想偷懒ubuntu用户直接 apt-get install php5-mcrypt,发现还是不能用,修改/usr/local/php/lib/php.ini(每个人有差异,同时cli模式下也需要增加)增加下面内容 extension=mcrypt.so 如果你想自己编译安装,可以参考下文的openssl安装方法. 增加openssl的配置 我是从之前的PHP源码编译安装的.因为我之前的PHP源码还在的. cd ~/php-5.5.16/ext/openssl  

Windows 2000虚拟主机最安全设置

1.如何让asp脚本以system权限运行? 修改你asp脚本所对应的虚拟目录,把"应用程序保护"修改为"低".... 2.如何防止asp木马? 基于FileSystemObject组件的asp木马cacls %systemroot%\system32\scrrun.dll /e /d guests //禁止guests使用regsvr32 scrrun.dll /u /s //删除 注:这样服务器的FSO就不能用了: 在CMD命令行状态输入以下命令: 关闭命令:R