Azure按量付费部署Laravel遇403 Forbidden nginx/1.26.2错误求助
排查Laravel部署Azure Pay-As-You-Go后Nginx 403 Forbidden错误的步骤
检查Nginx站点配置的根目录指向
必须确保Nginx配置的root指向Laravel项目的public子目录,而非项目根目录,否则会触发403。示例正确配置:root /var/www/html/your-laravel-project/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; }修改后重启Nginx生效:
sudo systemctl restart nginx修正Laravel目录权限
给Nginx运行用户(通常为www-data)赋予项目目录的访问权限,重点确保storage和bootstrap/cache可写入:sudo chown -R www-data:www-data /var/www/html/your-laravel-project sudo chmod -R 755 /var/www/html/your-laravel-project/storage sudo chmod -R 755 /var/www/html/your-laravel-project/bootstrap/cache禁止使用777权限,避免安全风险。
验证Azure网络安全配置
确认Azure VM的网络安全组(NSG)已开放80(HTTP)和443(HTTPS)端口的入站流量,同时检查VM的公共IP是否正常绑定,无额外防火墙拦截请求。核对Laravel环境配置
检查项目根目录的.env文件:APP_URL需与Azure公网IP/域名一致APP_ENV设置为production- 确保
APP_KEY已生成,未生成则执行:php artisan key:generate --force
查看日志定位具体问题
查看Nginx错误日志获取触发403的细节:sudo tail -f /var/log/nginx/error.log同时查看Laravel应用日志:
sudo tail -f /var/www/html/your-laravel-project/storage/logs/laravel.log日志信息会明确指出是权限、路由还是配置类问题。
Azure App Service专属检查(若未用VM部署)
如果是部署到Azure App Service:- 确认部署中心绑定了正确代码分支,部署流程自动执行了
composer install - 检查启动命令是否配置正确,例如指向Nginx配置或执行
php artisan serve - 查看App Service的日志流,获取部署或运行时错误
- 确认部署中心绑定了正确代码分支,部署流程自动执行了
内容的提问来源于stack exchange,提问作者Fanie Bugenne
相关产品推荐
相关产品推荐

