【问题标题】:Laravel 5.3 storage:link -> symlink(): Protocol errorLaravel 5.3 storage:link -> symlink(): 协议错误
【发布时间】:2017-01-22 14:57:38
【问题描述】:

我正在尝试运行以下工匠命令:

php artisan storage:link

我收到此错误:

[ErrorException] symlink(): Protocol error

你能帮我解决这个问题吗。

这是我的设置:

  • Windows 10 使用 vagrant 和 Homestead (v0.5.0) 框
  • Ubuntu 16.04 LTS(GNU/Linux 4.4.0-22-generic x86_64)
  • Laravel 框架版本 5.3.6
  • PHP 7.0

【问题讨论】:

  • Win 10 上的 Laravel 5.4 和 Homestead ((v5.4.0)) 上相同
  • 对我来说,以管理员身份运行是不够的,我在尝试创建符号链接时仍然遇到“协议错误”。这是有效的:stackoverflow.com/a/60741351/470749

标签: homestead laravel-artisan laravel-5.3


【解决方案1】:

您的问题可能是您必须以系统管理员身份启动您的 vagrant box。

所以点击开始类型“cmd”,右键单击它选择“以管理员身份运行”。导航到您的项目,输入“vagrant up”。重试该命令。

Creating symbolic link on Homestead?

【讨论】:

  • 在切换到“以管理员身份运行”之前,如果您已经启动,您将需要停止。
  • 如果您不听@ShawnLindstrom 的建议,您将遇到以下错误消息:Vagrant up: There was an error while executing 'VBoxManage', a CLI used by Vagrant
【解决方案2】:

以超级管理员身份运行 cmd。

php artisan storage:link 没问题。

【讨论】:

    【解决方案3】:

    您必须以 cmd 管理员身份登录,为此请单击 windows 键和 X。然后选择管理员系统符号。别忘了在另一个航站楼让她无所事事地停下来。

    【讨论】:

      【解决方案4】:

      首先用vagrant halt命令关闭vagrant,然后以管理员身份运行cmd,进入你的homestead文件夹,用vagrant up启动Vagrant,然后你可以运行php artisan storage:link。 对我来说它有效:)

      【讨论】:

      • 感谢您的解决方案,但这对我不起作用。但就我而言,我在~/storage 中没有users 文件夹,在~/app/ 中没有storage 文件夹。我还不确定这是否会产生影响或是否存在。
      【解决方案5】:

      尝试从主机运行php artisan storage:link。这样就可以了

      【讨论】:

        【解决方案6】:

        就我而言,我以管理员身份运行 vagrant 并且正在工作。

        不要忘记在其他机器上 vagrant halt 并以管理员身份开始新的。

        php artisan storage:link
        

        输出:

        [/home/vagrant/code/public/storage] 链接已连接到 [/home/vagrant/code/storage/app/public]。
        链接已创建。

        【讨论】:

          【解决方案7】:

          我花了很多时间解决这个问题,在我的例子中,我的项目是在 exFat 格式的存储驱动器中,在 Window 上创建符号链接的命令是
          mklink \J 这仅适用于 NTFS 格式的存储驱动器。

          我不得不将我的项目迁移到 NTFS 格式的存储中。

          我正在使用 Docket、Laravel 帆、Ubuntu 20.04 和 voyager(是 laravel 的管理面板)。

          【讨论】:

            【解决方案8】:

            如果您尝试以管理员身份运行 CMD 后仍然遇到此问题,但没有运气。

            您可能使用 predis/redis,转到您的 .env 文件并放置标准驱动程序

            BROADCAST_DRIVER=log
            CACHE_DRIVER=file
            FILESYSTEM_DRIVER=local
            QUEUE_CONNECTION=sync
            SESSION_DRIVER=file
            SESSION_LIFETIME=120
            

            现在停止你的 vagrant/homestead 盒子,运行 homestead/vagrant,再试一次,然后 woopti :)

            现在把驱动改回redis

            【讨论】:

              【解决方案9】:

              如果您在 Windows 上使用 Homestead:

              以管理员身份打开cmd。

              从终端转到 homestead 文件夹,首先,关闭并打开您的虚拟机:

              vagrant halt
              

              然后

              vagrant up
              

              输入您的项目文件夹:

              vagrant ssh
              
              cd path/to/yourproject
              

              然后在那次运行之后:

              php artisan storage:link
              

              【讨论】:

                猜你喜欢
                • 2018-03-06
                • 2016-02-01
                • 2019-01-05
                • 2017-01-22
                • 1970-01-01
                • 2018-01-17
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多