在Heroku上部署Laravel项目出现403 Forbidden错误该如何解决?
Laravel部署Heroku出现403 Forbidden错误的解决方法
403 Forbidden报错本质是Web服务器无法正常访问请求指向的资源,新建Laravel项目可正常运行说明是原项目的部署配置和Heroku运行要求不匹配导致,可按以下步骤逐一排查修复:
- 第一步:修正Procfile配置
Heroku需要根目录下大写P开头的Procfile文件指定Web运行的根目录,确认该文件存在且内容为:
如果你的项目使用Nginx运行,可将命令替换为Nginx对应指向public目录的启动配置。注意Procfile不要包含多余的空格、特殊字符,编码使用UTF-8无BOM格式,避免解析失败。web: vendor/bin/heroku-php-apache2 public/ - 第二步:修正目录权限
确保项目public目录所有文件对服务器进程可读,可在本地项目根目录执行以下命令后再提交代码:chmod -R 755 public
同时建议同步修正Laravel要求的可写目录权限,避免后续出现其他权限错误:chmod -R 755 storage bootstrap/cache - 第三步:恢复public目录默认.htaccess配置
若你之前修改过public/.htaccess的重写规则,可将内容替换为Laravel官方默认的重写配置,避免规则错误导致访问被拦截。 - 第四步:确认buildpack配置正确
执行Heroku CLI命令检查当前使用的构建包:heroku buildpacks
如果返回结果不是heroku/php,执行以下命令设置官方PHP构建包:heroku buildpacks:set heroku/php - 第五步:重新部署生效
所有配置修改完成后,提交全部改动到Git,执行推送命令部署到Heroku:git push heroku main
部署完成后可执行heroku restart重启实例确保配置加载,若仍有问题可执行heroku logs --tail查看实时运行日志定位具体错误。
内容的提问来源于stack exchange,提问作者Ossama Abd
相关产品推荐
相关产品推荐

