centos7中httpd启动后访问/var/www/html/下的文件报403,You don't have permission to access /cdh/ on this server.

这个错误我的原因是因为没有关闭selinux

1、没有关闭selinux
vi /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled

重启服务reboot

2、文件夹访问权限不够
如果上述不行,可能是/var/www/html下面的文件夹访问权限不够,chmod 777 试试

3、修改http.conf
先找到Apache 的http.conf
修改第一段为:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
#    Deny from all
    Allow from all
 
#允许所有访问
    Satisfy all
</Directory>

往下走找到第二段,开头为<Directory “D:/wamp/www/”>
修改最后一部分为:

#   onlineoffline tag - don't remove
    Order Deny,Allow
#    Deny from all
 
#  Allow from 127.0.0.1
    Allow from all

重启服务reboot试试

### 解决方案 在 CentOS 7 上遇到 `Apache Permission Denied` 错误通常是由于文件权限设置不正确或 SELinux 配置不当引起的。以下是可能的原因以及解决方案: #### 文件和目录权限配置 如果 Apache 告无法访问 `/index.html`,需要确认该文件及其父级目录的权限是否允许 Apache 访问。即使目标文件本身具有正确的读取权限,其上级目录也需要具备执行 (`x`) 权限以便 Apache 能够遍历路径。 可以通过以下命令调整权限: ```bash chmod 755 /var/www/html/ chmod 644 /var/www/html/index.html ``` 上述操作分别赋予了目录可执行权[^1] 和文件只读权给其他用户(包括运行 Apache 的进程)。如果没有这些权限,则会触发 `403 Forbidden` 或者 `Permission Denied` 错误。 #### SELinux 设置验证 对于启用了 SELinux 的系统来说,仅仅修改常规文件系统的权限并不足以解决问题。还需要检查并修正 SELinux 的上下文标签以匹配 Web 内容的要求。 可以尝试通过下面的方法来诊断及修复这个问题: ```bash chcon -Rt httpd_sys_content_t /var/www/html/ setsebool -P httpd_enable_homedirs 1 ``` 第一条指令更改指定位置的内容到适合 HTTPD 使用的安全属性;第二条则是开启让家目录作为网页服务端点的功能开关[^2] 。假如之前未曾处理过此类情况的话,这一步骤很可能是缺失的关键环节之一。 另外,在某些情况下重新启动之后发现 SELinux 处于禁用状态(`disabled`)却仍然能够正常工作的情况也存在[^4] ,但这并不是推荐的做法因为关闭安全增强机制意味着放弃了额外一层保护屏障。 #### 测试与验证 完成以上步骤后应该再次测试网站能否被成功加载出来。打开浏览器输入对应网址或者利用 curl 工具发起请求看看响应码是不是变成了期望中的2xx系列而不是之前的403. --- ### 注意事项 尽管上面提到的技术手段可以帮助大多数场景下的类似问题得到缓解甚至彻底消除,但在实际部署过程中还可能存在更多复杂因素影响最终效果比如防火墙规则设定、虚拟主机定义等等都需要逐一排查清楚才能确保万无一失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值