Azure App Service(PHP环境)出现NGINX 403 Forbidden错误求助
Azure Web App Statamic(Laravel)403 Forbidden 故障排查建议
1. 检查自定义启动脚本状态
- 确认
/home/site/scripts/startup.sh(或你指定的启动脚本路径)是否存在,内容是否未被篡改。示例正确脚本内容:cd /home/site/wwwroot # 确保NGINX配置指向public目录的命令或Laravel启动命令 php artisan serve --host 0.0.0.0 --port 8080 - Azure Web App在自动更新、部署后可能重置脚本,需确认脚本未被意外删除或替换。
2. 验证public目录及文件权限
- SSH登录Web App,执行命令检查权限:
ls -ld /home/site/wwwroot/public ls -l /home/site/wwwroot/public/index.php - 确保
public目录权限为755,index.php权限为644,所有者为www-data(Web App运行用户)。权限异常时执行:chown -R www-data:www-data /home/site/wwwroot/public chmod -R 755 /home/site/wwwroot/public chmod 644 /home/site/wwwroot/public/index.php
3. 检查NGINX配置有效性
- 查看当前NGINX站点配置:
cat /etc/nginx/sites-available/default - 确认配置中根目录指向
public:root /home/site/wwwroot/public; index index.php index.html index.htm; - 若配置被重置,可通过
/home/site/nginx/default.conf自定义配置,之后重启NGINX:service nginx restart
4. 检查Statamic存储目录权限
- Statamic依赖
storage目录的写入权限,执行命令检查:ls -ld /home/site/wwwroot/storage - 确保权限为
775或755,所有者为www-data,异常时执行:chown -R www-data:www-data /home/site/wwwroot/storage chmod -R 775 /home/site/wwwroot/storage
5. 查看NGINX详细错误日志
- 日志流可能未展示具体错误,直接查看NGINX错误日志:
cat /var/log/nginx/error.log - 日志会明确标注403原因,比如权限不足、索引文件缺失、配置语法错误等。
6. 确认Web App启动命令配置
- 进入Azure门户Web App的配置页面,检查“启动命令”是否正确指向自定义脚本,示例:
/home/site/scripts/startup.sh - 若启动命令被清空或修改,重新设置后重启Web App。
7. 排查自动部署/扩展冲突
- 检查自动部署记录(如GitHub Actions、Azure DevOps),确认最近部署未覆盖启动脚本或配置文件。
- 查看已安装的Web App扩展,部分扩展可能修改NGINX配置或目录权限。
内容的提问来源于stack exchange,提问作者PoorInRichfield
相关产品推荐
相关产品推荐

