Homestead
统一开发环境
在日常的团队开发中,由于开发环境的不一致,往往会导致出现各种各样的问题。即便是经验丰富的工程师,在遇到这种问题时也会特别头疼。为了解决这种问题,Vagrant 顺势而生!Vagrant 是一个用于创建和部署虚拟化开发环境的工具,其依赖于 VirtualBox 虚拟机,致力于帮助开发者快速构建一个环境统一的虚拟系统。Vagrant 最强大的地方是在于它在构建虚拟系统时的快捷简便,使开发者可以在短短几分钟内完成一个虚拟系统的删除与构建。
Laravel 希望在 Vagrant 的基础上让开发环境更加统一,让开发者都能在指定的具体开发环境下使用 Laravel,这时便有了 Homestead。Homestead 是一个基于 Ubuntu 构建的虚拟机,它包含了所有 Laravel 开发时需要用到的东西,你可以很轻松的通过指定的 Laravel 版本来找到相对应版本的 Homestead 并进行安装。Homestead 提供的默认开发环境还会装上很多常用的开发工具来辅助 Laravel 进行项目开发,包括 PHP7, Nginx, Redis, Memcached, MySQL, Git, Node.js, NPM 等等。或许你对这里提到的一些专有词汇所涉及到的知识并不太了解,但是别担心,这些我们在后面章节都会作相关介绍。
可以不使用 Homestead 吗? 不可以
Homestead 是 Laravel 官方推荐的开发环境。在本书里,我们会强制读者使用 Homestead
原因主要有以下:
- Homestead 是本书很重要的技能点之一,学完此书,你必须学会 Homestead;
- Homestead 统一了环境,避免歧义,减少新手在学习中遇到不必要的卡顿;
- 统一环境带来的好处还有:当你遇到问题的时候,其他同学能很容易的帮助到你;
- 最大程度接近线上生产环境,为后续的课程做铺垫;
- 这是最佳实践,是需要从一开始培养起来的好习惯。
在现实的 Laravel 项目开发中,比较正经的团队都会把 Homestead 当做绝对的开发环境要求。你在此处学完 Homestead,是一劳永逸的事情。
因为 Homestead 有以上优点,我们会竭力为 Homestead 的学习扫清障碍。本书作者甚至为读者定制了专属的 Homestead 环境,定制版的 Homestead 环境预装了必须的软件,软件的配置也依照国内网络环境做了优化,如配置了 NPM 和 Composer 国内镜像加速等。
接下来我们会分别为你讲解 Windows 和 Mac 下的开发环境部署,请你根据系统类型选择阅读,使用 Ubuntu 的同学请参考 Mac 版的进行部署。
需要郑重提醒的是:你必须使用『定制版的 Homestead』,你如果在 非定制版 Homestead 环境下、或者其他开发环境下遇到问题,我们将不会为你解答。原因是变量太多了,我们无法擅长所有系统以及各种版本软件搭配会出现的问题。最重要的,人生苦短,熟知这些 Bug,并没有意义。