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

Nginx部署Moodle访问域名返回403 Forbidden错误问题咨询

错误原因

日志提示*306 directory index of "/var/www/html/moodle/" is forbidden,说明Nginx尝试访问站点根目录时,无法正常加载预设的索引文件(index.php),核心常见原因如下:

  • Nginx运行用户与Moodle目录所有者不匹配,没有目录遍历、文件读取权限
  • 站点目录上层路径(/var/www、/var/www/html)缺少Nginx用户的执行权限,导致无法进入moodle目录读取文件
  • SELinux安全策略拦截了Nginx对站点目录的访问(仅针对CentOS/RHEL类系统)
  • PHP-FPM运行用户与Nginx不一致,无法处理PHP文件请求,导致索引文件index.php无法正常返回
排查修复步骤
  • 第一步:校验服务运行用户一致性
    执行以下命令分别查看Nginx和PHP-FPM的运行用户:
    ps aux | grep nginx
    ps aux | grep php7.4-fpm
    
    确保两者运行用户一致(通常为www-data),如果不一致,修改nginx.conf和php-fpm.d/www.conf中的user、group配置为相同值后重启服务。
  • 第二步:修复目录全路径权限
    执行以下命令设置目录所有者和权限,确保Nginx有足够权限访问站点文件:
    chown -R www-data:www-data /var/www/html/moodle
    chmod -R 755 /var/www/html/moodle
    chmod 755 /var/www /var/www/html
    
  • 第三步:校验SELinux策略(仅CentOS/RHEL系统需要操作)
    执行sestatus查看SELinux运行状态,如果为Enforcing模式,执行以下命令添加站点目录的访问权限:
    chcon -R -t httpd_sys_content_rw_t /var/www/html/moodle
    
  • 第四步:校验Nginx配置合法性
    执行nginx -t检查配置语法是否正确,确认无报错后执行systemctl reload nginx重载配置生效。
  • 验证修复效果:直接访问你的域名/index.php,如果可以正常加载,说明问题已解决。

内容的提问来源于stack exchange,提问作者Romulo Ferreira Mesquita

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:12:04