homestead安装和启动
laravel官网:https://laravel.com/docs/5.7/homestead
laravel中文网站:https://learnku.com/docs/laravel/5.7
第一步:vagrant【管理虚拟机】和VirtualBox安装
https://www.vagrantup.com/ 和 https://www.virtualbox.org/
*** win7系统 注意 **
安装VirtualBox成功后,开启VirtualBox若提示:ailed to instantiate CLSID_VirtualBox w/ IVirtualBox, but CLSID_VirtualBox w/ IUnknown works.
则需要配置注册表,如下
1, win+r 快捷键打开 “运行”,输入regedit 打开注册表
2,找到 HKEY_CLASSES_ROOT\CLSID\{00020420-0000-0000-C000-000000000046}
InprocServer32 修改 其第一行(默认)的值为 C:\Windows\system32\oleaut32.dll
如图
打开VirtualBox
第二步:安装homestead虚拟机(laravel开发环境--推荐使用离线添加)
1、在线添加homestead
MacOS:
https://learnku.com/docs/laravel-development-environment/5.7/development-environment-macos/2901
Windows :
https://learnku.com/docs/laravel-development-environment/5.7/development-environment-windows/2902
1、下载和导入Homestead Box,解压得到一下两个文件
- virtualbox.box(教程定制化过的 Homestead 盒子)
- metadata.json(盒子的导入配置文件)
- 在解压目录中
lc-homestead-6.1.1-2018090400
运行以下命令导入 Box: -
> vagrant box add metadata.json
2、离线添加homestead
参考:https://zhidao.baidu.com/question/429293916865114812.html
2.1、下载对应版本的virtualbox.box、metadata.json、Homestead到laravel文件夹下【这里以F盘的laravel文件夹为例】
metadata.json文件中的virtualbox.box需与其存放的路径一致
{
"name": "laravel/homestead",
"versions": [{
"version": "6.3.0",
"providers":[
{
"name": "virtualbox",
"url": "file://F:/laravel/virtualbox.box"
}
]
}]
}
2.2、使用Git客户端进入到laravel文件夹【没有安装Git需要安装】
1)加载metadata.json文件
vagrant box add metadata.json
若出现以下提示:
==> vagrant: A new version of Vagrant is available: 2.2.9 (installed version: 2.2.4)!
==> vagrant: To upgrade visit: https://www.vagrantup.com/downloads.html
==> box: Loading metadata for box 'metadata.json'
box: URL: file://F:/laravel/metadata.json
==> box: Adding box 'laravel/homestead' (v6.3.0) for provider: virtualbox
The box you're attempting to add already exists. Remove it before
adding it again or add it with the `--force` flag.
Name: laravel/homestead
Provider: virtualbox
Version: 6.3.0
看错误提示,表示已经添加过这个 box 了,两种方法解决:
删除之前的 box,再重新添加。
vagrant box add metadata.json --force 强制覆盖之前的同名 box 。
出现Successfully表示成功:
2)进入解压得到的Homestead文件夹,使用bash init.sh 命令初始化homestead虚拟机【运行该命令生成Homestead.yaml文件】,如果没有生成Git的公钥和私钥需要生成
bash init.sh
3)创建、配置并初始化homestead虚拟机,第一次启动需要时间较长,因为需要安装配置文件(可以查看C:\Users\Administrator\VirtualBox VMs是否生成homestead-7文件夹)
4)登录homestead虚拟机,输入一下命令
vagrant ssh
出现下图表示正常启动:
5)退出并关闭虚拟机
exit && vagrant halt
如下:
vagrant@homestead:/$ exit && vagrant halt
6)停止虚拟机
vagrant halt
7)销毁虚拟机
vagrant destroy
注意:每次对 Homestead.yaml 文件进行了更改之后,都需要运行下面命令来使其更改生效
vagrant provision && vagrant reload
其它命令:
vagrant suspend // 睡眠
vagrant resume // 唤醒
第三步:配置用于laravel开发的homestead环境【homestead.yaml】
*** 注意:需要事前准备好文件夹 ****
【编辑 Homestead.yaml 配置文件时,不能使用 tab 键进行缩进,可能会报错】
【具体原因是,homestead.yaml 文件中的某一空白行前面有"空格"导致的】
注意:每次对 Homestead.yaml 文件进行了更改之后,都需要运行下面命令来使其更改生效
vagrant provision && vagrant reload
1、配置共享文件夹
Homestead.yaml文件中的folders属性列出了所有主机和 Homestead 虚拟机共享的文件夹,一旦这些目录中的文件有了修改,将会在本地和 Homestead 虚拟机之间保持同步,如果有需要的话,你可以配置多个共享文件夹
folders:
- map: F:/laravel/Code/Taskmanager
to: /home/vagrant/Code/Taskmanager
- map: F:/laravel/phpMyAdmin
to: /home/vagrant/phpMyAdmin
2、配置Nginx站点
通过sites属性可以方便地将“域名”映射到 Homestead 虚拟机的指定目录,Homestead.yaml中默认已经配置了一个示例站点。和共享文件夹一样,可以配置多个站点:
sites:
- map: local.laravel.com #配置域名
to: /home/vagrant/Code/Taskmanager/public #配置项目访问入口
- map: local.phpMyAdmin.com
to: /home/vagrant/phpMyAdmin
3、配置hosts文件
192.168.10.10 local.laravel.com
4、访问