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

Nginx部署迁移网站遇权限拒绝错误,请求排查原因

问题排查与解决方案

核心原因:文件系统权限配置错误

你遇到的Permission denied错误,说明Nginx或PHP-FPM进程没有足够权限访问站点文件。虽然简单index.php测试正常,但上传的站点代码可能继承了原Apache环境的权限,或是上传过程中权限被错误设置。


具体排查与修复步骤

1. 确认Nginx和PHP-FPM的运行用户

执行以下命令查看进程所属用户:

# 查看Nginx运行用户
ps aux | grep nginx | grep -v grep
# 查看PHP-FPM运行用户(以默认www池为例)
ps aux | grep php-fpm | grep -v grep

Rocky Linux 9默认配置:

  • Nginx运行用户为nginx
  • PHP-FPM的www池运行用户为apache

2. 修复站点目录与文件的权限

(1)设置正确的所有者

将站点根目录的所有者设置为适配Nginx和PHP-FPM的用户组:

chown -R nginx:apache /var/www/test1.home

(2)设置安全的权限值

  • 目录权限设为750(所有者可读可写可执行,组可读可执行,其他无权限)
  • 文件权限设为640(所有者可读可写,组可读,其他无权限)
# 递归设置目录权限
find /var/www/test1.home -type d -exec chmod 750 {} \;
# 递归设置文件权限
find /var/www/test1.home -type f -exec chmod 640 {} \;

(3)特殊情况:PHP脚本权限(可选)

若部分PHP脚本需要执行权限,可单独调整:

find /var/www/test1.home -name "*.php" -exec chmod 750 {} \;

3. 检查PHP-FPM池配置

确认/etc/php-fpm.d/www.conf中的用户组配置是否匹配:

user = apache
group = apache
listen.owner = nginx
listen.group = nginx

修改后重启PHP-FPM:

systemctl restart php-fpm

4. 重启Nginx服务

权限调整完成后,重启Nginx使配置生效:

systemctl restart nginx

额外验证(仅测试用)

若问题仍存在,可临时将站点目录权限设为777(禁止用于生产环境),如果此时访问正常,说明确实是权限问题,再重新调整为安全的权限值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 12:25:19