【问题标题】:L5.5 Create symlink between storage and public directories on shared hosting using SSHL5.5 使用 SSH 在共享主机上的存储和公共目录之间创建符号链接
【发布时间】:2019-03-05 17:58:09
【问题描述】:

我已经在共享主机上设置了我的生产服务器,我的目录结构如下所示(我的项目与公共项目处于同一级别):

/home/user/my-laravel-project/
/home/user/public_html

这就是我在Storage > Public Disc中存储数据的方式

$data->store('path/to/data', 'public');

在生产中,使用 SSH,当我运行此命令 php artisan storage:link。 它在storage/app/publicmy-laravel-project/public 之间创建符号链接 我希望在storage/app/public/home/user/public_html 之间创建此链接

我的尝试

  • 尝试删除my-laravel-project/public 然后尝试php artisan storage:link .. 失败并出现错误No file or directory
  • 我尝试将存储路径从 storage_path('app/public) 更改为 public_path()config/filesystem.php 下但没有成功
  • 我也尝试使用 shell 命令 ln -nsf /home/user/my-laravel-project/storage/app/public /home/user/public_html 创建符号链接,但没有成功

尝试了许多其他的小调整,但对我没有任何效果.. 我正在寻找一个合适的解决方案来在我的共享服务器上创建 storage/app/public/home/user/public_html 之间的符号链接

注意我不想更改 config/filesystems.php 中的路径,因为这不是正确的解决方案

我当前的服务器设置在 Siteground 上,php 版本 7.0.32 和 Laravel 5.5.43

【问题讨论】:

    标签: php laravel laravel-5 ssh server


    【解决方案1】:

    如果您想创建默认符号链接,您应该自己创建一个。

    这是符号链接模式:

    ln -s target source
    

    因此,在您的情况下,您必须执行以下操作:

    ln -s /home/user/public_html storage/app/public
    

    【讨论】:

    • 什么都没发生..我仍然被这个问题困扰..似乎找不到任何合适的解决方案..任何进一步的帮助将不胜感激
    • 当我运行那个命令时……终端什么也没显示……它只是换行等待新命令
    • 你能检查一下是否创建了 sym 文件夹吗?如果不能,您可以使用 sudo ` 运行该命令
    • 我在共享主机上..刚刚检查了public_html文件夹...没有创建任何新目录...有没有更好的方法来检查链接是否成功?
    • 嗯应该有一个“文件夹”,如果它创建了你可以运行下面的命令来检查它ls -la类似your/path -> to/path应该出现如果它应该是正确的
    【解决方案2】:

    只需在 SSH 终端上运行 php artisan storage:link。 它将在公共文件夹上创建一个符号文件(存储)并将其移动到 public_html/

    【讨论】:

    • 我试过这个方法在 namecheap 主机上效果很好
    【解决方案3】:

    来自 Sudaraka Senevirathne 的这个答案适用于现场。

    只需在 SSH 终端上运行 php artisan storage:link。它将在公共文件夹上创建一个符号文件(存储)并将其移动到 public_html/。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-22
      • 2019-11-01
      • 1970-01-01
      • 2019-07-16
      • 2019-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多