Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 显示存储文件夹中的图像时发生Laravel 403错误_Apache_Laravel 5_Laravel Storage - Fatal编程技术网

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

Apache 显示存储文件夹中的图像时发生Laravel 403错误,apache,laravel-5,laravel-storage,Apache,Laravel 5,Laravel Storage,我无法访问保存到存储文件夹的文件。我可以上传,文件,保存文件。例如,如果我运行size方法,它会得到上传图像的文件大小,但是当显示文件时,我会得到403错误。我使用laravel artisan命令创建符号链接,我尝试手动创建符号链接。我已经检查过,以验证我的apache配置中是否有follow symlinks,我可以从shell将其刻录到其中。权限为777(我拥有它755,但在试图找出问题的过程中,我将其更改为777)。symlink的所有权和其中的文件与公共目录中的其他所有文件都是相同的用

我无法访问保存到存储文件夹的文件。我可以上传,文件,保存文件。例如,如果我运行size方法,它会得到上传图像的文件大小,但是当显示文件时,我会得到403错误。我使用laravel artisan命令创建符号链接,我尝试手动创建符号链接。我已经检查过,以验证我的apache配置中是否有follow symlinks,我可以从shell将其刻录到其中。权限为777(我拥有它755,但在试图找出问题的过程中,我将其更改为777)。symlink的所有权和其中的文件与公共目录中的其他所有文件都是相同的用户和组

我太累了,所以也许我只是错过了一些明显的东西,但我一辈子都搞不清楚到底出了什么问题。文件显然存在,其可见性设置为“public”。有什么原因可以让我写目录,但不显示保存在那里的图像

编辑1: 网状物
  • 应用程序
  • 引导
  • 配置
  • 数据库
  • 错误
  • 节点单元
  • 公开的
  • 资源
  • 路线
  • 统计数据
  • 储藏
  • 临时工
  • 供应商
  • 是基本结构,public内部有一个符号链接,指向storage/app/public

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

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

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

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

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

    能否显示您的项目目录结构,我的意思是您在何处创建了符号链接,以及您正在存储文件的存储子目录下。我想看看你的文件系统配置文件。经过6个小时的查找,这对我很有用。非常感谢,非常感谢!