问题:在Windows 7上,由于我们不能使用nfs(当然,没有黑客),Vagrant / Magento夫妇的表现真的很差。
经过这么多研究,我发现解决问题的最佳方法(也许是唯一的方法)就是使用rsync。好的,我成功地使用它,现在的表现非常好!
我发现了一个问题:似乎rsync是单向的。我的意思是说?假设我成功安装magento然后我调用“vagrant rsync”命令。它将执行文件夹的新同步,并且因为它将来宾文件结构与主机文件结构同步,它将“删除”Magento在安装后为我构建的etc / app / local.xml文件,只是因为它在主机文件结构中不存在。
现在,我读了一些解决方案,例如排除文件夹或同步文件,但我认为这不是解决问题的好方法。
有人有更好的解决方案吗?有一种方法可以双向同步两个文件结构吗?
更新
我试图找到解决方案。
1)我试图使用unison,但我发现了一些我无法理解的错误。 2)我尝试使用vagrant插件rsync-back,但似乎无法找到要同步的正确文件夹 3)我最终选择在虚拟机中执行rsync。通过vagrant ssh访问,执行命令“rsync -av / var / www / / vagrant。 它似乎有效。
因此,目前,提高Vagrant和Magento性能的解决方案是激活rsync系统。要解决单向同步问题,我需要从VM执行rsync命令,如果我需要从guest虚拟机同步到主机(反之,它足以使用vagrant rsync)。
如果你有更好的方法,请把它给我!
答案 0 :(得分:5)
我知道的最佳选择是同步(实时双向文件夹同步)
来自https://github.com/mrdavidlaing/vagrant-unison的vagrant-unison插件已过时且无法正常运行。
在此处获取vagrant-unison插件的更新版本https://github.com/dmatora/vagrant-unison
答案 1 :(得分:1)
现在确实如此; Vagrant的rsync支持不是双向的 - 它只从您的主机同步到 VM,而不是返回。有一个未解决的问题是添加双向同步(rsync-push and rsync-pull),但我不确定这个问题什么时候会出现问题。
其他一些选择:
rsync-auto
我喜欢rsync的主要原因是因为它是Mac / Windows / Linux中最简单/最强大的文件同步工具之一,并且因为它已经安装在这些平台的2/3上,只有Windows开发人员需要做任何额外的工作才能实现。大多数其他选项(NFS,Unison等)需要为每个人提供额外的软件,并且不会提供比rsynced文件更高的性能提升。
答案 2 :(得分:0)
我使用rsync的问题是它是单向的,所以如果我的应用程序在远程服务器上创建一个文件,它将在下次rsynced时被删除。
我已经尝试了上述建议,但我最终还是使用了ftp。
我使用phpstorm并使用自动部署。因此,如果我更改文件中的任何内容或创建一个新文件,它将自动将您的文件上传到远程服务器(VM)。
它仍然是一种方式,但它适用于我。