公司的项目是基于yaf框架开发,需要安装vargant和virtualbox环境才能运行程序,我的电脑系统是windows10,我是照着https://www.jianshu.com/p/db5b40b71d05这篇文章进行安装的
1、安装vagrant https://vagrantup.com 进行下载安装,版本随意,我用的是版本是2.2.6,下载完后安装选下一步就行,傻瓜式的安装。安装完以后可以通过win+R进入cmd命令行进行检查,输入 vagrant -v 查看是否安装成功,成功会出现版本号。
2、二安装virtualbox(类似于VMware),https://www.virtualbox.org/可以进行下载,这个东西有点坑,对windows兼容性不是太好,每个版本的兼容性不太一样,比如5.0以上的版本在windows7下安装就会运行不成功,我最后安装的是5.1.38这个版本的,下载完成安装选下一步,也是傻瓜式的安装,
3、下载镜像,我用的是同事发给我的will_lnmp的镜像,这个镜像安装好后里边直接把php的运行环境都安装好了,不需要在安装mysql和nginx等东西,挺好用的
4、给virtualbox添加虚拟机,cd进入到要安装虚拟机的目录执行命令 vagrant box add my D:/wu/will_lnmp,其中‘my’是我给自己的虚拟机起的名字,‘D:/wu/will_lnmp’是镜像文件的路径
5、成功安装后使用 vagrant box list 查看,会显示出刚才安装的my这个虚拟机
6、生成vagrant配置文件,进入我自己定义的文件夹cd D:/wu/vagrant2(也是和虚拟机的共享目录),进入到此目录执行命令:vagrant init my (my是自己刚才建的虚拟机名称),执行完会在该文件夹下生成一个配置文件
7、修改上一步生成的配置文件(Vagrantfile),有两个地方需要修改:第一,把‘config.vm.network "private_network", ip: "192.168.33.10",’这句话的注释去掉,他的意思就是给你的虚拟机定义一个ip,以后主机需要将域名解析到这个ip上边,192.168.33.10这个ip就是系统自动定义的,你也可以改成其他的,因为和其他同事在一个局域网下,注意不要和其他同事的内网ip冲突就行,我的用的就是自带的这个ip,第二部:修改‘# config.vm.synced_folder "../data", "/vagrant_data"’这句,这句是设置你的主机和虚拟机的共享目录,我的改成了‘config.vm.synced_folder "D:/wu/vagrant2/project", "/home/wwwroot/project"’,其中‘D:/wu/vagrant2/project’这个是主机上的目录,以后直接修改project这个文件夹中的代码就行了,"/home/wwwroot/project"这个是project文件夹在虚拟机中的位置,
8、启动虚拟机 输入命令vagrant up这步出错点比较多,当然你也可能一次启动成功,说下我遇到的问题,第一,刚才安装的virtualbox版本不兼容引起的,解决办法就是在下载一个其他版本的,第二windows系统没有开启虚拟化,安装虚拟机的话电脑就需要这个东西,处理器是i3以上的都支持这个功能,查看方法:打开任务管理器,选择性能,右下角有一项是虚拟化,如果显示的是未启用,需要开始,步骤下边这个就行https://jingyan.baidu.com/article/8cdccae9a8e099715413cddd.html,第三对虚拟机进行ssh认证的时候出错,一直提示’Authentication failed,trying...’,网上查的解决办法是在刚才生成的配置文件(Vagrantfile)中加入两句话config.ssh.username = "vagrant" 和config.ssh.password = "vagrant",是设置虚拟机的默认密码,如果还有其他错误,建议先打开virtualbox的客户端,然后左边会列出你刚才生成的虚拟机列表,你直接在那里点一下,如果虚拟机启动不了,会返回错误,看报什么错误,根据的错误来查,比较有目的性,
9、上边都顺利的话,环境就算安装成功了,下一步把项目导入到D:/wu/vagrant2/project这个文件夹下边,然后通过ssh连上虚拟机,ip就是刚才设置的192.168.33.10这个,用户名和密码都是vagrant,进入/home/wwwroot/project这个文件夹,刚才导入的项目就会同步到这里,如果没有同步,可能是安装的vagrant功能不全,需要重新下载插件,
10、配置nginx的路由配置文件,进入/usr/local/nginx/conf/vhost文件夹,里边是nginx对域名的配置文件,把里边的server下的相关路径改成自己刚才设置的就行了。然后需要在主机的vhost文件中加入域名的ip指向就行,我的就是‘192.168.33.10 admin.wu.com’,然后就可以通过主机上的浏览器进行访问了
问题补充:
vagrant up报错Your VM has become "inaccessible."
解决办法:打开VirtualBox
提示目录中的文件不存在,进入该目录发现有个和提示的文件一样但是后缀为.vbox-tmp
重新 vagrant up成功