apache提示Forbidden

当尝试启动Apache的虚拟服务时遇到Forbidden错误。本文详细介绍了如何配置Apache的httpd.conf和httpd-vhosts.conf文件,以指定自定义目录为虚拟服务启动目录,并解决权限问题,最终成功启动虚拟服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

apache启动一个服务,其实很简单,按照安装说明,我们要想启动服务,把代码放在htdocs文件里面就可以了,启动服务也是没有问题的,目录地址如下图所示,找到你安装的apache 的目录地址,然后一层一层的找到htdocs:

htdocs目录地址

hosts文件里面配置:如下一行代码:

hosts文件配置

点击ApacheMontior.exe启动服务,路径如下图所示:
启动服务地址

打开页面,我们看到如下图所示:

apache服务启动

页面正常启动,没有问题。现在我们来启动一个虚拟服务,假如我想把任意一个文件夹作为虚拟服务的启动目录,应该如何操作,因为我的apache安装在D盘,所以,我就把D盘的test做为启动目录,步骤如下:

  1. 修改httpd.conf文件,路径同样还是在apache的安装目录去找,如下所示

httpd.conf路径

  1. 去掉Include conf/extra/httpd-vhosts.conf前面的#此步操作是打开虚拟设置。

开启虚拟服务

  1. 打开httpd-vhosts.conf文件,路径如下图所示:

httpd-vhosts.conf路径

  1. 修改里面的配置文件,设置自己想启动的服务网址和启动的目录,启动目录D:/test,虚拟服务地址:vhost.qq.com

虚拟网址设置

  1. 同时修改hosts文件,配置虚拟地址如下图:

虚拟hosts配置

其实我们根据英文的意思,也可以知道各个设置对应的是那些配置,这个时候我们,打开虚拟的网址,看一下页面的效果(设置好以后,别忘了重新启动服务):

Forbidden

  • 根据页面的提示,好像是说我们没有权限访问这个目录的文件,网上搜索了很多解决方法,最后也没有解决我的问题,然后自己又看了一下配置文件,理解配置文件的意思,最后终于明白,是因为我们没有给虚拟网址配一个目录,它还是使用原来的默认的目录htdocs,所以文件放在这个目录里面才可以,那如何给虚拟机配置我们定义的目录呢?很简单,在httpd.conf里面配置,只需要修改,DocumentRoot<Directory两个配置就可以了,他面默认的是htdocs

配置虚拟hosts

  1. 修改为我们想要的启动服务的地址:我想启动的目录地址是D:/test,配置如下:

虚拟目录地址设置

  1. 此时重新启动服务,打开页面,看一下效果:

Forbidden

  • 页面依然是无法打开,再次查了多资料,原来我们还需要配置一个访问文件的权限问题,路径依然是在httpd.conf里面进行修改,去掉下面几个配置前面的#:

文件权限修改

修改为:

Options Indexes FollowSymLinks ExecCGI
AllowOverride All
Require all granted
  • 此时我们重启服务,(每一次修改配置文件,都需要重启服务,修改启动页面内容不用重启服务)打开页面,看一下效果:

虚拟服务启动正常

虚拟服务正常启动,真的是一步都不能少啊。。。apache还不会安装的同学,可以参考我的上一片文章从Python到Apache再到CGI

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值