Magento和Vagrant使用rsync:性能和双向同步

3
问题:在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命令(反之亦然,只需使用vagrant rsync)。
如果您有更好的方法,请告诉我!
3个回答

5

这个对你来说还能正常运行吗? - rgareth
1
当然,它对我仍然运行良好。 - dmitry.matora
Vagrant 插件目录中包含的是你的插件版本还是过时的版本? - magnetik
@magnetik 过时的一个 - dmitry.matora

1

目前情况确实如此;Vagrant的rsync支持不是双向的,它只能从您的主机同步到虚拟机,而不能反向同步。有一个开放问题要添加双向同步(rsync-push and rsync-pull),但我不确定这个问题何时会被解决。

在此期间,还有其他选择:

我喜欢rsync的主要原因是它是Mac/Windows/Linux中最简单/最稳健的文件同步工具之一,而且由于它已经在这些平台的2/3上安装了,只有Windows的开发人员需要额外做些工作才能让它运行。大多数其他选项(NFS,Unison等)都需要每个人都安装额外的软件,并且对比rsynced文件的性能提升不大。

感谢您的回复,geerlingguy。作为一名被迫在Windows 7上工作的开发人员,我认为最好像您在博客文章中建议的那样使用Samba。 - user2270248
Samba存在这个问题,一段时间后共享会超时。它也无法在主机挂起(使用vagrant运行)后恢复。最后,你需要以管理员身份启动vagrant。这都很糟糕:( 对我来说,这暂时使SMB不合适。有关详细信息,请参见https://github.com/mitchellh/vagrant/issues/3635。 - KrzysDan

0
我使用rsync时遇到的问题是它是单向的,因此如果我的应用程序在远程服务器上创建文件,则在下次同步时将被删除。
我尝试了上述建议,但最终使用了ftp。
我正在使用phpstorm并使用自动部署。因此,如果我更改文件中的任何内容或创建新文件,则它将自动上传到远程服务器(VM)。
虽然仍然是单向的,但对我来说很有效。

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