如何将挂载的文件夹链接到 Laravel 项目?

Posted

技术标签:

【中文标题】如何将挂载的文件夹链接到 Laravel 项目?【英文标题】:How can i link the mounted folder to Laravel project? 【发布时间】:2021-05-02 19:53:33 【问题描述】:

我有一个 Laravel 项目,放在这里:

/home/user/www/example.com

我们为 vds 附加了一个新的存储并将其挂载

/home/user/www/storage

文件夹。

之后我们需要添加符号链接 /home/user/www/storage 到 /home/user/www/example.com/storage ,但我们不能这样做,因为最后一个已经存在并且包含所需的文件。

我们如何将它链接到项目中的存储文件夹以获得更多空间?

终端输出:

ln -s /home/user/www/storage /home/user/www/example.com/
ln: failed to create symbolic link '/home/user/www/example.com/storage': File exists

【问题讨论】:

请注意,在 Unix/BSD 和 Linux 上,它们也是“目录”,而不是 Windows 的“文件夹”概念,这不是一回事。 【参考方案1】:

选项 1

您可以将其链接到另一个位置storage 文件夹中并创建一个单独的磁盘

$ ln -s /home/user/www/storage/more-space /home/user/www/example.com/

在您的 config/filesystem.php 中,您可以添加一个额外的磁盘

// config/filesystem.php
'disks' => [
  'more-space' => [
    'local' => [
        'driver' => 'local',
        'root' => storage_path('more-space'),
    ],
  ]
]

并使用它Storage::disk('more-space')

选项 2

    您将当前storage 文件夹中的所有内容移动到新文件夹/home/user/www/example.com/ 使用rm -rf /home/user/www/storage 删除您的storage 文件夹 符号链接新文件夹ln -s /home/user/www/storage /home/user/www/example.com/

【讨论】:

谢谢!我会更喜欢第一个。但为了更好地理解,是否可以为旧内容和更多空间内容设置 /home/user/www/example.com/storage 文件夹? 是的,当然。只需将新内容保存到 storage/more-content 并将旧数据保留在当前位置即可。如果你混合,那么你只需要在 Laravel 中找到一种方法来检查两个文件夹,storage/fileXstorage/more-content/fileX

以上是关于如何将挂载的文件夹链接到 Laravel 项目?的主要内容,如果未能解决你的问题,请参考以下文章

在laravel 5.4(存储文件夹)中更改默认的“符号链接”文件夹

Laravel 5分页链接到错误的地方

如何在 Laravel 5 中将自定义配置文件添加到 app/config?

Laravel 在电子邮件中附加链接,可以将用户重定向到 localhost 项目

子域上的 Laravel 存储链接

在输入'php artisan storage:link'命令后,如何使用Laravel链接存储文件夹在Heroku上显示图像?