Homestead

Homestead 安装

Laravel 官方推荐使用 homestead 搭建环境,那么这个 homestead 究竟是什么鬼?相信很多和我一样不是专门搞服务器的同学看过各种资料后还会有点迷糊。刚开始看了一些介绍后我以为 homestead 是一个整合了 Nginx + PHP + MySQL + Composer 还有其他 Laravel 需要环境的安装包加管理器的概念,类似 win 平台上的 wnmp 之类的东西。不过装一半就发现完全是另一回事。
实际上 homestead 是一台虚拟机的原型,类似我们买电脑后预装的系统,只是这个系统预装了一切 Laravel 需要的东西。而我们最先进行的步骤安装 VirtualBox 和 Vargrnt 实际上就是安装了虚拟机。这意味着实际上 homestead 安装完成后我们的 mac 上并没有也不需要安装 PHP、Nginx、MySQL 等等的东西,所有东西都安装在另一台机器上(虚拟机)。

1.vagrant、virtualbox安装

2.安装Homestead Vagrant Box

1
2
3
4
5
6
7
8
9
vagrant box add laravel/homestead virtualbox.box --box-version 7.0.0
#是否安装成功
vagrant box list
```
## 3.安装Homestead
- 克隆存储库来安装Homestead

``` bash
git clone https://github.com/laravel/homestead.git ~/Homestead
  • 克隆Homestead存储库后,从Homestead目录运行命令以创建配置文件。
1
2
3
4
5
# Mac / Linux...
bash init.sh

# Windows...
init.bat
  • 示例文件
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
name: homestead-7
hostname: homestead
ip: 192.168.66.66
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa

folders:
# 配置共享文件夹
-
map: '~/Workspace/www/xiaoyinka/'
to: /www/xiaoyinka
-
map: '~/Workspace/www/wechat/'
to: /www/wechat
sites:
# 配置Nginx站点
# php: "5.6" 目前7.3,会报错
# type:apache, laravel (the default), thinkphp,proxy, silverstripe, statamic, symfony2, and symfony4.
-
map: xyk.cn
to: /www/xiaoyinka/public
type: thinkphp
php: "7.1"
-
map: we.cn
to: /www/wechat/public
type: thinkphp
php: "7.2"
databases:
- demo
# - eshuduoduo
# blackfire:
# - id: foo
# token: bar
# client-id: foo
# client-token: bar

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

# networks:
# - type: "public_network"
# ip: "192.168.10.80"
# bridge: "en0: Wi-Fi (AirPort)"
# - type: "public_network"
# ip: "192.168.10.81"
# bridge: "en0: Wi-Fi (AirPort)"
# - type: "public_network"
# ip: "192.168.10.82"
# bridge: "en0: Wi-Fi (AirPort)"
# momotang: 80 (guest) => 8000 (host) (adapter 1)
# momotang: 443 (guest) => 44300 (host) (adapter 1)
# momotang: 3306 (guest) => 33060 (host) (adapter 1)
# momotang: 5432 (guest) => 54320 (host) (adapter 1)
# momotang: 8025 (guest) => 8025 (host) (adapter 1)
# momotang: 27017 (guest) => 27017 (host) (adapter 1)
# momotang: 22 (guest) => 2222 (host) (adapter 1)

4.快捷配置

  • after.sh

    1
    2
    3
    #!/bin/sh
    sudo apt-get update
    sudo apt-get install php7.1-mcrypt php7.1-gmp php7.3-gmp php-redis
  • 数据库
    要从主机的数据库客户端连接到MySQL或PostgreSQL数据库,您应该连接到端口(MySQL)或(PostgreSQL)。两个数据库的用户名和密码是 。

    • ip:127.0.0.1
    • mysql端口:33060
    • PostgreSQL端口:54320
    • 用户名:homestead
    • 密码:secret

5.vagrant 命令

1
2
3
4
5
6
7
8
9
10
11
12
13
#启动 - 需切换到配置所在目录
vagrant up

#ssh到vagrant
vagrant ssh

#刷新配置文件,切换到homestead目录
vagrant reload --provision

#增加快捷命令
function homestead() {
( cd ~/Workspace/Homestead && vagrant $* )
}

6.redis服务

  • 修改Homestead.yaml文件端口转发,并刷新配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        ports:
    - send: 63790
    to: 6379
    ````
    - 文件地址:/etc/redis/redis.conf
    requirepass yourpassword----设置任何你想要的密码;
    bind 127.0.0.1 修改为 bind 0.0.0.0
    ``` bash
    #redis重启
    sudo service redis restart
  • redis连接配置

    1
    2
    3
    host: 127.0.0.1
    port: 63790
    auth: yourpassword

7.mongoDB服务

  • 要安装MongoDB Community Edition,请使用以下配置选项更新文件:Homestead.yaml。刷新配置文件

    1
    mongodb: true
  • 默认

    • 用户名:homestead
    • 密码: secret

8.其他

网址记录

  1. laravel/homestead Vagrant box
  2. Laravel 官网教程