手把手教你Homestead安装,并填坑!!

article/2025/9/15 14:28:29

来源:http://www.jianshu.com/p/ae9d1261bbd8

话说作为laravel的开发者,你听说Homestead应该很久了,可是官方推荐的开发环境在国内为什么鲜有人用?我这几天试着安装了一下,发现官方的安装教程实在存在着太多的大坑,尤其让刚刚入道的开发者望而却步,在本文我试着手把手教大家填上这个坑,我在腾讯课堂上传了视频教程,欢迎报名学习。如果你觉得视频过于罗嗦,直接参看本教程即可。


第一步 安装必须的软件

1.安装vagrant,点此进入下载页,vagrant属于跨平台应用,我的系统是win10。关于vagrant教程,可以自己看一下,百度一下遍地是。不看也没关系,本文大概只用到其中的几个命令。

2.安装Virtualbox,当然你安装Vmware或parallels(OX系统)也可以,但后面下载的box要注意对应,虚拟机对应的版本不同。

第二步 导入box

vagrant box add laravel/homestead

第一个坑:原本只要如上的命令即可,但由于国内众所周知的网络原因,我们不得不考虑先下载好你需要的box再来添加。

首先在hashicorp中找到合适的版本,再在链接后加上”版本号/providers/虚拟机类型.box”即可获得下载链接.

如我们要下载最新的版本号为1.0.1的virtualbox版的box文件,链接即为:https://atlas.hashicorp.com/laravel/boxes/homestead/versions/1.0.1/providers/virtualbox.box

为此我还是提供了国内的链接(将会定期更新),方便大家。

链接:http://pan.baidu.com/s/1dEJdHj7 密码:kzlc

不建议采用迅雷离线下载,据说会导致下载的文件损坏!

接下来我新建了一个文件夹名为homestead,然后我将下好的box重命名为homestead.box放入,然后在此文件夹内运行如下命令(这里是按照一些普通的教程来添加,这时候挖了一个坑,后面填上)。

vagrant box add laravel/homestead homestead.box

接着运行

vagrant box list



vagrant box list

发现这个box已经添加进来就ok了。

第三步 下载官方homestead配置

可以进入laravel5.3的官方文档

按照文档的说明首先运行(必须本地已经安装了git)

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

接着在已经克隆下来的文件夹内,会发现bash init.sh,init.bat两个文件,这两个分别是将该目录内的Homestead.yaml文件拷贝到你的系统“家”目录下。如果是在win下,又安装了git bash,则运行bash init.sh,init.bat均可。如果是在linux下,则运行bash init.sh。

接着我们就在家目录.homestead文件夹下找到了我们的这个配置文件


第四步 配置Homestead.yaml

设置 IP及Provider

Homestead.yaml文件中的provider键表示使用哪个 Vagrant 提供者:virtualbox、vmware_fushion或者vmware_workstation,你可以将其设置为自己喜欢的提供者:

ip: "192.168.10.10"

provider: virtualbox

配置共享文件夹

Homestead.yaml文件中的folders属性列出了所有主机和 Homestead 虚拟机共享的文件夹,一旦这些目录中的文件有了修改,将会在本地和 Homestead 虚拟机之间保持同步,如果有需要的话,你可以配置多个共享文件夹(一般一个就够了):

folders:

- map: D:/homestead/code  #(这是我本地的文件夹)

to: /home/vagrant/Code

配置 Nginx 站点

对 Nginx 不熟?没问题,通过sites属性你可以方便地将“域名”映射到 Homestead 虚拟机的指定目录,Homestead.yaml中默认已经配置了一个示例站点。和共享文件夹一样,你可以配置多个站点:

sites:

- map: liang.app

to: /home/vagrant/Code/Laravel/public

Hosts文件

不要忘记把 Nginx 站点配置中的域名添加到本地机器上的hosts文件中,该文件会将对本地域名的请求重定向到 Homestead 虚拟机,在 Mac 或 Linux上,该文件位于/etc/hosts,在 Windows 上,位于C:\Windows\System32\drivers\etc\hosts,添加方式如下:

192.168.10.10 liang.app

确保 IP 地址和你的Homestead.yaml文件中列出的一致,一旦你将域名放置到hosts文件,就可以在浏览器中通过该域名访问站点了:

http://liang.app

第五步 启动vagrant

在 Homestead 目录下运行vagrant up命令,Vagrant 将会启动虚拟机并自动配置共享文件夹以及 Nginx 站点。官方文档对此描述的如此这般简单,其实这里遇到了第二个大坑

我们输入vagrant up看会发生什么?一堆的错误提示!!!!


我们根据提示,貌似是ssh的key没有生成,于是我们要运行如下命令,这个命令可以在git bash下生成,也可以在cmder等命令行工具完成,但在win下的cmd却无法执行。win 下可考虑powershell。

ssh-keygen

好了,我们欢喜的以为,我们可以顺利运行了。vagrant up。我擦居然提示这个box没有,需要安装。出现了第三个坑



再次出现该box不存在

导致该坑的原因,我们看之前的vagrant box list,里面显示laravel/homestead (virtualbox, 0),而homestead要求Box Version: >= 1.0.0,这就不奇怪了。但我们明明下的是这个1.0.1版本啊。


vagrant box list

我们有两种方式修复这个大坑

方式一

修改homestead/scripts/homestead.rb的这个文件,将其中的>= 1.0.0改为< 1.0.0即可满足要求。但我并不推荐这种方式,因为实质对满足要求进行了篡改。


homestead.rb

方式二

我们在homestead下新建一个名为homestead.json的一个json配置文件

{

"name": "laravel/homestead",

"versions": [{

"version": "1.0.1",

"providers": [{

"name": "virtualbox",

"url": "file://homestead.box"

}]

}]

}

看懂了吗?接着我们运行这个命令

vagrant box add homestead.json



已经添box成功

真的不容易啊,添加成功了

我们接着运行vagrant up试试


成功运行

经过这样一番折腾终于成功运行了。

第六步 登录vagrant并安装laravel

这一步应该是我们的最后一步了,我们期待目标通过本地能够访问到你用vagrant搭建起来的laravel。我们通过vagrant ssh命令即可顺利登录我们的系统了。

由于设置上我们的vagrant虚拟机Code目录和我们的本地主机D:/homestead/Code是同一个目录,因此,我们先移步到该目录。

第四个坑出现了,我们一般是通过composer来进行安装,但出于GFW原因,我们不得不用中国镜像来安装。vagrant虚拟机中运行如下命令

composer config -g repo.packagist composer https://packagist.phpcomposer.com

接着我们通过composer来安装一个5.2版本

composer create-project laravel/laravel=5.2.* --prefer-dist

OK,访问liang.app,出现了Laravel 5的欢迎界面,大功告成。

补坑:对于部分用户,可能出现autoload或boostrap不存在,说明依赖安装不完整,可以在laravel目录下运行如下命令来解决。

composer update--no-scripts

版权声明:本文版权归作者所有,如要转载,请给钱,欢迎私信、评论

欢迎打赏、打赏、打赏



http://chatgpt.dhexx.cn/article/6IA8M30F.shtml

相关文章

Laravel Homestead的安装和使用

Homestead Homestead是什么安装1.打开Git Bash 进入E:\HashiCorp\Vagrant2.1 添加Homestead Vagrant Box 到 Vagrant &#xff08;无本地box文件&#xff09;2.2 homestead Vagrant Box 到 Vagrant &#xff08;有本地box文件,本地文件位置在D:/vagrant/homestead-virtualbox-0…

Homestead搭建 - Windows

系统要求 Windows 7 及以上。 步骤简略 接下来让我们按照这几个步骤来完成整个 Laravel 开发环境的安装及配置&#xff1a; 安装 VirtualBox安装 Vagrant导入 Homestead Box 虚拟机盒子安装 Git安装 Homestead 管理脚本配置 Homestead.yaml 文件启动 Homestead 虚拟机 安装 …

m1搭建homestead环境,m1安装homestead环境

本文目录 一、环境要求1、mac M12、macOS Big Sur 11.3.1以上3、Parallels Desktop 16 for Mac4、Vagrant 二、安装homestead以及虚拟机1、安装homestead2、安装arm架构vagrant box 三、效果测试四、踩坑记录五、vagrant常见命令六、虚拟机安装laravel&#xff0c;本地测试 一、…

Homestead安装

安装软件 安装vargrant;安装Virtualbox安装git导入box 下载homestead.box,点击下载。 新建了一个文件夹名为homestead,然后将下好的box重命名为homestead.box放入,然后在此文件夹内运行如下命令(这里是按照一些普通的教程来添加,这时候挖了一个坑,后面填上)。 vagran…

vagrant Homestead 环境搭建

一. 搭建步骤 1、vagrant plugin install vagrant-vbguest 安装vagrant 先下载vagrant再执行指令 2、git config --global http.schannelCheckRevoke false 执行vagrant box add laravel/homestead 报错 解决&#xff1a; 手动下载 https://vagrantcloud.com/laravel/boxes/…

开发环境搭建homestead - windows

系统要求 Windows7 及以上。 步骤简略 安装 VirtualBox安装 vagrant导入 Homestead Box 虚拟机盒子安装 Git安装 Homestead 管理脚本配置 Homestead.yaml 文件启动 Homestead 虚拟机开启 NFS 挂载模式 安装 VirtualBox VirtualBox 是 Oracle 公司的开源虚拟机软件。Virtua…

Homestead 发布

以太坊开发开始于2013年12月份&#xff0c;当时两个开发者和一个大学辍学生&#xff08;译者注&#xff1a;即Vitalik&#xff09;决定集思广益&#xff0c;一起开发这一项目。后来与我们群志趣相投的人也加入了。我们的第一个概念验证&#xff08;Proof of Cocept 1&#xff0…

TCP的三次握手和四次挥手(超详解)

TCP的三次握手和四次挥手 TCP的连接建立 TCP的连接建立的过程叫做握手&#xff0c;握手需要在客户和服务器之间交换三个TCP报文段。下图画出了三报文握手建立TCP连接的过程。 假定最初主机A运行的是TCP客户端程序&#xff0c;而B运行的是TCP服务端程序。最初两端的TCP进程都处…

简述TCP三次握手和四次挥手过程

TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.第一次握手&#xff1a;建立连接时,客户端发送syn包(synj)到服务器,并进入SYN_SEND状态,等待服务器确认&#xff1b; SYN&#xff1a;同步序列编号(Synchronize Sequence Numbers)第二次握手&a…

TCP三次握手和四次挥手解析

三次握手&#xff08;建立连接&#xff09; &#xff08;1&#xff09;序号&#xff1a;seq序号&#xff0c;占32位&#xff0c;用来标识从TCP客户端向目的端发送的字节流&#xff0c;发起方发送数据时对此进行标记。 &#xff08;2&#xff09;确认序号&#xff1a;ack序号&a…

简述TCP的三次握手和四次挥手

TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是面向连接的协议&#xff0c;也就是说&#xff0c;在收发数据前&#xff0c;必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来&#xff0c;其中的过程非常复杂&am…

简单理解TCP的三次握手和四次挥手

本文用简洁的语言教你理解TCP的三次握手和四次挥手&#xff0c;匆忙写的&#xff0c;审美可能有待提升。 本文适合入门&#xff0c;基础不高的同学观看&#xff0c;以便有一个大概的了解。深入的同学还请高抬贵手。 还有请记住&#xff0c;是传输层中TCP的东西&#xff0c;不…

tcp三次握手和四次挥手的过程

TCP是面向连接的&#xff0c;无论哪一方向另一方发送数据之前&#xff0c;都必须先在双方之间建立一条连接。在TCP/IP协议中&#xff0c;TCP 协议提供可靠的连接服务&#xff0c;连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号 并交换 TCP窗口…

TCP的三次握手和四次挥手

一、TCP介绍 TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议&#xff0c;在发送数据前&#xff0c;通信双方必须在彼此间建立一条连接。所谓的“连接”&#xff0c;其实是客户端和服务端保存的一份关于对方的信息&#xff0c;如ip地址、端口号等。TCP可以看成是一种…

TCP三次握手和四次挥手的全过程

三次握手和四次挥手是各个公司常见的考点&#xff0c;也具有一定的水平区分度,希望大家能带着如下问题进行阅读&#xff0c;收获会更大: 请画出三次握手和四次挥手的示意图为什么连接的时候是三次握手&#xff1f;什么是半连接队列&#xff1f;ISN(Initial Sequence Number)是…

TCP的三次握手和四次挥手总结

TCP的三次握手和四次挥手总结 本文经过借鉴书籍资料、他人博客总结出的知识点&#xff0c;欢迎提问 序列号 seq&#xff1a;占 4 个字节&#xff0c;用来标记数据段的顺序&#xff0c;TCP 把连接中发送的所有数据字节都编上一个序号&#xff0c;第一个字节的编号由本地随机产生…

三次握手和四次挥手知识总结(超详细)

前言&#xff1a; 最近学习了计算机网络的知识&#xff0c;看了很多的视频&#xff0c;并参考了很多资料&#xff0c;写下了这将近4500字的与“三次握手和四次挥手”相关的知识&#xff0c;希望能帮助到各位小伙伴儿以及加深自己印象&#xff0c;方便以后复习用 如果有什么写的…

简述TCP的三次握手和四次挥手过程

①TCP是一种精致的,可靠的字节流协议。 ②在TCP编程中,三路握手一般由客户端(Client)调用Connent函数发起。 ③TCP3次握手后数据收发通道即打开(即建立了连接)。 ④简述三路握手过程: 图 .TCP三次握手 (1)第一次握手:C…

通俗易懂理解TCP协议三次握手和四次挥手及其常见问题

TCP协议三次握手和四次挥手 三次握手如果建立连接只需要2次握手&#xff0c;可能会出现的情况 四次挥手为什么建立连接是三次握手&#xff0c;关闭连接确是四次挥手呢&#xff1f;TIME_WAIT状态有什么作用&#xff0c;为什么主动关闭方没有直接进入CLOSED状态释放资源&#xff…

TCP的三次握手和四次挥手详解

TCP是主机对主机层的传输控制协议&#xff0c;提供可靠的连接服务&#xff0c;采用三次握手确认建立一个连接&#xff0c;与之相反的&#xff0c;采用四次挥手来断开连接&#xff1a; TCP标志位有6种标示&#xff0c;即&#xff1a;SYN(建立联机) 、 ACK(确认) 、 PSH(传送) 、…