解决虚拟机下Ubuntu与Windows的文件共享问题
因为 Windows下nginx+fastcgi+php的并发阻塞问题 的关系,我准备使用Ubuntu虚拟机来进行开发
lnmp部署完、phpStorm装好,只差代码文件了。虽然可以用FTP的方式传递文件,但每改下代码就要上传一次还是很不爽的。如何共享代码呢?
使用Vmware的共享功能
作为VM的自带功能,当然是最先想到它啦,首先要装上Vmware Tools
,教程网上一大堆不再赘述。这玩意儿好处不少,例如支持剪贴板共享之类,用VM虚拟机最好还是装一个
安装后,在虚拟机设置中选择选项-共享文件夹,按照提示设定,重启Ubuntu后,在/mnt/hgfs
目录下可以看到刚才设定的共享文件夹
……
你是不是以为就大功告成了?错!
仔细看你会发现hgfs
目录图标上有个小锁头,表示只读,你不能修改或添加文件到共享文件夹
你是不是以为我设置共享文件夹时不慎勾选了“只读”才导致这样?又错!
我明明没有勾选“只读”,确认了N次、重启了N次,问题依旧
苦苦谷歌一番原因依旧不明,虚拟机下跑Windows的话共享文件夹是可以写入的,不知为何Ubuntu不行
只读显然不符合我们的需求,只好另想办法
(如果广大读者有明白这个问题的,还望不吝赐教,谢谢)
使用局域网共享
因为要进行开发调试,我将虚拟机的网络设为“桥接模式”,此模式下虚拟机会跟宿主主机处在同局域网下
这就好办了,我Windows开个共享不就完了?
开完共享并给予“完全控制”权限后,来到Ubuntu,打开Files
-Browse Network
,找到宿主Windows的计算机名,双击,输入用户名密码,顺利看到刚才开的共享文件夹,且可读可写
……
你是不是以为就大功告成了?还是错了!
该死的Ubuntu资源管理器看不到路径,用PhpStorm等软件根本找不到这个局域网中的共享文件夹
怎么办呢?首先想到的自然是做个链接放本地,能直接通过路径访问才能被PhpStorm等软件打开
右键点击目录,选择Make Link
,喜闻乐见地又报错了
The target doesn't support symbolic links.
看来局域网中的共享文件夹不支持直接链接啊,那要怎么办呢?
这时就该用mount
命令了
首先在Ubuntu中创建一个目录,将被用于挂载
mount //192.168.0.1/lxf /home/abc/ -o username=abc,password=abc,dir_mode=0777,file_mode=0777
其中,//192.168.0.1/lxf
为Windows共享文件夹路径
/home/abc/
为刚创建的Ubuntu本地路径
username
和password
为Windows用户名密码
回车之后你就会惊喜地发现/home/abc/
已经与//192.168.0.1/lxf
同步了,且可读可写,Ubuntu内的软件也能访问到这个目录了
如果你是Ubuntu的话,还可以打开 Startup Applications 图形化程序;或 sudu vi /etc/rc.local
来实现开机自动挂载
可喜可贺、可喜可贺
[害羞]博主好厉害,我最近都懒得写博文了,也不知道写什么
工作学习中都会遇到很多问题,把解决办法或者思路写下来,利人利己[嘻嘻]