搭建PHP开发环境时, 如果是单一操作系统, 无论 纯windows 开发还是 纯linux 都会有诸多不便。
纯windows: 开发环境与线上linux环境的不一致往往造成一些部署问题
纯linux: 许多常用windows软件无法使用
所以一种常见的php开发环境搭建如下:
搭建虚拟机, vmware下跑linux服务器版, window下secureCRT远程管理该虚机。
windows实机与linux虚机间共享一个目录, windows下的PHPStorm等IDE在该共享目录下开发。
但在linux下运行该项目的web服务, 服务测试在windows下的浏览器中进行。
其中windows实机与linux虚机共享目录的实现方法有多种。
一。利用Vmware自带的共享目录功能, 将window下的共享目录 共享给linux虚机,这点可在虚拟机配置对话框中进行。
该策略会涉及两方面问题。
第一点
由于系统环境的不同, 经常会碰到共享目录在linux下无法读出,解决方案根据ubuntu还是centos各有不同。
ubuntu解决方案网上较多, centos解决方案请见 http://my.oschina.net/u/2400083/blog/474940。
第二点
由于共享的是windows文件格式协议的目录, 所以在虚拟中,该共享目录不支持 权限设定 和 软链接。
这点相当致命, 尤其是碰到做类似于symfony框架项目的开发, 其中往往涉及到软连接问题。
python开发就更不用说了, 到处都是软连接。
二。利用Vmware自带的映射虚拟磁盘功能,这点可在vmware菜单栏的文件选项卡下实施。
该策略可以把整个虚机的某个分区映射给windows实机, 但是
要求虚拟关机状态下才能实施,所以这只适合于特殊情况了。
三。利用samba文件共享协议,该策略我比较推荐的方案。
概要的讲就是在虚机中搭建smb服务, 共享某个目录,然后在windows实机中映射网路驱动器到该共享目录。
实施细节:
1.安装samba服务
sudo yum install samba
sudo chkconfig smb on #设置smb服务开机启动
sudo service smb start #启动smb服务
2.创建共享目录
mkdir /opt/share
3.创建账号
sudo useradd sambashare #系统账号
sudo smbpasswd -a sambashare #加入到samba账号
4.配置samba
cd /etc/samba
sudo cp smb.conf smb.conf.bak
sudo vim smb.conf
在配置文件最后追加如下几行:
[share]
comment = share directory for develop
path = /opt/share
valid users = sambashare
public = no
writable = yes
create mask = 0777
directory mask = 0777
5.重启smb服务
sudo service smb restart
6.关闭防火墙
## centos6.5下
service iptables stop
chkconfig iptables off
## centos7下
service firewalld stop
chkconfig firewalld off
7.关闭selinux
setenforce 0
## vi /etc/selinux/config
SELINUX=disabled
8.进入windows的资源管理器,选择映射网络驱动器,文件夹路径为: \\虚机ip\share
9.windows下cmd输入命令 "net use", 查看共享信息
四。第四点是写完文档的最后又发现的一种不错的方法,个人没有尝试过。
进入linux虚机,对共享目录右键配置共享, 然后在windows实机中配置映射网络驱动器连接该共享目录。