准备好开发所需的工具:VagrantOneinstackVirtualboxVagrantbox系统环境:macOSSierra10.12.5构建系统:CentOS7构建环境:Oneinstack(PHP和Java环境)为什么不用docker呢?因为很多公司都用windows,但是windows10可以正常支持。wineows下安装一大堆东西还不行。折腾了很久,还是决定不坑了。安装首先需要安装Virtualbox和Vagrant,然后根据官方文档选择对应的操作系统进行安装。检查是否安装完成?~vagrant-vVagrant1.9.8准备好了,走吧!!!往上?morgancdpath#cd到你要操作的目录?pathmkdirvagrant#创建目录?vagrantcdvagrant#进入目录和选择框,打开Vagrant框,选择CentOS7x64(Minimal,Shrinked,Guest附件4.3inboxlist.26)(Monthlyupdates)根据需要选择相应的系统,复制相应的网址。?vagrantvagrantinitcentos/7#在Vagrant框中输入名字,然后等待?vagrantvagrantup#启动?vagrantvagrantssh#输入ssh[vagrant@localhost~]$cd/home/#输入你要使用的下载oneinstack目录,然后按照官方安装教程完成环境安装。这里安装了PHP环境。问题是,如何访问它?端口映射。在所在目录打开Vagrant生成的Vagrantfile,找到带注释的forwarded_port。其实配置文件写的很详细,按照说明完成大部分配置即可。复制粘贴在评论下方,端口号根据系统环境和个人需要更改,然后保存。#config.vm.network"forwarded_port",guest:80,host:8080+config.vm.network"forwarded_port",guest:80,host:8989退出ssh,然后重启。[vagrant@localhostroot]$退出;#退出ssh?vagrantvagrantreload#重启访问127.0.0.1:8989OK,显示welcome服务欢迎页面。访问问题解决了,那么如何编辑代码呢?同步文件夹解决了这个问题。为了更快的同步到盒子,Mac可以使用NFS,Windows可以使用SMB。以Mac为例,配置的区别在于类型参数。打开Vagrantfile,找到synced_folder复制到最下面,找到private_network复制到最下面,修改对应目录,保存。#config.vm.synced_folder"../data","/vagrant_data"+config.vm.synced_folder"本地文件路径","vagrant挂载目录"#config.vm.network"private_network",ip:"192.168.33.10"+config.vm.network"private_network",ip:"192.168.33.10"#文件同步需要通信,所以需要配置网络,这里配置的私网。如果您需要局域网中的其他人能够访问您的Vagrant项目,那么您可能需要配置公共网络,请参阅Vagrant的文档网络以获取更多信息。重启服务?vagrantvagrantup到这里,环境的配置就完成了!其他修改和注释为其他修改Vagrant.configure("2")do|config|7"config.vm.network"forwarded_port",guest:80,host:8989config.vm.network"private_network",ip:"192.168.33.10"config.vm.synced_folder"/Users/morgan/Desktop/www/","/data/wwwroot/default/",type:"nfs"config.vm.provider"virtualbox"do|vb|vb.name="morgan-centos"#虚拟机名称vb.memory="1024"#内存sizevb.cpus=2#CPUnumberendend开发测试的时候发现需要刷新几次才能显示新的页面,查看文档发现是Nginx的sendfile导致的。更改设置。#在Nginx中:sendfileoff;#InApache:EnableSendfileOffPackaging?vagrant流浪包名参考文档:Vagrantdocs
