当前位置: 首页 > 后端技术 > PHP

Vagrant_0

时间:2023-03-29 16:18:56 PHP

简介Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它的主要意思是让所有开发者使用和线上服务器一样的环境,本质上和你新建一个虚拟机安装是一样的https://www.vagrantup.com/dow...vagrant下载,安装自己https://www.virtualbox.org/wi...virtualbox下载,自己安装常用命令vagrantinit#初始化,生成Vagrantfilevagrantup#启动虚拟机vagranthalt#关闭虚拟机vagrantreload#重启thevirtualmachinevagrantssh#SSH到虚拟机vagrantsuspend#挂起虚拟机vagrantresume#唤醒虚拟机vagrantstatus#查看虚拟机运行状态vagrantdestroy#销毁当前虚拟机box管理命令vagrantboxlist#查看本地box列表vagrantboxadd#添加box到列表中vagrantboxremove#从box列表中移除并修改配置。需要启动或重启vagrantprovisionvagrantreload--provisionhomestead站在巨人的肩膀上快速部署PHP开发环境homestead是官方的laravelphp开发环境(本教程使用homesteadbox6.1.0)内置:Ubuntu18.04GitPHP7.2PHP7.1PHP7.0PHP5.6NginxApache(可选。本教程未安装)MySQLMariaDB(可选。本教程未安装)Sqlite3PostgreSQLComposerNode(WithYarn,Bower,Grunt,andGulp)RedisMemcachedBeanstalkdMailhogNeo4j(可选。本教程未安装)MongoDB(可选。本教程不安装)Elasticsearch(可选。本教程不安装,以免太大)ngrokwp-cliZendZ-RayGoMinio下载盒子(宅基地)wgethttps://vagrantcloud.com/lara...网盘:盒子镜像metadata.json{"name":"laravel/homestead","versions":[{"version":"6.1.0","providers":[{"name":"virtualbox","url":"X:/path/homestead-6.1.0.box"}]}]}vagrantaddboxmetadata.json或vagrantaddboxlaravel/homesteadX:/path/homestead-6.1.0.box--box-version=6.1.0vagrantboxlistlaravel/homestead(virtualbox,6.1.0)vagrantinitlaravel/homestead--box-version=6.1.0generatedVagrantfile调整Vagrantfile配置--mode:ruby??--vi:setft=ruby:ENV['VAGRANT_DEFAULT_PROVIDER']="virtualbox"Vagrant.configure("2")do|config|#虚拟机名称#config.vm.define="sxx_v1"#镜像名称config.vm.box="laravel/homestead"#镜像版本要求config.vm.box_version="6.1.0"#config.vm.box_version=">=6.1.0"#注意服务名“_”这里不能使用下划线config.vm.hostname="sxx-dev-server"#虚拟机的私网ipconfig.vm.network"private_network",ip:"192.168.10.10"#共享同步的数据目录config.vm.synced_folder"D:/qkl/sxx/docker","/home/share",create:falseconfig.vm.synced_folder"D:/qkl/sxx/sxx_admin3","/web/www/sxx_admin3",create:falseconfig.vm.synced_folder"D:/qkl/sxx/vagrant/nginx/conf","/etc/nginx/sites-custom/",create:false#端口转发#guest->虚拟机#host->宿主config.vm.network"forwarded_port",guest:22,host:2222config.vm.network"forwarded_port",guest:80,host:8000#VirtualBox虚拟机配置:config.vm.provider"virtualbox"do|vb|vb.gui=falsevb.name="sxx_v1"vb.memory="2048"vb.cpus="2"end##查看您正在使用的提供程序的文档,以获取有关可用选项的更多信息。#使用shell脚本启用配置。还可以使用其他配置程序,例如#Puppet、Chef、Ansible、Salt和Docker。请参阅#文档了解更多信息关于它们的具体语法和使用。#config.vm.provision"shell",inline:<<-SHELL#sudoapt-getupdate#SHELLend启动vagrantupoutput==>默认:尝试正常关闭VM...==>默认:检查'laravel/homestead'框是否是最新的...==>默认值:清除任何以前设置的转发端口...==>默认值:清除任何以前设置的网络接口...==>默认值:根据配置准备网络接口...默认值:适配器1:natdefault:适配器2:hostonly==>默认:转发端口...默认:22(来宾)=>2222(主机)(适配器1)默认:80(来宾)=>8000(主机)(适配器1)默认:22(来宾)=>2222(主机)(适配器1)==>默认值:运行“预启动”VM自定义...==>默认值:启动VM...==>默认值:等待机器启动。这可能需要几分钟......默认:SSH地址:127.0.0.1:2222默认:SSH用户名:vagrant默认:SSH身份验证方法:私钥==>默认:机器启动并准备就绪!==>默认:检查访客添加VM中的s...==>默认值:设置主机名...==>默认值:配置和启用网络接口...以下SSH命令以非零退出状态响应。Vagrant假定这意味着命令失败!/sbin/ifdown'eth1'||true/sbin/ipaddrflushdev'eth1'从接口文件中删除任何先前的网络修改-e'/^#VAGRANT-BEGIN/,$d'/etc/network/interfaces>/tmp/vagrant-network-interfaces.presed-ne'/^#VAGRANT-END/,$p'/etc/network/interfaces|战术|sed-e'/^#VAGRANT-END/,$d'|tac>/tmp/vagrant-network-interfaces.postcat\/tmp/vagrant-network-interfaces.pre\/tmp/vagrant-network-entry\/tmp/vagrant-network-interfaces.post\/etc/network/interfacesrm-f/tmp/vagrant-network-interfaces.prerm-f/tmp/vagrant-network-entryrm-f/tmp/vagrant-network-interfaces.post/sbin/ifup'eth1'命令中的Stdout:命令中的Stderr:bash:line4:/sbin/ifdown:Nosuchfileordirectorybash:line20:/sbin/ifup:Nosuchfileordirectory这个提示是错误的。应该是官方包没有安装ifupdown解决问题。这里的ip设置为192.168.10.10ssh-p2222vagrant@ipor直接打开进入virtualbox虚拟机输入密码sudoapt-getinstall-yifupdownrestartvagrantreloadoutputinitializationworkreset/setrootpasswordsupasswdroot在这里输入新密码我是Vagrant123解决homestead6.1.0没有phpize的问题安装过程会提示操作,默认选择sudoapt-getinstall-yphp7.2-devsudoapt-getinstall即可-yphp7.1-devsudoapt-getinstall-yphp7.0-devsudoapt-getinstall-yphp5.6-如果dev需要更改linux下的默认版本ubunutupdate-alternavtives--configphp,选择之前的顺序你需要的版本基本上就是phpize->configure->make&&makeinstallredismongoddbrdkafka(installlibrdkafka-https://github.com/edenhill/l...安装前)zookeeper(安装zookeeper的C库支持)安装前线)并推荐后续安装lationswoole的扩展https://wiki.swoole.com/wiki/...查看公共服务clipboard.pngclipboard.pngpackagevagrantboxvagrantpackage--outputsxx_v1output输出项目下生成sxx_v1共享,共享框为通过安装vagrant添加到安装virtualboxcopy:vagrantaddboxqklin/sxx_v1box_file-box-version=6.1.0或添加上面的metadata.json设置,复制一个Vagrantfile,调整到你想要的共享目录。添加nginx虚拟主机配置vagrantup。如果nginx有问题,可以ssh到虚拟机,然后重启nginx,因为共享目录可能晚于nginx,所以nginx启动没有问题,重启nginx即可(/usr/sbin/nginx-sreload)分享本教程的vagrantbox和部分配置sxx_v1盒子链接:https://pan.baidu.com/s/1vkU5...密码:6666sxx_v1配置(nginx、vagrantfile等)链接:https://pan.baidu.com/s/1z7Mf...密码:8888homestead官方7.14.2配置(仅供参考,可以快速添加其他服务,参考scripts中的脚本)链接:https://pan.baidu.com/s/1qZ29...密码:9999总结vagrant的本质还是虚拟机,只是用来通过vagrant快速部署和管理虚拟机。本教程只是演示一种配置配置一台虚拟机。Vagrant通过vagrantfile快速部署分布式虚拟机。这不是本教程的目的。更详细的可以看官方或百度搜索相关教程自行学习