在使用 vagrant 搭建 php 开发环境的时候,需要用到文件同步同步功能。在比对了众多网络文件系统之后,发现对 Windows 下文件同步系统最友好的是 smb, 那么怎么在 vagrant 启用 smb 文件共享呢?

不管你是用什么方式拿到了 vagrant box,在启动 vagrant box 的时候,请修改 Vagrantfile:

Vagrant.configure("2") do |config|
  config.vm.synced_folder "C:/Work", "/home/Code",
    type: "smb",
    smb_host: "192.168.33.1",
    smb_username: "ranwuer",
    smb_password: "yourpassword",
    mount_options: ["username=ranwuer","password=yourpassowrd"]
end

参数解释:

1. smb_host

表示需要与哪台主机共享文件,这里填的是 host 端的 IP 地址,需要以下配置启动后,才可以使用这个 IP。

config.vm.network "private_network", ip: "192.168.33.11"

这个配置的意思是,guest 主机与 host 主机通信的私有网络。host 端的 IP 为 192.168.33.1,可以在 cmd 中输入 ipconfig 查看:

这样以来,就可以使用 smb 实现 guest 的文件夹和 host 端的文件夹之间的数据同步了。

2.smb_username,smb_password

如果不输入这个参数的话,在你运行 vagrant up 的时候,vagrant 会提示你输入 windows 的用户名和密码,来实现对 windows 中某文件夹的连接。目前我是在 windows 10 系统上实现的,还请根据实际情况填写这两个参数。总之配置了这两个参数不用每次启动的时候都输入 windows 的用户名和密码。

3.mount_options

填写这个参数是为了解决 “wrong fs type” 错误,见:https://www.vagrantup.com/docs/synced-folders/smb.html 的 COMMON ISSUES 章节。这是官方提出的错误解决方案,反正我这样子用了,就没有出现问题了。

错误提示:

一些常用技巧:

1.为了防止smb共享剔除不活动的连接需要执行以下命令让系统不要自动踢掉不活动的连接
net config server /autodisconnect:-1

2.vagrant不会自动删除共享,要删除共享使用命令
net share c30268623ba3dedeaa9f098b570dca21 /delete

3. 用 net share 查看文件共享状态

总之,我根据这个配置, 解决了在 windows 下虚拟机与 hos t主机的通过 smb 共享的问题,还请各位看官轻拍。

在 Vagrant 下启用 SMB 文件共享的更多相关文章

  1. linux/windows下启用和停止VMware后台服务的脚本

    linux/windows下启用和停止VMware后台服务的脚本 linux/windows下启用和停止VMware后台服务的脚本 linux平台 windows平台 本文由乌合之众 lym瞎编,欢迎 ...

  2. Debian9.5解决在root用户下启用VNC后lightdm+Xfce4只能使用root登录,其他用户无法登陆

    Debian9.5解决在root用户下启用VNC后lightdm+Xfce4只能使用root登录,其他用户无法登陆 最近在研究debian9.5 VNC的问题,当VNC使用tightVNC或tiger ...

  3. 在macOS下启用CGO_ENABLED的交叉编译

    在macOS下启用CGO_ENABLED的交叉编译 在启用CGO_ENABLED的情况下,尝试使用下面命令进行Windows平台的交叉编译: $ CGO_ENABLED= GOOS=windows G ...

  4. CentOS7下使用NFS文件共享给Window server 2012

    CentOS7下使用NFS文件共享给Window server 2012 2018年08月24日 23:15:54 疼迅扣扣 阅读数:443  出自https://blog.csdn.net/u013 ...

  5. WCF在tcp通道下启用httpget

    关于tcp通道下,启用httpget,必须启用一个http的基地址,如果要启用元数据交换,host中必须开启服务描述. //01 create host Uri tcpBaseAddress = ne ...

  6. Linux 下安装Samba 文件共享服务器

    samba文件共享服务可以让linux和linux系统.linux和windows系统之间共享文件 服务查询 默认情况下,Linux系统在默认安装中已经安装了Samba服务包的一部分,为了对整个过程有 ...

  7. Win7 IIS下启用ASP.NET

    问题产生的原因 先装的Win7,未启用IIS, 后启用IIS功能,即使选中开发选项只能默认打开ASP.net 中FrameWork2的支持,其它 版本的FrameWork默认IIS不支持,需要手工开启 ...

  8. windows server2008 r2 下启用 sqlserver 2008的远程连接

    首先说明,本文转自互联网. TMD 花了二天,终于找到怎么开启这个远程连接了.....娘的,累死了,写下来,希望能帮助同胞们... 用win server 2008 r2 和sql server 20 ...

  9. IIS7.5下启用asp父级路径

    如果你是运行asp显示需要启动父路径的话可以这样解决: 在IIS 下 打开ASP选项,有个启用父路径的选择项,选择True 就可以了! 具体看图!因为没法贴两张图,就弄在一张里了!

随机推荐

  1. 一个div,包含三个小的div,平均分布的样式

    从11月份开始,自学前端开发,写静态页面中,经常用到一个大的div下包含三个小的div,平均分布div大小样式,写过多次,也多次忘记,每次都要现找资料,不想之后,在这么麻烦,索性今天自己记录一下,方便 ...

  2. colorbox 自适应 高度

    $(".example3").colorbox({  inline: true, scrolling: false ,                    onComplete: ...

  3. mysql存储过程 --游标的使用 取每行记录 (多字段)

    delimiter $ create PROCEDURE phoneDeal() BEGIN DECLARE id varchar(64); -- id DECLARE phone1 varchar( ...

  4. jqueyr获取动态创建的元素

    javascript代码是按照代码顺序执行的,所以如果你用某个元素的click事件创建一个元素,id为test,然后在下面$("#test")是无法选择到的. 正确的方法是将在cl ...

  5. 中国能用的NTP服务器地址

    133.100.11.8 prefer210.72.145.44203.117.180.36131.107.1.10time.asia.apple.com64.236.96.53130.149.17. ...

  6. 关于unity3D的学习感想

    在老师布置团队项目后组长确定项目是做游戏是,我才接触的Unity3D游戏引擎. 因为一开始我没有接触过这类软件,更没有用过.所以作为一个新手,做好的办 法实在网上找教程.网上说Unity3D是由Uni ...

  7. 开始研究tigase和android客户端的实现

    2015.7.5. 昨晚总算把tigaase7.0的开发环境搭起来了.稍微看了下代码结构. 主要是auth,db,compnent,cluster,server,xmpp,这几块,准备先发点时间看看开 ...

  8. Bootstrap 模态框 + iframe > 打开子页面 > 数据传输/关闭模态框

    父页面bootstrap模态框: <div class="modal fade" id="myModal" tabindex="-1" ...

  9. MongoDB基本管理命令

    MongoDB是一个NoSQL数据库系统:一个数据库可以包含多个集合(Collection),每个集合对应于关系数据库中的表:而每个集合中 可以存储一组由列标识的记录,列是可以自由定义的,非常灵活,由 ...

  10. JAVA编程心得-Eclipse/MyEclipse 中文乱码解决办法

    将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclipse编码格式不同.总结网上的建议和自己的体会 ...