Ubuntu环境下Nginx部署Scribe API文档遇403 Forbidden问题求助
解决Scribe API文档Nginx 403 Forbidden错误方案
1. 修正Nginx配置,单独处理/docs路径
当前Nginx配置中,根路径的try_files会把所有请求导向PHP,但Scribe生成的是静态文件,需要单独配置location规则直接返回静态资源。在server块中添加:
location /docs { try_files $uri $uri/ =404; allow all; }
同时修正原配置中隐藏文件规则的语法错误(缺少反斜杠):
location ~ /\.(?!well-known).* { deny all; }
2. 确保文件目录的所有者正确
仅设置775权限不够,需要让Nginx运行用户(通常是www-data)拥有文件的读权限:
chown -R www-data:www-data /var/www/my_domain/public/docs
3. 验证文档文件存在性
确认Scribe生成的文件确实在指定路径下:
ls -la /var/www/my_domain/public/docs
检查是否有index.html或其他入口文件,且文件大小正常。
4. 重启Nginx服务
修改配置后先验证语法正确性:
nginx -t
如果输出test is successful,重启Nginx:
systemctl restart nginx
5. 排查SELinux限制(若启用)
Ubuntu默认禁用SELinux,若手动开启,需允许Nginx读取用户目录内容:
# 临时关闭测试 setenforce 0 # 若测试有效,永久开启权限 setsebool -P httpd_read_user_content 1
内容的提问来源于stack exchange,提问作者Vic Andam
相关产品推荐
相关产品推荐

