显示来自存储文件夹的图像时Laravel 403错误

时间:2018-10-06 04:36:40

标签: apache laravel-5 laravel-storage

我无法访问保存到存储文件夹的文件。我能够上传,归档,保存文件。例如,如果我运行size方法,它会获取上载图像的文件大小,但是在显示文件时会出现403错误。我使用laravel artisan命令创建符号链接,我尝试手动创建符号链接。我检查了一下是否验证了符号链接是否在我的apache配置中,我可以从shell进入cd权限为777(我有755,但试图弄清楚是什么错误我将其更改为777)的所有权和其中的文件与公用目录中的所有其他文件都是同一用户和组。

我非常累,所以也许我只是想念一些明显的东西,但是我无法一辈子找出问题所在。该文件显然存在,其可见性设置为“公共”。有什么理由可以写目录但不显示保存在其中的图像?

编辑1: 网络

  • 应用
  • 引导程序
  • config
  • 数据库
  • 错误
  • node_modules
  • 公开
  • 资源
  • 路线
  • 统计
  • 存储
  • 温度
  • 供应商
  • 是基本结构,在public内带有指向存储/应用/公共的符号链接

    我的存储文件夹配置的文件系统是:

    'public' => [
                'driver' => 'local',
                'root' => storage_path('app/public'),
                'url' => env('APP_URL').'/storage',
                'visibility' => 'public',
            ],
    

    目前,我还没有对基本的laravel安装进行任何编辑。我确实读过其他人遇到类似的问题,他说他们的问题是他们不允许在其文档根目录之外访问目录。因此,他们只是将所有上载都转到了公用文件夹,而不是使用存储文件夹。我的文档根目录确实设置在公用文件夹中。可能有问题吗? (如果需要,我可以编辑我的apache文件)

    1 个答案:

    答案 0 :(得分:0)

    好-睡一觉,今天早晨看了看一切,意识到以站点所有者的身份登录时,一切看起来都很好,但是以root身份登录时,它显示链接已断开。基本上,工匠会创建一个绝对链接,/ storage / app / public作为站点所有者是可以的,因为它是一个带有监狱工具的帐户,其“根”目录是Web文件夹。但是它实际上是在创建到系统根目录的符号链接,通常帐户无法访问该符号链接,因此它返回403

    基本上,我只是通过删除创建的损坏的符号链接laravel并在公共目录中输入以下内容,将其作为相对链接而不是绝对链接: ln -s ../storage/app/public storage