Apache创建Home目录别名时出现403访问禁止错误求助
解决Apache别名配置后403 Access Forbidden的问题
嗨,我来帮你搞定这个头疼的403问题!首先直接回答你的疑问:没错,Apache确实需要能访问目标目录的所有上级目录,这是很多新手配置时容易踩的坑,咱们一步步来排查和解决:
1. 先揪出你可能犯的一个小失误
你执行的权限修改命令是:
sudo chmod -R 775 /home/ehsan/Documents/Projects/leitner/ui/dist
但你的项目目录明明是/home/ehsan/Documents/Projects/blog/ui/dist啊!路径里的leitner应该是手滑打错了吧?这会导致你根本没给正确的项目目录设置权限,赶紧改成正确路径重新执行一遍:
sudo chmod -R 775 /home/ehsan/Documents/Projects/blog/ui/dist
2. 给所有上级目录添加必要的权限
Apache的运行用户(Manjaro里默认是http用户)需要能进入目标目录的每一级上级目录,也就是需要给这些目录加执行权限(x)。你可以依次执行以下命令:
sudo chmod o+x /home/ehsan sudo chmod o+x /home/ehsan/Documents sudo chmod o+x /home/ehsan/Documents/Projects sudo chmod o+x /home/ehsan/Documents/Projects/blog sudo chmod o+x /home/ehsan/Documents/Projects/blog/ui
解释一下:目录的执行权限(x)允许用户进入该目录,不需要读权限(r),只要有x就够Apache访问到下级的dist目录了。
3. 验证权限是否生效
你可以切换到Apache的运行用户来测试是否能访问目标目录,执行:
su -s /bin/bash http cd /home/ehsan/Documents/Projects/blog/ui/dist
如果能顺利进入目录,说明权限设置没问题了;如果还是报错,那再检查哪一级目录的权限没改对。
4. 最后重启Apache生效
改完配置和权限后,别忘了重启Apache服务:
sudo systemctl restart httpd
为什么phpMyAdmin能正常运行?因为它的目录通常在系统默认的Apache可访问路径下(比如/usr/share/phpmyadmin),这些路径的上级目录权限本来就已经配置好了,所以不会出现权限问题。
内容的提问来源于stack exchange,提问作者kiasaty




