Window下使用linux开发环境
使用laravel的人都知道Homestead是有多方便。但是要使用Homestead在墙内是很困难的。所以索性放弃了Homestead,自己搭建类似Homestead的开发环境。
- 使用的工具
- Vmware Workstation
- contos7
- *mobaxterm
Homestead原理简要说明
其实,Homestead的原理也很简单,就是使用虚拟机(VMware、virtualbox、paralles)配合使用vagrant来使用的。
首先:vagrant能够在cmd中使用各种命令来管理虚拟机,vagrant也有类似docker那样的包,在vagrant中叫box。
其次:vagrant往虚拟机中添加各种box,就跟在虚拟机中安装各种软件是一样的。
而:homestead是包装了vagrant的一些集合命令,是的homestead可以快速简便的创建站点,重启服务等操作。
接下来,知道了这种原理之后,就可以自己创建模拟环境了
名词:主机-》windows; 客户机-》虚拟机中的操作系统
操作目标:使用客户就的开发环境,项目代码在主机中。即在windows下编程,在linux环境中运行。
第一步
安装Vmware 这个就不多说了:
虚拟机中安装centos 这个也自行解决;
第二步
** 在主机(即windows)选择或者创建一个用来共享的文件夹,例如:D:\work;
** 在虚拟机中将文件夹恭喜到客户机中:虚拟机->设置
登陆客户机,执行如下命令
sudo vmhgfs-fuse .host:/work /mnt/hgfs
之后就可以在 /mnt/hgfs下看到共享的文件夹了。
如果没看到,参考VMWare与Centos7.0无法共享文件夹的问题总结
第三步、部署项目
在这里,应该在客户机中安装好了lnmp/lamp环境,推荐oneinstack一键安装包。
-
** 在部署项目过程中,会遇到的问题,
问题1
-
No input file specified.
解决:
此时在nginx/apache错误日志中应该可以看到 permission denied。
由于共享到客户机中的文件都是root用户的,而且还改变不了用户所属,所以此时使用root用户运行apache跟php-fpm。
修改php-fpm.conf
user=root
group=root
修改nginx.conf
user root root
重启nginx php-fpm
-
问题2
-
启动php-fpm 可能会提示不能使用root用户启动的问题。
解决:
在启动php-fpm 时添加一个参数 php-fpm -R
如果是用onestack的,修改 /etc/init.d/php-fpm
问题3
-
重启客户机后,/mnt/hgfs 下看不到共享的文件夹
解决:
登陆客户机之后执行
sudo vmhgfs-fuse .host:/work /mnt/hgfs
如果觉得麻烦,可以自己写个脚本。这个我还不会。。。。。。
第四部
-
配置站点
- 接下来的流程就是一般的配置客户机中的站点。
-
客户机中的站点配置成功之后,在windows下将站点的域名host到客户机的ip。
例如:
192.168.675.129 mysite.tt
第五步
mobaxterm
mobaxterm是一个强大的工具,包含了cygin ,ssh ,ftp ,等。
如果是团队开发,用到svn或者git之类的,登陆客户机,进入共享的文件夹中今提交或者更新代码就可以了。
至此,模拟homestead开发环境配置完成。
写在最后
如果觉得麻烦,在windows下就能够满足日常的开发,就不需要这种了。
当然,往后可能会写一些脚本直接来配置这些。。。以后再说吧。