【问题标题】:Symlink uploads folder in Laravel Envoyer via deploy scriptSymlink 通过部署脚本在 Laravel Envoyer 中上传文件夹
【发布时间】:2019-09-09 21:33:57
【问题描述】:

我有一个部署到 AWS 的 laravel 项目。最近我想到了使用 Envoyer 进行零停机部署。

我的项目有一个上传目录,其中用户上传是通过代码添加的。当然,这不是在 git 中添加的。

因此,当 envoyer 部署代码时,我必须将我的上传文件夹符号链接到当前目录。我添加了一个部署脚本(激活新版本后):

ln -s ~/<myproject>/uploads ~/<myproject>/current/uploads

当特使部署时,我得到了符号链接,但目录是这样的:

audio  images  uploads

而实际目录是这样的:

audio images

(注意上面的输出是上传目录下的ls命令)

我不明白为什么符号链接有另一个名为 uploads 的目录,而图像和音频文件夹是空的。顺便说一句,在上传符号链接的内部创建的奇怪的新上传文件夹实际上具有正确的结构。但这不是我需要的,我需要在其中包含适当文件的音频和图像文件夹。

我尝试了什么?

我通过 ssh 连接到服务器并运行了与我为 envoyer 添加的命令相同的命令,这可以正确创建符号链接。但是为了自动化,我实际上需要在 Envoyer 部署挂钩中拥有它。

有人知道吗?我想部署符号链接钩子应该是 Envoyer 中的一种常见做法。

【问题讨论】:

  • 你使用php artisan storage:link吗?
  • 是的,但是很抱歉这是一个旧项目,以前的开发人员遵循了在根目录中添加“上传”文件夹的做法。所以 storage:link 在这种情况下无济于事。

标签: laravel ubuntu deployment symlink envoyer.io


【解决方案1】:

问题是我在 git 中已经有一个上传文件夹。 (这是为了保留目录结构,每个目录中都有.gitignore 文件)。

为了解决这个问题,我只是在链接之前删除目录。

【讨论】:

    猜你喜欢
    • 2019-11-10
    • 2017-07-18
    • 2017-07-13
    • 2018-12-25
    • 2021-10-29
    • 2012-09-18
    • 2012-05-31
    相关资源
    最近更新 更多