Ubuntu 20.04.3 LTS下XAMPP Apache改htdocs路径后403禁止访问求助
Apache修改自定义htdocs路径后403禁止访问解决方案
1. 修正Apache目录访问配置
仅修改DocumentRoot参数无法生效,必须同步更新对应路径的<Directory>权限规则,Apache 2.4版本使用Require all granted作为允许访问的规则,不要使用旧版本的Allow from all语法。参考配置如下:
# 将路径替换为你的自定义htdocs实际路径 DocumentRoot "/home/yourname/cloud_sync/htdocs" <Directory "/home/yourname/cloud_sync/htdocs"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
修改配置后重启Apache服务生效:
- CentOS/RHEL系:
systemctl restart httpd - Debian/Ubuntu系:
systemctl restart apache2
2. 检查目录层级权限
Apache需要访问路径所有上层目录的执行权限才能遍历到目标htdocs目录,仅给htdocs本身设置权限无效。假设你的自定义路径为/home/yourname/cloud_sync/htdocs,需要给上层目录授予执行权限:
chmod o+x /home/yourname /home/yourname/cloud_sync
再将htdocs目录的所有者修改为Apache运行用户,保证读权限:
- CentOS/RHEL系:
chown -R apache:apache /path/to/your/htdocs - Debian/Ubuntu系:
chown -R www-data:www-data /path/to/your/htdocs
3. 排查SELinux访问限制
90%以上设置完文件权限仍报错的场景,都是SELinux限制导致,Linux发行版默认开启的SELinux会拦截Apache对非默认站点目录的访问请求,即使设置777权限也无法绕过。
临时测试可执行命令关闭SELinux:setenforce 0
刷新页面如果可以正常访问,即可确认是SELinux问题,执行以下命令给自定义目录添加SELinux访问规则,永久生效:
chcon -R -t httpd_sys_content_t /path/to/your/htdocs semanage fcontext -a -t httpd_sys_content_t "/path/to/your/htdocs(/.*)?" restorecon -Rv /path/to/your/htdocs
内容的提问来源于stack exchange,提问作者Rabie_Rabit
相关产品推荐
相关产品推荐

