Laravel开发环境搭建 ( VirtualBox + Vagrant ) for Mac
文章目录
相信很多朋友提到“如何搭建Laravel开发环境”这个问题的时候,头都大了,因为在搭建过程中总会莫名其妙的出现一些问题,导致学习成本太高,从而放弃了Laravel的学习旅途,但我认为并不是学习成本的问题,而在于自己是否有坚持去折腾。
我的搭建过程稍微复杂一些,你可能会说,不就是搭个Laravel环境吗?怎么搭不是搭,下载归档文件也一样可以呀。这个只有自己折腾过,才会有比较直观的感受。
我是在Mac上搭建的环境,其实在Windows上的搭建过程也差不多,不过你也可以关注一下 Laragon
Laragon是什么?
超快速,易用,高效,强大的开发环境。
Laragon在操作系统具有独立的环境,并提供构建现代Web应用程序所需的一切软件。
安装 VirtualBox
VirtualBox是一款免费的开源虚拟机,它简单易用,支持Windows、Linux和Mac系统主机,可虚拟的系统包括Windows (NT 4.0、2000、XP、Server 2003、Vista)、DOS/Windows 3.x、Linux (2.4和2.6)、OpenBSD等。下载地址 — 引自『百度百科』
安装过程很简单,下载完成之后,按照提示进行按照即可。
安装 Vagrant
Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。— 引自『百度百科』
这里我下载的是来自 『Laravel China』提供的文件,可以在这里找到。
然后按照提示进行默认安装即可
下载并导入 Homestead Box
Homestead 利用 Vagrantfile 提供的便利,定制了一整套的可配置、可移植和复用的 Laravel 开发环境。Homestead 虚拟机里面包含了 Nginx Web 服务器、PHP 7、MySQL、Postgres、Redis、Memcached、Node,以及所有你在使用 Laravel 开发时需要用到的各种软件。— 引自『Laravel China』
同样,Homestead 虚拟机盒子也是由『Laravel China』提供的下载地址下载的。
下载完成后进行解压操作,解压之后进入该目录运行一下命令即可 (前提是已经安装Vagrant)
1 | vagrant box add metadata.json |
注意:为避免不必要的麻烦,最好解压到英文路径
命令运行之后,就像下面这张图一样
现在已经完成了Homestead Vagrant 盒子的导入过程,之前下载的文件就可以删除了。
安装Homestead 管理脚本
我这里假设你已经安装了Git,分别运行下面的命令即可
1 | cd ~ |
clone之后,运行下面命令即可,切换到Homestead目录,并切换当前master分支到v7.8.0
1 | cd ~/Homestead |
就像下面这张图一样
然后我们只需要初始化 Homestead即可
1 | bash init.sh |
配置 Homestead.yaml 文件
打开 Homestead.yaml文件,路径地址:~/Homestead/Homestead.yaml
我这里直接使用Sublime快速打开
1 | subl ~/Homestead/Homestead.yaml |
然后需要生成 SSH Key,你可以检查一下自己的主机上是否有生成过 SSH Key
1 | ls -al ~/.ssh |
如果存在 id_rsa 和 id_rsa.pub的话,就不需要生成了。
否则用以下命令生成 SSH Key,一路回车即可
1 | ssh-keygen -t rsa -C "你的邮箱" |
然后配置一下共享文件夹,通过 folders 来指明本机要映射到 Homestead 虚拟机上的文件夹。
- map 对应的是我们本机的文件夹
- to 对应的是 Homestead 上的文件夹。
1 | folders: |
然后运行以下命令,新建Code文件夹
1 | cd ~ |
使用以下命令允许你在主机里,通过域名来访问虚拟机里的 Laravel 应用
1 | sites: |
然后绑定虚拟机站点,运行以下命令即可
1 | subl /etc/hosts |
然后在hosts文件最后面加入这行
1 | 192.168.10.10 homestead.test |
启动Homestead 虚拟机
前面已经完成了Homestead的配置,接下来就可以启动虚拟机了,运行以下命令即可
1 | cd ~/Homestead && vagrant up |
就像下面这张图一样
稍等一会就启动完成了,这时我们可以看一下VirtualBox控制台
启动成功后,进入~/Homestead目录中,通过SSH来登录虚拟机
1 | vagrant ssh |
以上仅记录了我自己的搭建过程,有些概念性的东西我没有提到,文中也有可能出现错误,更多的还是要靠自己去实操才能得出结论。