Homestead 安装与使用

Homestead 安装与使用

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 所需要的东西

先期准备

  1. 首先要确保你的电脑主板支持 (VT-x) 功能, 并且需要开启这个功能 (进入BIOS界面开启, 没有开启的可以根据自己的主板型号百度下开启的方法自行开启)
  1. 需要禁用 Windows自带的虚拟机, 禁用Hyper-V的命令.
1
bcdedit /set hypervisorlaunchtype off
  1. 需要预先下载的三个软件
  1. 全部安装完成后打开git bash

    首先生成下密钥.

1
ssh-keygen -t rsa -C "your_email@example.com"

​ 然后再运行下面的命令.

1
vagrant box add laravel/homestead
  1. 运行上面的命令后出现下面的解释, 会让你选择使用哪种虚拟机, 这里我们使用的是virtualbox.
1
2
3
4
5
6
7
8
9
10
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.

1) hyperv
2) parallels
3) virtualbox
4) vmware_desktop

Enter your choice: 3
  1. 选完后会自动进行下载, 但是由于网络问题, 下载速度实在是令人堪忧, 可以直接复制下面的链接进行下载, 下载完成后进行本地安装.
1
2
3
4
5
Enter your choice: 3
==> box: Adding box 'laravel/homestead' (v9.2.0) for provider: virtualbox
box: Downloading: https://vagrantcloud.com/laravel/boxes/homestead/versions/9.2.0/providers/virtualbox.box
box: Download redirected to host: vagrantcloud-files-production.s3.amazonaws.com
box: Progress: 3% (Rate: 0/s, Estimated time remaining: 9:13:05)

在这里我的链接是 :

https://vagrantcloud.com/laravel/boxes/homestead/versions/9.2.0/providers/virtualbox.box

本地安装

  1. 下载完成大概是这样的一个文件 4c526667-0956-45df-92ff-78ba76cb1148 将其重命名为 virtualbox.box , 然后运行下面的命令 (将我的目录改为自己的目录) , 安装完成后可以运行 vagrant box list 检查是否安装成功.
1
vagrant box add laravel/homestead C:/Users/berrx/Downloads/virtualbox.box
  1. 找到安装的目录: c:/users/berrx/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead

  2. 添加一个名为 metadata_url 的文件, 用记事本代开文件, 将这个链接复制到文件里:

1
https://atlas.hashicorp.com/laravel/homestead
  1. 将0这个目录改为自己的版本号 9.2.0.

创建虚拟机

然后git clone一份homestead文件.

1
git clone https://github.com/laravel/homestead.git D:/Homestead

进入到目录里双击 init.sh 这个文件, 使其初始化homestead.

记事本打开目录下 Homestead.yaml, 并修改这几处:

添加自己的密钥

1
2
3
keys:
- ~/.ssh/id_rsa
- ~/.ssh/id_rsa.pub

修改映射目录 (虚拟机里的目录会同步到你本地) map 为本地 , to 为虚拟机目录, 需要确保你本地目录下存在这个文件夹, 没有可以创建一个专门用于项目的保存

1
2
3
folders:
- map: D:/code
to: /home/vagrant/code

站点配置 map 为站点地址, to 为虚拟机站点目录, type为站点类型, 支持的类型可以到homestead文件夹里的\scripts\site-types目录去看一下,也可以自己扩展

1
2
3
4
sites:
- map: laravel.test
to: /home/vagrant/code/Laravel/public
type: laravel

除了这几处文件中还有几行配置, 为虚拟机可以扩展的应用, 如果需要的话可以改为true, 应用有很多比如 mysql8, docker, mongodb, 具体可以根据手册自己自定义一下(需要注意, 因为网络原因, 应用有一定几率会创建虚拟机时下载失败)

1
2
3
4
features:
- mariadb: false
- ohmyzsh: false
- webdriver: false

修改完配置后, 运行命令创建

1
vagrant up

耐心等待一段事件之后就可以看到虚拟机创建完成 , 完成后运行命令进入虚拟机命令行操作界面

1
vagrant ssh

ssh连接成功后, 就可以使用这个linux虚拟机进行自己的开发了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-74-generic x86_64)

Thanks for using
_ _ _
| | | | | |
| |__ ___ _ __ ___ ___ ___| |_ ___ __ _ __| |
| '_ \ / _ \| '_ ` _ \ / _ \/ __| __/ _ \/ _` |/ _` |
| | | | (_) | | | | | | __/\__ \ || __/ (_| | (_| |
|_| |_|\___/|_| |_| |_|\___||___/\__\___|\__,_|\__,_|

* Homestead v10.3.0 released
* Settler v9.2.0 released

0 packages can be updated.
0 updates are security updates.

进入映射目录

1
cd ~/code

安装Laravel

1
composer create-project --prefer-dist laravel/laravel Laravel

在本地访问网站
http:\\192.168.10.10

如果需要退出虚拟机的话

1
2
3
exit

vagrant halt

常用命令

关机命令
1
vagrant halt
重启虚拟机
1
vagrant reload
重新加载配置
1
vagrant provision
使用代理
  1. 安装插件
1
vagrant plugin install vagrant-proxyconf
  1. 修改homestead目录下的 Vagrantfile 文件, 将端口修改为自己需要的端口
1
2
3
4
5
if Vagrant.has_plugin?("vagrant-proxyconf")
config.proxy.http = "http://10.0.2.2:1080/"
config.proxy.https = "http://10.0.2.2:1080/"
config.proxy.no_proxy = "localhost,127.0.0.1,.example.com"
end
  1. 运行命令后
1
2
vagrant provision #应用配置
vagrant reload # 重启
You forgot to set the qrcode for Alipay. Please set it in _config.yml.
You forgot to set the qrcode for Wechat. Please set it in _config.yml.
You forgot to set the business and currency_code for Paypal. Please set it in _config.yml.
You forgot to set the url Patreon. Please set it in _config.yml.
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×