【问题标题】:Laravel 5 with Heroku: "/" route returns 403 Forbidden带有 Heroku 的 Laravel 5:“/”路由返回 403 Forbidden
【发布时间】:2017-06-16 06:51:24
【问题描述】:

正如标题所说,我正在使用带有以下 Procfile 的 Heroku:

web: vendor/bin/heroku-php-nginx -C nginx.conf public/

推送到 Heroku 后,我得到以下屏幕:

根据我在 Linux 方面的经验,我确信它必须对权限做一些事情,所以我一点一点地在文件夹上递归地测试 chmoding 777,并最终在整个项目上执行 777,不用说,没用。

有什么想法吗?

编辑:这是我的 nginx.conf 根据Laravel 5 docs

location / {
 try_files $uri $uri/ /index.php?$query_string;
}

【问题讨论】:

  • 你检查目录有755权限
  • 哪个目录?另外,$ chmod 755 -R /myproject 也适用于目录吗?
  • 首先检查你的/public/storage目录是否有适当的权限。
  • laravel/homestead vagrant box 上,public 目录有 drwxr-xr-x 权限。 storagedrwxr-xr-x。我不知道你推送到 Heroku 后权限是否会发生变化,我也没有办法验证
  • 发布您的nginx.conf,错误很可能在其中。文件系统权限在 Heroku 上不是问题。

标签: laravel heroku nginx laravel-5


【解决方案1】:

使用-C 开关,您将覆盖默认的 Nginx 配置“include sn-p”,其中还包含以下内容:

location / {
    index  index.php index.html index.htm;
}

所以你现在的问题是你的重写可能工作得很好(尝试像/foobar这样的URL),而不是/,因为try_files指令有效(文件夹/存在),但索引是不允许,因此是 403。

解决这个问题的最简单方法是添加索引指令:

location / {
    index index.php;
    try_files $uri $uri/ /index.php?$query_string;
}

这应该可以解决问题。

【讨论】:

    猜你喜欢
    • 2018-02-11
    • 2012-01-22
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多