Laravel 5.3 storage:link -> symlink(): 协议错误
Posted
技术标签:
【中文标题】Laravel 5.3 storage:link -> symlink(): 协议错误【英文标题】:Laravel 5.3 storage:link -> symlink(): Protocol error 【发布时间】: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)) 上相同 对我来说,以管理员身份运行是不够的,我在尝试创建符号链接时仍然遇到“协议错误”。这是有效的:***.com/a/60741351/470749 【参考方案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
【讨论】:
以上是关于Laravel 5.3 storage:link -> symlink(): 协议错误的主要内容,如果未能解决你的问题,请参考以下文章
在输入'php artisan storage:link'命令后,如何使用Laravel链接存储文件夹在Heroku上显示图像?
apache_conf 如何在Laravel(5.3)中包含流明(5.3)