关于apache配置多个虚拟目录操作及…

本文详细记录了解决使用Apache配置多个虚拟根目录过程中遇到的问题,包括配置文件的正确路径、hosts文件的修改、httpd.conf文件的调整、权限问题的解决等步骤。通过细心排查和网上资源的利用,最终成功配置并启动了Apache服务。

捣鼓了一个下午关于配置apache的多个虚拟根目录的设置,几经折腾也没成功,看了网上很多资料也没用。遇到了一个又一个的问题,晚上继续,在咱不懈努力下,一切困难都是神马浮云,O(∩_∩)O哈哈~……谨以此文献给所有遇到这些问题的弟兄们!!不足之处,请加以指点,以下只是我处理的方式:

 

1、 Apache支持配置多个虚拟目录,有的人可能直接在httpd.conf(该文件在:Apache2\conf的目录里)里面配置,今天我是直接配置在:httpd-vhosts.conf(该文件在:Apache2\conf\extra目录里)里。在httpd-vhosts.conf里的文件最后面加入了以下代码:

  

   <VirtualHost *:80>

        ServerAdmin webmaster@dummy-host2.localhost

         DocumentRoot "d:/web"

         ServerName website.cn

</VirtualHost>

 

<VirtualHost *:80>

        ServerAdmin webmaster@dummy-host2.localhost

         DocumentRoot "d:/www"

         ServerName    localhost

</VirtualHost>

我是分了两个目录,分别在D盘得web文件夹和D盘的www文件夹。

访问时分别是:http://website.cn/    和  http://localhost

 

2、 这里的注意一点,关于website.cn 指向web目录;localhost指向www目录。然后,得找到Windows/system32/drivers/etc/hosts文件打开(用记事本打开),将原来的127.0.0.1 localhost       改为:

127.0.0.1     localhost 

127.0.0.1     website.cn

然后,保存。

3、 其次,我们在httpd-vhosts.conf 文件中修改的内容要起作用,要配置httpd.conf文件。启用httpd-vhosts.conf文件的这个模块。在httpd.conf文件中找到如下这句语句:

#Include conf/extra/httpd-vhosts.conf  ,把这语句前面的#号去掉,否则httpd-vhosts.conf里的内容不会起作用。去掉之后,保存,重启apache。

 

4、 这个时候,我们可能会发现apache的服务无法启动。我也在网上发现的有人问了这样的问题(即:为什么我的机子只要把Include conf/extra/httpd-vhosts.conf前面的#号去掉就起动不APACHE),经过仔细查看httpd-vhosts.conf这个文件,你会发现有以下这段语句:

<VirtualHost*:80>

    ServerAdmin webmaster@dummy-host.localhost

    DocumentRoot"/www/docs/dummy-host.localhost"

    ServerName dummy-host.localhost

    ServerAlias www.dummy-host.localhost

    ErrorLog "logs/dummy-host.localhost-error_log"

    CustomLog"logs/dummy-host.localhost-access_log common"

</VirtualHost>

 

这里有doucumnetroot指向了某个具体的目录,但是实际上我们的电脑上没有该目录,所以,你索性把这段代码去掉即可,不会影响,这段代码只是给我们演示如何加虚拟目录。当然,你要加的虚拟目录也得先建好文件夹,否则也会无法启动apache。

5、 好,顺利解决上述问题,现在apache也顺利启动了。这个时候我访问http://website.cn是可以的,但是访问:http://localhost/ 的时候提示了另一个错误:

           Youdon't have permission to access / on this   

意思说我没有权限访问,被拒绝了!靠,哎,遇到问题就得想办法解决。网上找,经过搜索,看到一哥们也遇到这问题,心里一阵窃喜,O(∩_∩)O哈哈~,可是按照他的方法一操作,傻眼了,还是不行。他们的办法是:找到httpd.conf文件中如下代码:

<Directory/>
     Options FollowSymLinks
     AllowOverride None
     Order deny,allow
     deny from all
     Satisfy all
</Directory>
然后试着把deny from all中的deny改成了allow,保存后重起了apache,我也这样操作,还是不行(有人建议把denyfrom all 去掉)。这时候,头大了,开始有点烦躁了,不过马上静下心来,把httpd.conf文件看了一遍又一遍,估计在看几遍也能背了,^_^;我开始把httpd.conf这个文件中的deny都改成了allow,保存,重启apache,还是不行。真的头大了。左思右想,查看apache配置文件,手册等等。最后还是想到了上述这段语句:

<Directory/>
     Options FollowSymLinks
     AllowOverride None
     Order deny,allow
     deny from all
     Satisfy all
</Directory>

最后,把这段语句去掉,保存,重启apache后,打开两个地址试了一下,OK,哈哈,解决了。

6、 最后,总结:遇到问题还是得细心的去查找问题,通过网上搜索,看帮助文档。或者官方的技术文档。不过可以看看apache官方的一些问题处理:https://issues.apache.org/bugzilla/buglist.cgi?quicksearch=forbidden

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值