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 协议》,转载必须注明作者和本文链接
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 8
余胜军

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

1年前 评论

我也一直用homestead ,哈哈

1年前 评论

mamp pro不香吗 :flushed:

1年前 评论

larardock

1年前 评论

为啥不用docker呢

1年前 评论
GDDD

brew不香吗?

1年前 评论

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