文档地址

laravel6
Homestead

什么是 homestead

Laravel 致力于让整个 PHP 开发体验变的更愉快,包括你的本地开发环境。Vagrant 提供了一种简单、优雅的方式来管理和配置虚拟主机。
Laravel Homestead 是一个官方预封装的 Vagrant box ,它为你提供了一个完美的开发环境,你不需要在本地机器安装 PHP、web 服务器和其他的服务器软件。你再也不用担心会弄乱你的操作系统了!Vagrant boxes 是一次性的。 如果出现问题, 你可以在几分钟内销毁并重新创建 box !
Homestead 可以运行在任何 Windows、Mac、或 Linux 系统, 它包括了 Nginx web 服务器,PHP 7.3、PHP 7.2、PHP 7.1、MySQL、PostgreSQL、Redis、Memcached、Node 以及你开发 Laravel 所需要的东西

以上是文档的介绍,简而言之就是让开发更方便的虚拟主机,里面跑了个 web 程序

这个虚拟机经常会炸,缓存占满了硬盘之类的事情,启动的时候就报错了…
这个时候最快的方法不是去修理他,而是卸了重装搞个新的
一次性

其他相关的东西:

Oracle VM VirtualBox
提供虚拟的的软件

Vagrant
一个和虚拟机进行交互的命令行

Homestead
通过 Homestead 可以写入一些虚拟机内部的配置,比如共享文件夹,虚拟机里 php 的版本,开放的端口之类的。
Homestead 会通过 Vagrant 帮我们完成虚拟机的配置

虚拟机炸了的时候,果断把 VirtualBox 和 Vagrant 卸载掉,重新安装

使用

安装 VirtualBox 和 Vagrant

安装好 VirtualBox 和 Vagrant 之后,输入这个命令,把laravel/homestead box添加到 vagrant 中安装, 命令失败的话检查 Vagrant 版本

1
vagrant box add laravel/homestead

安装 Homestead

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

cd ~/Homestead

windows 启动 init.bat 初始化 Homestead,之后会生成一个:Homestead.yaml
在这个文件中进行相应配置

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
35
36
37
38
39
40
41
42
43
44
---
ip: "192.168.10.10"
# 虚拟机内存
memory: 2048
# 虚拟机cpu
cpus: 2
# 虚拟机提供者
provider: virtualbox
# 共享文件夹
# 这些文件夹中的文件如果发生变更,它们会保持本地机器与 Homestead 环境之间同步。
# map: 项目位置
# to: 虚拟机项目位置
folders:
- map: ~/path/to/code
to: /home/vagrant/path/to/code

- map: ~/path/to/code
to: /home/vagrant/path/to/code
# 配置 Nginx 站点
# sites 功能可以让你在 Homestead 上轻松的映射一个” 域名” 到一个文件夹
sites:
- map: homestead.test
to: /home/vagrant/path/to/code/public
php: "7.3"

databases:
- homestead
# features:
# - mariadb: false
# - ohmyzsh: false
# - webdriver: false

#services:
# - enabled:
# - "postgresql@12-main"
# - disabled:
# - "postgresql@11-main"

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

启动虚拟机和常用 vagrant 命令

创建和启动虚拟机

1
vagrant up

重启虚拟机

1
vagrant reload

关闭虚拟机

1
vagrant halt

销毁并重启虚拟机

1
vagrant destroy && vagrant up

重载虚拟机配置, 修改了 Homestead.yaml 需要重载配置

1
vagrant reload --provision

连接到虚拟机

1
vagrant ssh