添加多个 Homestead box

介绍一下如何添加多个 homestead box。

安装 Homestead

可以 clone 一个代码仓库

git clone https://github.com/laravel/homestead.git NewHomestead

也可以复制一份 Homestead, 重命名为 NewHomestead,进入文件夹,删除 .vagrant 文件夹。

修改配置

  1. 修改文件 NewHomestead\scripts\homestead.rb 把 'homestead-7' 修改为 'homestead-new',原则上应该不用全部改,只要改掉生成的虚拟机名称就行,这里不深究。
  2. 修改文件 NewHomestead\scripts\homestead.rb 把 config.vm.box_version = settings["version"] ||= ">= 1.0.0" 修改为 config.vm.box_version = settings["version"] ||= ">= 0"
  3. 修改 NewHomestead\Vagrantfile,第8行 confDir = $confDir ||= File.expand_path("~/.homestead") 修改为 confDir = $confDir ||= File.expand_path("~/.newhomestead")
  4. 修改 NewHomestead\init.bat, 第3行 set homesteadRoot=%HOMEDRIVE%%HOMEPATH%\.homestead 修改为set homesteadRoot=%HOMEDRIVE%%HOMEPATH%\.newhomestead,修改完成后记得配置文件就在新的文件夹里面了。

添加box

cd NewHomestead
init.bat

配置 Homestead.yaml

打开 用户名\.newhomestead\Homestead.yaml,配置 homestead。

  1. 修改 ip : ip: "192.168.10.100"

启动vagrant

进入 NewHomestead,启动虚拟机

vagrant up

在启动的过程中会显示转发端口被占用,会重新设定转发端口:

==> homestead-new: Setting the name of the VM: homestead-new
==> homestead-new: Fixed port collision for 80 => 8000. Now on port 2200.
==> homestead-new: Fixed port collision for 443 => 44300. Now on port 2201.
==> homestead-new: Fixed port collision for 3306 => 33060. Now on port 2202.
==> homestead-new: Fixed port collision for 5432 => 54320. Now on port 2203.
==> homestead-new: Fixed port collision for 22 => 2222. Now on port 2204.

这些转发端口是可以通过修改 homestead.rb 或者 Homestead.yaml 来自定义的,这部分就自己研究一下吧。

记住这些转发端口,比如之前 ssh 登录用的端口是 2222,现在要用 端口 2204登录,其他的比如 mysql 端口也是一个道理。

最后看看效果

file

file

ps:之前有个哥们一直说搞不定,所以写了这个,写完又看到说搞定了,反正写都写了,就发出来吧。

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 6年前 自动加精
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3

很棒,原来也打算装多个box,后面想想其实初衷就是为了兼容多个版本PHP,也就不折腾环境了,那么问题来了。楼主帮忙写个多个php共存的步骤吧 :smile::smile:

7年前 评论

不错 。 很好啊 。 我现在已经不想搞本地的环境了 。 把本机环境搞得乱七八糟的 ,突然想直接homestead 多个来处理不同的项目比较快

6年前 评论

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Setting the name of the VM: homestead7
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 80 (guest) => 8001 (host) (adapter 1)
default: 443 (guest) => 44301 (host) (adapter 1)
default: 3306 (guest) => 33061 (host) (adapter 1)
default: 5432 (guest) => 54321 (host) (adapter 1)
default: 22 (guest) => 2200 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2200
default: SSH username: vagrant
default: SSH auth method: private key
default: Warning: Connection reset. Retrying...
default: Warning: Connection aborted. Retrying...
default: Warning: Authentication failure. Retrying...
default: Warning: Authentication failure. Retrying...

我按照你的文档复制的之前的一份homestead 但是一直验证失败 请问可能是因为什么呢

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!