CodeArt-编码艺术

VirtualBox+vagrant+Homestead 安装laravel环境

字数统计: 1,637阅读时长: 7 min
2018/02/04 Share

win上的配置,其他平台请移步
本地安装配置laravel的环境多种多样

常见的有win上集成环境安装使用,linux虚拟机安装使用

而linux虚拟机上安装根据环境又有多种方式:自行编译安装,vagrant,docker 等

编译安装不赘述,vagrant及docker的区别,引用知乎的一段话来说明

作者:cikenerd

本质区别Vagrant并不提供虚拟化技术,本质上是一个虚拟机外挂,通过虚拟机的管理接口来管理虚拟机,让用户更轻松的进行一些常用配置,比如:CPU/Memory/IP/DISK等分配。并且提供了一些其它的管理操作:比如开机运行指定命令,镜像二次打包,插件编写等等。vagrant官方有介绍

To achieve its magic, Vagrant stands on the shoulders of giants. Machines are provisioned on top of VirtualBox, VMware, AWS, or any other provider. Then, industry-standard provisioning tools such as shell scripts, Chef, or Puppet, can be used to automatically install and configure software on the machine.

而docker是一个容器引擎,每一个实例是一个相对隔离的空间,与宿主机共享操作系统内核,并且共享宿主机资源。相对于披着虚拟机皮的vagrant,docker更加轻量,消耗更少的资源。贴一张docker官方介绍图

img


过程综述

1.安装VirtualBox

2.安装vagrant

3.下载Homestead box

4.下载Homestead并配置

5.启动vagrant

6.ssh连接并安装laravel

ps:建议在git Bash下进行操作,cmd可能会出问题(如无git建议下载安装,全程依然傻瓜式下一步)

下载地址:http://gitforwindows.org/


一、安装VirtualBox

https://www.virtualbox.org/ 下载安装,傻瓜式

二、安装Vagrant

https://www.vagrantup.com/ 依然傻瓜式下载安装

三、下载Homestead box

可在线,可离线下载进行,因天朝网络环境可能失败,上梯子无效,不过个人还是在线下载下来了

$ vagrant box add laravel/homestead
打开git bash 输入以上,弹出选项,选择virtualbox,即可自动开始下载

img

如果下载进行不下去,可复制其中的链接用IDM,迅雷等工具进行下载

https://atlas.hashicorp.com/laravel/boxes/homestead/versions/5.0.1/providers/virtualbox.box


挖坑,如果是离线下载的box,需要做些其他的事情,因我这边未碰到,所以暂时留坑


此时,C盘用户文件夹中,应该多了此文件夹 .vagrant.d,下载的box即在其中

img

img

下载Homestead并配置

在Git bash 里输入

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

这里下载好后继续

# 先cd到刚才下载的Homestead文件夹

$ cd ~/Homestead

# 开始初始化Homestead

$ bash init.sh
img

此时,在用户目录下 Homestead文件夹中,可以看到多了一个Homestead.yaml文件

img

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

ip: “192.168.10.10”
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
- ~/.ssh/id_rsa

folders:
- map: ~/Code
to: /home/vagrant/Code

sites:
- map: homestead.test
to: /home/vagrant/Code/laravel/public

databases:
- homestead

# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar

# ports:
# - send: 50000
# to: 5000
# - send: 7777
# to: 777
# protocol: udp

他默认应该是介个样子,其中有几条配置需要了解,处理一下(这个配置很重要,下面所做的几个操作都是围绕他进行)

首先我们需要建立SSH Key,在Git bash中输入

$ ssh-keygen -t rsa
img

期间一路回车就好,用户名密码都暂为空

完事后,我们会在用户目录看到一个.ssh目录

img

里面的两个文件即对应配置中的这几行

1
2
3
4
authorize: ~/.ssh/id_rsa.pub

keys:
~/.ssh/id_rsa

接下来,看配置文件这里

1
2
3
4
5
6
7
folders:
- map: ~/Code
to: /home/vagrant/Code

sites:
- map: homestead.test
to: /home/vagrant/Code/laravel/public

其中folders中,将map后面的文件夹(即~/Code)映射到Homestead中的/home/vagrant/Code。这就像我们常见到的和虚拟机中系统共享文件夹类似,我们把本机的~/Code文件夹分享给Homestead,所以我们可以很方便地使用自己喜欢的IDE(比如PhpStorm)进行开发,在~/Code中所进行的修改会如实反应在Homestead对应的文件夹中。

在sites中,我们定义了homestead.test指向/home/vagrant/Code/laravel/public这个文件夹,即Laravel项目的public文件夹。这样在浏览器中输入homestead.app,我们就可以直接看到项目主页了。

注意:以上的文件夹及映射是可以根据用户喜好更改的,比如这里我将开发文件夹叫做WebDev,里面我新建了一个叫teahouse的项目,那么以上的配置,我就可以做出相应修改:

1
2
3
4
5
6
7
folders:
- map: ~/code
to: /home/vagrant/Webdev

sites:
- map: teahouse.app
to: /home/vagrant/Webdev/teahouse/public

之后,为了teahouse.app这个域名能正常的访问,我们需要在hosts中增加一行

192.168.10.10 homestead.app teahouse.app

ps:hosts位于C:\Windows\System32\drivers\etc
再接下来我们看配置文件中

1
2
3
> > databases:
> > - homestead
> >

在这里我们没添加一个数据库名字,Homestead就会创建一个数据库

这里我添加了一个新的数据库

1
2
3
databases:
- homestead
- teahouse

注意不要使用Tab来缩进,可能会报错,这里使用空格

接下来,我们就可以来启动Vagrant了,惊不惊喜!

Git bash中输入

cd ~/Homestead

vagrant up
img

过会儿,我们就能看到Vagrant已经顺利运行了,接下来我们可以通过本地的ssh工具,mysql工具来连接环境

默认的SSH:

Host:127.0.0.1

端口:2222

用户:vagrant

密码:vagrant
默认MySqlhomestead/secret

SSH连接上后,接下来按照之前配置中的路径来新建服务器上的目录

例如我的配置是如此这般:

1
2
3
sites:
- map: teahouse.app
to: /home/vagrant/Webdev/teahouse/public

img

我于是在服务器端新建如下目录(teahouse/public 这里已经是laravel里面了)

进入/home/vagrant/Webdev目录,接下来通过composer安装laravel

出于GFW原因,我们不得不用中国镜像来安装。vagrant虚拟机中运行如下命令

composer config -g repo.packagist composer https://packagist.phpcomposer.com
接着我们通过composer来安装一个5.5版本
composer create-project laravel/laravel=5.5 –prefer-dist
下载完成后,Webdev下出现laravel目录,接着将目录名改为配置中自己的名字,这里我配置的是teahouse
mv laravel/ teahouse/
接下来本地通过配置的域名进行访问,出现laravel界面,ok,大功告成

img

CATALOG
  1. 1. 过程综述
  • 一、安装VirtualBox
  • 二、安装Vagrant
  • 三、下载Homestead box
  • 下载Homestead并配置