搭建laravel/homestead虚拟化开发环境 - 解决下载源慢与yaml配置不生效问题

本文章解决如下问题

1.使用官方文档安装 laravel/homestead 实在太慢;

2.手动下载box解压安装后使用 vagrant up 又会重新下载box ;

3.Homestead.yaml配置不生效

 

 软件准备

1.Git

2.virtualbox6.X

3.vagrant

4.laravel/homestead 的box

  *可通过 vagrant box add laravel/homestead 时出现的下载链接,复制下载后更名为homestead.box

 以上如有迅雷会员,可以加速下载。

 

安装 Homestead

git克隆项目

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

如果是windows系统, ~/Homestead 改为绝对路径

可以checkout更新最新稳定版本的 release 分支

cd ~/Homestead
git checkout release

执行init脚本来创建Homestead.yaml配置文件

// Mac / Linux...
bash init.sh

// Windows...
init.bat

手动创建Homestead.json文件

{
"name": "laravel/homestead",
"versions": [{
"version": "9.5.1", //等于或大于下载的laravel/homestead box版本
"providers": [{
"name": "virtualbox",
"url": "file://homestead.box" //应为下载的laravel/homestead box绝对路径
}]
}]
}

创建id_rsa

mkdir .ssh //创建.ssh目录
ssh-keygen -t rsa -C "youremail@example.com" //创建rsa,提示保存路径和输入密码

会提示保存id_rsa的文件路径,保存到.ssh目录即可,必须为绝对路径。

修改Homestead.yaml

先将ip地址改为virtualbox仅主机网卡所在的域,一般为192.168.56.1

---
ip: "192.168.56.100"
memory: 2048
cpus: 2
provider: virtualbox
...

 如为windows系统,authorize,keys,folders,sites等配置中的 ~需要为绝对路径。

 folders为共享文件夹映射,建议直接在Homestead目录创建。

 sites为网站项目目录映射,建议同上。

至此Homestead下载配置完成。

 

安装 Homestead Vagrant Box

cd ~/Homestead
vagrant box add Homestead.json

  *可通过vagrant box list 查看安装的box情况。

  *若出错,可使用vagrant destroy --force  && vagrant box remove laravel/homestead 删除虚拟机解决问题后再重新安装。

启动box,必须要在Homestead目录执行,需要等待一小段时间

vagrant up

如果启动后修改了Homestead.yaml配置,可以执行provision更新虚拟机配置

vagrant reload --provision

启动后,可以使用 vagrant ssh 命令远程管理box。

SSH账户密码一般为vagrant/vagrant

数据库用户名和密码分别是 homestead / secret

宿主机浏览器访问box的ip即可访问,建议将sites域名添加到宿主机host。

 

全局访问Homestead

在 Mac / Linux 系统上可以在 Bash 配置文件( ~/.bash_profile )中添加 Bash 函数

function homestead() {
    ( cd ~/Homestead && vagrant $* )
}

 

在Windows系统的任意位置创建一个批处理文件 homestead.bat(建议还是 Homestead目录) ,内容如下:

@echo off

set cwd=%cd%
set homesteadVagrant=C:\Homestead //这里需要为你的Homestead目录实际路径

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

set cwd=
set homesteadVagrant=

创建后需将路径添加到系统变量PATH。

 

该脚本/函数实际为切换到~/Homestead目录和执行vagrant命令,完成后可直接使用homestead替代vagrant命令在系统任意位置管理homestead虚拟机box。

homestead up
homestead ssh

 

更多参考

https://learnku.com/docs/laravel/7.x/homestead/7450#installation-and-setup

https://segmentfault.com/q/1010000004449837

posted @ 2020-05-15 10:53  GaZeon  阅读(590)  评论(0编辑  收藏  举报