问题解决:Apache: You don't have permission to access / on this server

本文介绍如何在Apache服务器上配置基于主机名的虚拟主机,包括设置监听端口、指定文档根目录及权限控制等内容,并提供了配置示例及解决403 Forbidden错误的方法。

   虚拟主机(Virtual Host)是指在一个机器上运行多个网络站点 (比如:www.company1.com和www.company2.com)。 如果每个网络站点拥有不同的IP地址,则虚拟主机可以是"基于IP"的; 如果只有一个IP地址,也可以是"基于主机名"的, 其实现对最终用户是透明的。具体细节可以查看Apache官方说明

  一. “基于主机名”虚拟主机的配置

  Listen 81
  NameVirtualHost *:81
  <VirtualHost *:81 >
       ServerAdmin example@company.com
       DocumentRoot  yourRoot
      <Directory "yourRoot ">
       Options FollowSymLinks
       AllowOverride None
       Order allow,deny
       Allow from all
      </Directory>
  </VirtualHost>
 配置说明:

    81 : 为端口号,可以是其他现在系统未用的端口

    yourRoot : linux下格式形如: /export/www    注意最后没有"/"

 将上面的添加到apache的配置文件httpd.conf(linux下在/usr/local/apache2/conf/,视具体情况而定),然后重新启动Apache .

注意:

要配置基于主机名的虚拟主机,必须保留原有的80端口。

 二. 查看配置是否成功

   在浏览器中输入 http://localhost:81 查看是否配置成功。

 三. 常见问题常见解决方案

 当在浏览器中查看配置成功与否出现问题时,可优先到Apache官方网站的FAQ 上或用搜索引擎搜索你的问题。

  我这里就最常见403问题:

Forbidden

You don't have permission to access / on this server.

提供几种常见的解决方法:

  1.按上面的配置正确,特别是:

      Order allow,deny
       Allow from all

  2. 确保youRoot文件夹下有index.html文件(或名为index而后缀为其他形式(如.jsp .php等)的文件) ,因为Apache默认以index.html为网站首页,如果没有这个文件就会出现上面的403错误。

  注:如果你想以其他形式的文件(如:index.jsp或index.php等)作为出现的网页,可将Apache的配置文件中的:

   <IfModule dir_module>
       DirectoryIndex index.html
   </IfModule>
   改为(如你想用index.jsp):

   <IfModule dir_module>
       DirectoryIndex index.html index.jsp
   </IfModule>

   如果需要浏览该文件夹下的内容,可以在</Directory>前添加:

    Options Indexes

  就可以了。
  3. 针对linux用户,windows或其他用户一般没这种情况。linux系统中一般会自带apache,在修改了配置文件后,最好到安装Apache的目录下重启Apache。

 

在 CentOS 7 上运行 Apache 服务时,访问 `/DVWA-master/` 目录出现权限错误,提示 `You don't have permission to access /DVWA-master/`,通常是由于 Apache 的目录权限配置、SELinux 或文件系统权限设置不当导致的。 ### 1. Apache 配置权限问题 Apache 默认的网站根目录是 `/var/www/html`,如果将 `DVWA-master` 放在该目录下,则需要确保 Apache 的配置文件允许访问该目录。检查 `/etc/httpd/conf/httpd.conf` 或 `/etc/httpd/conf.d/` 下的虚拟主机配置文件,确认是否存在如下配置: ```apache <Directory "/var/www/html/DVWA-master"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> ``` 如果没有类似配置,可以添加或修改以确保 Apache 允许访问该目录[^1]。 ### 2. 文件系统权限设置 确保 `DVWA-master` 目录及其内容的权限被正确设置。Apache 服务通常以 `apache` 用户身份运行,因此需要确保该用户对目录有读取权限。可以使用以下命令设置目录权限: ```bash chown -R apache:apache /var/www/html/DVWA-master chmod -R 755 /var/www/html ``` 上述命令将目录的所有者设置为 `apache` 用户和组,并设置目录权限为 `755`,保证 Apache 服务可以读取目录内容[^1]。 ### 3. SELinux 权限问题 SELinux 是 CentOS 7 中的安全模块,可能阻止 Apache 访问某些目录。如果上述配置仍然无法解决问题,可以尝试检查 SELinux 是否启用,并调整其策略。使用以下命令查看 SELinux 状态: ```bash sestatus ``` 如果 SELinux 处于 `enforcing` 模式,可以使用以下命令更改目录的 SELinux 上下文: ```bash chcon -R -t httpd_sys_content_t /var/www/html/DVWA-master ``` 如果需要更灵活的访问控制(例如写入权限),可以使用: ```bash chcon -R -t httpd_sys_rw_content_t /var/www/html/DVWA-master ``` 此外,也可以使用 `audit2allow` 工具根据 SELinux 警报生成策略模块,以解决更复杂的权限冲突。 ### 4. 重启 Apache 服务 完成上述配置后,重启 Apache 服务以确保配置生效: ```bash systemctl restart httpd ``` 如果仍然无法访问,请检查 Apache 的错误日志以获取更多信息: ```bash tail -f /var/log/httpd/error_log ``` ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值