M1 安装Homestead

一、环境要求

1、mac M1
2、macOS Big Sur 11.3.1以上
3、Parallels Desktop 18 for Mac
4、Vagrant 2.3.0

下载完之后在终端运行命令vagrant -v,出现如下图,说明安装成功

M1 安装Homestead

二、安装homestead以及虚拟机

1、下载 Homestead 管理脚本
因国内网络限制,为方便下载和后续管理脚本的流畅使用,本书中将使用定制版本的 Homestead 脚本,定制版有以下优势:

  • 从国内 coding.net 网站下载,下载速度会比 官方 更快;
  • 对脚本进行修改,移除了每一次 provisioncomposer self-update 的卡顿。

接下来,使用 Git 下载定制版的 Homestead:

> cd ~
> git clone https://gitee.com/summerblue/homestead.git Homestead

注:我们把 Homestead 放在 ~/Homestead 路径下,为方便后面的讲解,请保持一致。

完成之后我们需要进入 Homestead 目录,使用 Git 检出我们需要的 Homestead 版本:

> cd ~/Homestead
> git checkout v13.2.1

注:为了保证后续讲解的流畅性,请注意版本的一致性,这里我们使用 v13.2.1

接下来我们需要初始化 Homestead:

> bash init.sh

运行以上命令后,会在 ~/Homestead 目录下生成以下三个文件:

  • Homestead.yaml - 主要配置信息文件,我们可以在此文件中配置 Homestead 的站点和数据库等信息;
  • after.sh - 每一次 Homestead 盒子重置后(provision)会调用的 shell 脚本文件;
  • aliases - 每一次 Homestead 盒子重置后(provision),会被替换至虚拟机的 ~/.bash_aliases 文件中,aliases 里可以放一些快捷命令的定义。

接下来我们来生成 SSH Key,开始之前,我们先使用以下命令来检查主机上是否已经生成过 SSH Key:

> ls -al ~/.ssh

如果存在 id_rsaid_rsa.pub 的话,请跳过以下生成 SSH 的步骤继续阅读剩下内容。

否则使用以下方法来生成 SSH Key,请将 <your_email@example.com> 替换为你的邮箱:

> ssh-keygen -t rsa -C "your_email@example.com"
Generating public/private rsa key pair.

命令行会提示让你指定秘钥的名称,按回车键将 SSH Key 保存到默认文件名即可:

Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

接下来会询问你为 SSH Key 设置密码,按回车键即可,默认为空密码:

Enter passphrase (empty for no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]

可以都选择默认,也就是直接敲击几个 Enter 键即可。这时候我们再检查一下:

> ls -al ~/.ssh

可以看到以下两个文件:

  • id_rsa —— SSH 秘钥的 私钥 (Private Key)
  • id_rsa.pub —— SSH 秘钥的 公钥 (Public Key)

修改Homestead.yaml 文件

M1 安装Homestead

2、安装arm架构vagrant box

tips:以下命令也在Homestead文件夹下运行。
  1. 安装vagrant-parallels,命令:sudo vagrant plugin install vagrant-parallels
    如图安装成功:
    M1 安装Homestead

下载arm架构的vagrant box网址如下:
app.vagrantup.com/yodoware/boxes/h...
拉到底:

M1 安装Homestead

下载下来后记得重命名为parallels.box

在Homestead文件下新建metadata.json写入如下代码:

{
  "name": "laravel/homestead",
  "versions": [{
  // 这个是我的homestead版本, 如果不是这个请自行更改
    "version": "11.3.0",
    "providers":[
      {
        "name": "parallels",
        // .box 文件存放的绝对路径
        "url": "/Users/gaoyiping/Documents/parallels.box"
      }
    ]
  }]
}

url一定修改成你刚刚下载并重命名parallels.box的路径位置。如果你也是当中Downloads中就不用修改。当然justin肯定得改成你自己的。

执行命令:sudo vagrant box add metadata.json
创建arm架构vargant box。

运行sudo vagrant up如下成功运行虚拟机:
M1 安装Homestead

执行sudo vagrant ssh进入,如下成功:

M1 安装Homestead

至此m1搭建Homestead开发环境完成。

三、效果测试三、效果测试

四、踩坑记录

homestead-7: Box ‘lc/homestead’ could not be found. Attempting to find and install…

  1. 打开 Homestead\scripts\homestead.rb 文件
  2. 找到:config.vm.box = settings [“box”] ||= “lc/homestead”
  3. 改为:config.vm.box = settings [“box”] ||= “laravel/homestead”

修改 Homestead\scripts\homestead.rb 文件
config.vm.box_version = settings['version'] ||= '>= 12.0.0, < 13.0.0' 修改为
config.vm.box_version = settings['version'] ||= '>= 11.0.0, < 12.0.0'

config.vm.box = settings['box'] ||= 'lc/homestead' 修改为 config.vm.box = settings['box'] ||= 'laravel/homestead

如果在创建虚拟机的时候,即 vagrant up 中出现

default: Warning: Authentication failure. Retrying...

homestead.rb 中加入如下配置:

config.ssh.username = 'vagrant'
config.ssh.password = 'vagrant'

M1 安装Homestead

重启创建虚拟机(vagrant up)即可。

M1 安装Homestead

五、vagrant常见命令

vagrant常见命令
vagrant box list: 查看所有虚拟机。
vagrant global-status:查看虚拟机状态。
vagrant box remove 虚拟机名称:移除虚拟机。
vagrant destroy 虚拟机id:销毁虚拟机。
vagrant box add 虚拟机:创建虚拟机。
vagrant up:启动虚拟机。
vagrant reload --provision :修改了配置,重启下虚拟机。

六、虚拟机安装laravel,本地测试六、虚拟机安装laravel,本地测试

M1 安装Homestead

然后再在\etc\host下写入域名映射:在 macOS 和 Linux 上,此文件位于 /etc/hosts。 在 Windows 上,它位于

192.168.56.56 homestead.test

然后用浏览打开http://homestead.test/,可以看到laravel已经跑起来了,美美的图如下:
M1 安装Homestead

Navicate 连接数据库

M1 安装Homestead

Paraller Desktop 控制中心显示
M1 安装Homestead

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 8
余胜军

用 docker 他不香吗? 整完整的 Homestead 改个配置重启慢不说日常又吃内存. 毕竟自动化部署都是基于 docker 镜像去玩了. 开发与生产保持一致才是明智选择

1年前 评论

我也一直用homestead ,哈哈

1年前 评论

mamp pro不香吗 :flushed:

1年前 评论

larardock

1年前 评论

为啥不用docker呢

1年前 评论
GDDD

brew不香吗?

1年前 评论

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