Homestead

1. 前置应用

准备前置应用:Oracle VM VirtualBox VSCode vagrant Cmder git

Cmder编辑器配置(因为颜值比自带的CMD高,可以不用,“搭建Laravel环境的时候,建议使用git命令行”):

下载解压之后添加到用户环境变量中

以管理员身份打开 cmd,执行以下命令,完了以后在任意地方点击右键即可使用 cmder

> Cmder.exe /REGISTER ALL
2. 配置基础

box:https://app.vagrantup.com/laravel/boxes/homestead

管理脚本:https://github.com/laravel/homestead.git

下载好 box 盒子后,新建一个 metadata.json 文件(最好和下载的盒子文件放在同一个文件夹内),写入以下内容(//后面的内容不要加进去):

{
    "name": "laravel/homestead", //box名称
    "versions":
    [
        {
            "version": "12.0.0", //下载的box版本号
            "providers": [
                {
                  "name": "virtualbox", //使用的虚拟机
                  "url": "vagrant.box" //路径(同级目录直接写入文件名)
                }
            ]
        }
    ]
}

右键使用git.bash,输入以下命令:

vagrant box add metadata.json

下载一个homestead的管理脚本(~:代表C:\Users\你的用户名):

cd ~
git clone https://github.com/laravel/homestead.git ~/Homestead

进入Homestead文件夹,用git切换你需要的版本(release代表的最新稳定版,也可以直接下载指定版本,就不需要切换):

cd Homestead
git checkout release

初始化:

// macOS Linux
bash init.sh

// Windows
Homestead 文件夹中双击 init.bat

配置Homestead.yaml文件(启动之后,更改了这个文件之后,需要使用vagrant provision命令在本地重新加载):

code . ~/Homestead/Homestead.yaml

(1)配置hosts(linux系统在/etc/hosts):
code . C:/Windows/System32/drivers/etc/hosts

在末尾添加(IP和配置文件里的IP必须一样):

192.168.56.56 weibo.test
(2)生成SSH秘钥:
ssh-keygen -t rsa -C "邮箱"

进入Homestead文件夹,启动虚拟机并连接:

vagrant up
vagrant ssh
(3)虚拟机添加国内镜像源,并配置git:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
npm config set registry=https://registry.npm.taobao.org
yarn config set registry 'https://registry.npm.taobao.org'

git config --global user.name "用户名"
git config --global user.email 邮箱
git config --global push.default simple
(4)将SSH Key添加到ssh-agent(一个秘钥管理工具)中:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
(5)更新指令(可选):
composer selfupdate
sudo npm install npm -g
yarn upgrade
yarn set version latest
3. 快捷启动 Homestead

新建一个 homestead.bat 文件(win系统),写入以下代码(文件路径需要改成你 Homestead 管理脚本文件所在位置),保存,然后将文件添加到系统环境变量中

@echo off

set cwd=%cd%
set homesteadVagrant=C:\Homestead

cd /d %homesteadVagrant% && vagrant %*
cd /d %cwd%

set cwd=
set homesteadVagrant=
4. 注意
(1)代理问题

如果使用了代理,会出现绑定域名无法访问,网页会提示 HTTP ERROR 502(也可能出现什么提示都没有),在代理里面设置规则绕过绑定的域名就好了

(2)CPU 虚拟问题

如果因为虚拟机问题,造成卡在某个地方,从而导致启动失败,只需要(控制面板→程序与功能→Winodws 功能→不勾选【Hyper-V】和【虚拟机平台】)

(3)not found

报错

Box 'laravel/homestead' could not be found. Attempting to find and install

解决方案

① 打开 Homestead\scripts\homestead.rb 文件

② 找到:config.vm.box = settings [“box”] ||= “lc/homestead”

③ 改为:config.vm.box = settings [“box”] ||= “laravel/homestead”

如果没有新建一个metadata.json文件,写入版本号,而是直接添加本地盒子,会报一个版本问题的错误,也是进入这个文件夹更改成下面这样

config.vm.box_version = settings['version'] ||= '>= 0'
5. 可能用到的命令

查看系统里面所有的 vagrant 盒子列表

vagrant box list

删除虚拟机

vagrant destroy

移除旧盒子

vagrant box remove (盒子名称)

Homestead
https://everysunday.github.io/2021/01/24/Homestead/
作者
T-River
发布于
2021年1月24日
许可协议