配置Directory、chmod和SELinux后Apache仍返回403 Forbidden问题求助
1. 修正Apache配置文件语法错误
你当前httpd.conf里存在两处直接导致权限校验失败的语法错误:
<Directory "/home/@@web/apache/">段内的Request all granted是错误写法,正确应为Require all granted- dir_module配置段的闭合标签写错,末尾的
<IfModule>要改为</IfModule>
修改后保存配置,执行apachectl configtest验证配置语法无误后,执行systemctl reload httpd重载配置。
2. 补全路径层级的搜索(执行)权限
错误日志明确提示路径组件缺少搜索权限,Apache运行用户(通常为apache、www-data)需要对网站根目录的所有上级父目录拥有执行(x)权限,才能进入目录访问内部资源,依次执行以下命令赋权:
chmod o+x /home chmod o+x /home/@@web chmod -R o+rx /home/@@web/apache
如果不想给所有用户开放权限,也可以把父目录的属组改为Apache运行用户组,再给组赋x权限,避免权限过宽。
3. 修正SELinux配置
你之前执行的修改SELinux上下文的命令本身存在错误:chmod是修改文件系统权限的命令,不能用于修改SELinux上下文,正确的修改上下文命令为:
chcon -R -h -t httpd_sys_content_t /home/@@web/apache
另外由于你把网站放在/home目录下,默认SELinux策略禁止Apache访问home目录内容,需要开启对应布尔值:
setsebool -P httpd_enable_homedirs 1
4. 额外校验项
- 确认
/home/@@web/apache/htdocs目录下存在index.html文件,且文件拥有可读权限 - 重载Apache配置后,清理访问端缓存再测试访问
内容的提问来源于stack exchange,提问作者정상준
相关产品推荐
相关产品推荐

