You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Manjaro环境Nginx访问站点报13:Permission denied 403错误如何解决

Nginx 403 Forbidden问题解决步骤

1. 修正属主修改命令

你之前执行的chmod -R http:http exam/是错误命令:chmod用于修改文件权限,修改文件/目录属主需要用chown命令,正确操作如下:

# 先进入/usr/share/nginx/html目录执行
cd /usr/share/nginx/html
chown -R http:http exam/
# 同时统一设置权限:目录给755权限,文件给644权限
find exam/ -type d -exec chmod 755 {} \;
find exam/ -type f -exec chmod 644 {} \;

修改完成后重启Nginx生效:

systemctl restart nginx

2. 检查软链接与上级目录权限

你提供的权限信息显示exam是软链接(权限位开头为l),需要确认软链接指向的实际目录的属主和权限,同时确认所有上级目录都给http用户开放了执行权限(x权限是目录访问的必要条件):

# 查看软链接指向的实际路径
readlink -f /usr/share/nginx/html/exam
# 逐级检查路径所有节点的权限
namei -l /usr/share/nginx/html/exam/index.php

如果上级目录没有x权限,比如/usr/share/nginx/html权限不对,执行:

chmod o+x /usr/share/nginx /usr/share/nginx/html

3. 确认PHP-FPM运行用户

如果php-fpm的运行用户和Nginx不一致,也会导致PHP文件解析权限不足:

# 查看php-fpm当前运行用户
ps aux | grep php-fpm

如果运行用户不是http,编辑php-fpm的www.conf配置(默认路径为/etc/php-fpm.d/www.conf),修改以下参数:

user = http
group = http
listen.owner = http
listen.group = http

修改后重启php-fpm服务:

systemctl restart php-fpm

4. 检查AppArmor限制

Manjaro默认启用AppArmor服务,可能会限制Nginx的目录访问权限,可临时关闭测试:

systemctl stop apparmor
systemctl restart nginx php-fpm

如果访问恢复正常,修改AppArmor的Nginx规则,开放对应目录的访问权限即可。

5. 修正路径匹配问题

你的配置中root已经指定为/usr/share/nginx/html/exam,访问localhost:9000/exam会让Nginx尝试查找/usr/share/nginx/html/exam/exam路径下的文件,如果你实际需要访问的是exam目录下的内容,直接访问localhost:9000/即可,或者修改root配置为/usr/share/nginx/html。

内容的提问来源于stack exchange,提问作者ersincebi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 13:15:01