软件环境:在 Windows 10 上基于 VirtualBox 4.3.24 + Vagrant 1.7.1 使用 Laravel Homestead。

1、准备

先下载安装VirtualBox和Vagrant。

安装完成后需要将vagrant/vagrant.exe所在目录放到系统路径中(这个需要根据Vagrant安装目录来,比如我的是D:\HashiCorp\Vagrant\bin)。

2、安装及配置

2.1 安装

使用Vagrant安装Homestead盒子

在控制台中执行如下命令:

vagrant box add laravel/homestead

安装过程需要较长时间(取决于你的网络连接速度),如果网络中断,直接再次执行上面的命令会报错:

HTTP server doesn't seem to support byte ranges. Cannot resume.

意思是说不支持断点下载,不能从上次中断的地方恢复下载,解决办法是去~/.vagrant.d/tmp(Windows上需要将~替换成当前用户目录,比如你当前用户名是test,则对应目录为C:\Users\test\.vagrant.d\tmp)目录中删除下载的部分文件。然后再执行上面的命令即可重新开始下载:

添加Homestead盒子

这种方式是全局安装,即同一主机上所有项目共享该Homestead盒子,当然你也可以为每个项目单独指定Homestead盒子,可参考Laravel Homestead相应的文档,这里不再赘述。

使用Composer全局安装Homestead包

composer global require "laravel/homestead=~2.0"

使用Composer全局安装Homestead包

2.2 配置

安装完Homestead盒子后,默认配置文件位于~/.homestead/Homestead.yaml(Windows下用户名为test的话对应目录是C:\Users\test\.homestead\Homestead.yaml)。该配置文件内容如下所示:

Homestead.yaml默认配置及注释

2.2.1 SSH KEY

由于我们在安装Homestead盒子时已经指定了provider,所以这里没有该选项。如果系统没有配置过公共SSH KEY路径,可以参考Homestead文档设置SSH KEY部分去生成。

2.2.2 共享文件夹

接下来,我们来配置主机和虚拟机之间的共享文件夹,这个通过folders选项来配置。配置完成后,主机上对应文件夹下的任何文件修改都会实时同步到虚拟机相应的文件夹下。如果要开启NFS,只需在folders选项下新增一个type配置:

folders:- map: E:/xampp/htdocs/laravelto: /vagrant/laraveltype: 'nfs'

这里我们将其修改为前一篇文章中已经安装好的Laravel应用目录laravelapp

folders:- map: E:/xampp/htdocs/laravelappto: /vagrant/laravelapp
2.2.3 Nginx配置

然后我们来进行Nginx站点配置,该配置允许我们在Homestead.yaml文件中通过sites选项进行简单域名解析,而不必去虚拟机上对Nginx进行复杂配置,就可以完成域名与Homestead上相应目录的映射。Homestead.yaml默认已经为我们配置了一个示例站点homestead.app,该域名映射到Homestead上的/vagrant/laravel/public目录,这里我们相应将目录修改为/vagrant/laravelapp/public

sites:- map: homestead.appto: /vagrant/laravelapp/publichhvm: true

这里我们设置hhvmtrue以让该站点使用HHVM。

配置完域名解析后,不要忘了在hosts中添加对应的IP地址映射:

127.0.0.1 homestead.app

多站点配置

多站点配置很简单,只需要在sites选项中新增匹配即可:

sites:- map: homestead.appto: /vagrant/laravelapp/public- map: laravel.appto: /vagrant/laravelapp/public

注意:配置多站点后需要使用homestead provision重启homestead虚拟机。

如果你使用ssh登录到Homestead的话,还可以通过如下命令新增站点:

serve laravel.app /vagrant/laravelapp/public 80
2.2.4 数据库配置

Homestead.yaml中默认已经配置好了一个数据库配置示例,该配置示例对应新安装的Laravel应用中的.env数据库配置:

APP_ENV=local
APP_DEBUG=true
APP_KEY=8PGeOBuLcDBHSvjBL19fGw5aySbb9M3dDB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

.env中配置就是为Homestead准备的。这意味着我们在Homestead上可以通过homestead/secret连接上数据库,且该数据库中有一个名为homestead的数据库。

对数据库配置我们不做任何更改。

2.2.5 端口转发

默认情况下,Homestead端口转发配置如下:

  • SSH: 2222 →  22
  • HTTP: 8000 →  80
  • HTTPS: 44300 →  443
  • MySQL: 33060 →  3306
  • Postgres: 54320 →  5432

如果要添加更多端口转发,可以通过在Homestead.yaml中新增ports选项配置:

ports:- send: 93000 to: 9300

小贴士:想要对Homestead虚拟机有更多的自定义配置,可以去修改~/AppData/Roaming/Composer/vendor/laravel/homestead/scripts/homestead.rb文件,该文件对Homestead有更加细粒度的配置,然后被~/AppData/Roaming/Composer/vendor/laravel/homestead/Vagrantfile引用。

3、启动及测试

3.1 启动报错及解决方法

完成上述配置后,我们可以使用homestead up启动Homestead虚拟机了,如果启动时报错:

There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.Command: ["hostonlyif", "create"]Stderr: 0%...
Progress state: E_FAIL
VBoxManage.exe: error: Failed to create the host-only adapter
VBoxManage.exe: error: Code E_FAIL (0x80004005) - Unspecified error (extended in
fo not available)
VBoxManage.exe: error: Context: "int __cdecl handleCreate(struct HandlerArg *,in
t,int *)" at line 66 of file VBoxManageHostonly.cpp

则对应的解决方案如下:

1)去C:\Users\test\AppData\Roaming\Composer\vendor\laravel\homestead\scripts(假定你的Windows用户名为test)然后打开homestead.rb

2)在homestead.rb中注释第17行:

# config.vm.network :private_network, ip: settings["ip"] ||= "192.168.10.10"

3)去D:\HashiCorp\Vagrant\embedded\gems\gems\vagrant-1.7.1\plugins\providers\virtualbox(相关目录取决于你安装Vagrant的目录及版本)打开action.rb

4)在action.rb中注释掉第64行:

# b.use ClearNetworkInterfaces

5)以管理员权限打开VirtualBox,去管理->全局设定->网络界面,点击第二个选项卡“仅主机(Host-only)网络”,选择一个适配器进行编辑(将IP设为与Homestead.yaml中一致即192.168.10.10)并保存:

设置VirtualBox全局网络配置

6)接下来设置VirtualBox中homestead的网络配置,选择其连接方式为:仅主机(Host-only)适配器“:

设置Homestead网络配置

7)再次运行homestead up

启动Homestead

3.2 测试

3.2.1 SSH连接测试

然后我们可以通过homestead ssh连接到虚拟机,当然也可以使用其他工具如putty连接:

使用putty连接到homestead

putty连接配置信息如下:

IP:127.0.0.1
端口号:2222
用户名:vagrant
密码:vagrant
3.2.2 浏览器站点访问测试

接下来我们迫不及待去浏览器中测试下吧(为区分我们将视图中文字略作修改):

Homestead站点访问测试

3.2.3 本地数据库连接测试

我们使用Navicat For MYSQL对Homestead上的MySQL数据库连接做了测试:

本地连接Homestead数据库测试

数据库连接信息与上面数据库配置中.env中的配置信息一样。

当然,在安装启动Homestead的过程还有各种其它小问题,这里只做了一个简单测试,在具体操作过程中有任何问题,欢迎在下面的评论框中提出,我们来一起探讨。

附:Homestead命令大全

命令 解释
up 启动homestead
halt 停止homestead
init 创建初始化的homestead.yaml
edit 编辑homestead.yaml
suspend 挂起homestead
resume 继续挂起的homestead
ssh 通过ssh登录homestead
run 通过ssh在homestead上运行命令
status 获取homestead的状态
list 列表命令
help 显示命令的帮助
provision 重新配置homestead
destory 销毁homestead
update 更新homestead镜像

防止原贴被删除,故转发到这里

转载于:https://www.cnblogs.com/niuben/p/10897729.html

在 Windows 上进行 Laravel Homestead 安装、配置及测试相关推荐

  1. 【Qt开发】Qt Creator在Windows上的调试器安装与配置

    Qt Creator在Windows上的调试器安装与配置 如果安装Qt时使用的是Visual Studio的预编译版,那么很有可能就会缺少调试器(Debugger),而使用MSVC的Qt对应的原生调试 ...

  2. mysql windows 管道连接,科技常识:Windows Server 2016 MySQL数据库安装配置详细安装教程...

    今天小编跟大家讲解下有关Windows Server 2016 MySQL数据库安装配置详细安装教程 ,相信小伙伴们对这个话题应该也很关注吧,小编也收集到了有关Windows Server 2016 ...

  3. Windows上python开发--2安装django框架

    Windows上python开发--2安装django框架 分类: 服务器后台开发2014-05-17 21:22 2310人阅读 评论(2) 收藏 举报 python django 上一篇文章中讲了 ...

  4. 在windows上用源代码编译安装MPlayer

    转自:http://www.cnblogs.com/smallmuda/archive/2009/03/31/1425976.html 在windows上用源代码编译安装MPlayer 作者:心情花园 ...

  5. Windows上最全wsl2使用配置,包含基础配置、高级配置、开发工具、机器学习环境配置、机器人与自动驾驶环境配置(如Ros及百度的无人驾驶系统apollo)、服务器及Web开发环境配置等等

    Windows上最全wsl2使用配置,包含基础配置.高级配置.开发工具.机器学习环境配置.机器人与自动驾驶环境配置(如Ros及百度的无人驾驶系统apollo).服务器及Web开发环境配置等等. 文章比 ...

  6. Windows 10 Visual Studio 2017 安装配置 Apache Thrift (C++)

    最近需要使用Thrift,所以在网上看了很多资料,不过很多教程都不够详细完整,导致我花了不少时间安装配置.在这里我把我配置的过程写下来和大家分享. 1 介绍 Apache Thrift 是一个跨语言的 ...

  7. 在RedHat Enterprise Linux 上Oracle 9i的安装配置与调优

    1 安装配置Oracle 9i数据库 本章描述内容如下所示: 1.1 安装前的准备工作 介绍在安装Oracle之前所需的准备工作. 1.2安装前的系统设置 介绍在安装Oracle之前所必须的系统设置. ...

  8. ubuntu上 grafana + influxdb + telegraf 安装配置

    apt安装 Grafana 一个纯粹的HTML/JS应用,其功能非常强大,访问InfluxDB时不会有跨域访问的限制.只要配置好数据源为InfluxDB之后就可以,剩下的工作就是配置图表. Influ ...

  9. Windows和Linux下JDK安装配置

    博客迁移了.麻烦去新地址查看. Windows和Linux下JDK安装配置 链接地址:http://www.msyy233.com/posts/1678.html#more

  10. windows下maven3.6下载安装配置

    windows下maven3.6下载安装配置 一.下载 二.环境配置 三. Maven 本地仓库的配置 四.idea配置maven 一.下载 下载地址: 链接:https://pan.baidu.co ...

最新文章

  1. html转义字符对照表
  2. 支持向量机SVM原理
  3. Spring-AOP @AspectJ切点函数之@annotation()
  4. paper 35 :交叉验证(CrossValidation)方法思想
  5. openssh-在win7上的搭建
  6. “WiFi 万能钥匙”盗 9 亿用户数据,如何看待运营平台滥用隐私的问题?
  7. K8S 使用 SideCar 模式部署 Filebeat 收集容器日志
  8. Spring3之InternalResourceViewResolver
  9. mongodb 分组聚合_MongoDB 临时表横空出现 1 万+,这条语句执行前请准备好翻车的姿势...
  10. docker学习笔记3:镜像操作(查找和下载)
  11. AI的螺旋式上升?今日头条AI掌门人马维英离职,“重返”清华从事培育科研工作
  12. 计算机学院实习报告3000字(Java开发实习)--持续更新中,多个专业,以及版本
  13. 找不到文件“c:/Users/Administrator/Desktop/vue_dom2/node_modules/postcss-discard-overridden/types/index.d.
  14. Unity 粒子系统参数一
  15. 找到任务栏广告弹窗的源头
  16. 2022中国智慧农业领域最具商业合作价值企业盘点
  17. 9008小米售后权限账号_小米救砖教程
  18. oracle 强制解锁
  19. JERK、Junction Deviation、Linear Advance
  20. HP 小机定位I/O 卡,更换I/O 卡

热门文章

  1. C++求复数的角度_高考数学一轮复习33,复数,常见类型及解题策略
  2. P. Laguna/Evaluation of an Automatic Threshold Based Detector of Waveform Limits in Holter ECG
  3. C#记事本的简单开发
  4. matlab进行ai研究,matlab【人工智能项目】—ELM地质分类研究
  5. 兴业银行研发中心笔试题_2021国考笔试成绩即将发布,面试重点考什么?
  6. redis sentinel 哨兵
  7. 透过用户思维谈程序员的进阶之路
  8. Mongodb~连接串的整理
  9. 转载--批量更新数据(性能优化)
  10. DTCMS自定义标签,获取所有栏目文章列表TOP,以及文章通用URL