我正在全局/共享文件夹中开发各种PHP包,并将它们符号化为各种开发设置,这对于基本的localhost设置工作正常。
但是,当我尝试在Vagrant中实现相同的功能时,我遇到了问题,因为它不支持同步文件夹中的符号链接(或者至少存在安全问题)。
我被建议使用同步文件夹来解决这个问题,但是虽然Vagrant告诉我它正在安装文件夹,但当我进入时,它们是空的。
为了说明这是我的设置:
全局包存储库(此处链接所有开发环境):
+- shared_drive
+- packages
+- PackageFoo
+- PackageBar
+- PackageBaz
Localhost(有效):
+- work_drive
+- project
+- vendor
+- davestewart
+- PackageFoo <= symlink to /shared_drive/packages/PackageFoo
VM(不起作用):
+- vagrant
+- project <= mapped to /work_drive/project
+- vendor
+- davestewart
+- PackageFoo <= mapped to /shared_drive/packages/PackageFoo
路径是正确的,我可以在任何地方cd
。
我尝试了各种同步类型(默认,nfs,rsync)。
所以无论我做什么,Vagrant中的ls
都会显示vendor/davestewart/
为空。
这甚至是正确的方法吗?我希望能够做的就是在我设置的所有开发环境中编辑和测试原始包文件。
OSX / Yosemite VirtualBox 5.1
答案 0 :(得分:0)
代替任何答案,我设法通过将其置于头顶来解决问题。
而不是试图哄骗Vagrant遵循外部符号链接(文档本身所说的跨平台不一致)我没有:
/shared_drive/packages/...
设置为Vagrant同步文件夹/project/vendor/...
符号链接到此文件夹更直观:
+- vagrant
+- shared
| +- packages <= synced (external) folder to /shared_drive/packages/
| +- PackageFoo
| +- PackageBar
| +- PackageBaz
|
+- project
+- vendor
+- davestewart
+- PackageFoo <= symlink (internal) to /shared/packages/PackageFoo/
完全容易设置,速度快,PHP很开心,它应该适用于所有操作系统:)