symlink(): Vagrant 2.0中的协议错误

3

我是Homestead和Laravel的新手,最近在我的Windows 10电脑中安装了Vagrant 2.0.0。我已经成功地安装了Laravel 5.5,但是出现了错误[ErrorException] symlink(): Protocol error。我尝试通过以下方式解决:

Laravel 5.3 storage:link -> symlink(): Protocol error https://laracasts.com/discuss/channels/servers/creating-symbolic-link-on-homestead

但是,这里提到的解决方案似乎不能解决问题。我也无法以管理员身份运行Git Bash和CMD,因为在运行vagrant up命令时会出错。

请问有人能给出解决方案吗?

提前感谢

Barun


1
对我来说,以管理员身份运行还不够,当我尝试创建符号链接时仍然出现“协议错误”。以下是有效的方法:https://stackoverflow.com/a/60741351/470749 - Ryan
4个回答

1
我解决了这个问题。
在storage/framework下创建以下文件夹:
- sessions - views - cache 然后以管理员身份运行终端。
执行以下操作:
- Vagrant up - php artisan cache:clear - php artisan config:clear - php artisan view:clear - php artisan storage:link
刷新页面以避免缓存。

0

如果您之前在虚拟机中重命名了文件夹,则可能存在旧的VBoxInternal2/SharedFoldersEnableSymlinksCreate条目。如果存在错误的条目,则会收到协议错误。要删除错误的条目:

  • VBoxManage getextradata {虚拟机名称}

  • 查看VBoxInternal2/SharedFoldersEnableSymlinksCreate条目列表,并针对每个不再有效的条目执行以下操作:

    • VBoxManage setextradata {虚拟机名称} VBoxInternal2/SharedFoldersEnableSymlinksCreate/{错误条目}

在结尾处运行此命令而不带任何值将删除该条目。您可以再次运行getextradata命令来确认此操作。

然后重新加载vagrant box。这为我解决了此问题。


0

我通过以管理员身份运行bash解决了我的问题。

需要注意的事项: 如果您正在使用虚拟机,并且以管理员身份运行bash,则这将期望您的操作系统/虚拟机也保存在管理员状态下。如果没有,一旦您vagrant up,它将重新下载OS/BOX,因为它现在将保存在管理员环境中。抱歉我的英语不好,希望你明白我的意思...


0

您需要执行以下步骤:

  1. 以管理员身份启动git-bash
  2. 然后进入Homestead文件夹,通常是 cd: c:/users/username/homestead
  3. 然后输入命令 vagrant ssh Homestead将会打开
  4. 现在您可以导航到您的应用程序主文件夹,例如: cd: f:/homestead-projects/example-app
  5. 现在您需要运行artisan命令:
    • php artisan cache:clear
    • php artisan config:clear
    • php artisan view:clear
    • php artisan storage:link

存储文件夹将被创建在APP->public->storage,在这里您可以看到通过上传文件创建的文件夹。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接