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

ND *_* Tb 2 apache laravel-5 laravel-storage

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

我太累了,所以也许我只是错过了一些明显的东西,但我一生都无法弄清楚出了什么问题。该文件显然存在,其可见性设置为“公开”。有什么理由可以写目录但不能显示保存在那里的图像吗?

编辑1: 网络

  • 应用程序
  • 引导程序
  • 配置
  • 数据库
  • 错误
  • 节点模块
  • 民众
  • 资源
  • 路线
  • 统计数据
  • 贮存
  • 温度
  • 小贩
  • 是基本结构,在 public 里面有一个符号链接指向 storage/app/public

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

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

    在这一点上,我还没有从基本的 laravel 安装中真正编辑过任何东西。我确实读过其他有类似问题的人,说他们的问题是他们不允许访问文档根目录之外的目录。所以他们只是让所有上传的文件都转到他们的公共文件夹,而不是使用存储文件夹。我确实将文档根目录设置为公用文件夹。这可能是个问题吗?(如果需要,我可以编辑我的 apache 文件)

    ND *_* Tb 6

    好的 - 睡了一会儿,今天早上查看了所有内容并意识到当以站点所有者身份登录时,一切看起来都很好,但是当以 root 身份登录时,它显示链接已损坏。基本上,artisan 创建了一个绝对链接,/storage/app/public 作为站点所有者很好,因为它是一个监狱帐户,其“根”目录是 web 文件夹。然而,它实际上是在创建一个指向系统根目录的符号链接,通常帐户无权访问它,因此它返回了 403

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