Windows 环境下搭建 Laravel 开发环境 Homestead (含所有资源链接)

前言

关于 homestead 环境的搭建,Summer 大哥的Homestead 2.0 安装笔记Homestead 安装需要知道的一些信息就差不多可以解决问题了(好吧,第二篇是我才发现的)

下载

添加封装包

$ vagrant box add laravel/homestead https://atlas.hashicorp.com/laravel/boxes/homestead

由于国内的网实在是太慢,而且经常下一半就卡掉,所以只好单独将它下载下来再添加,一开始用迅雷下的时候,文件名显示 vitrualbox.box ,后来才发现并不能用,网上有人说不能用迅雷下,然而答案并不是这样,正确的做法是这样的(以下载 v0.4.4 为例):

官网下载链接:https://atlas.hashicorp.com/laravel/boxes/...

  1. 如果直接用迅雷下载就会发现下载的文件是 virtualbox.box
  2. 将下载链接粘贴到浏览器中下载,显示下载文件名 hc-download,可以发现链接变成了下面所示,这时候就可以复制到迅雷中去了:
https://binstore-test.hashicorp.com/7b0beed8-f399-4f35-90b0-03ad6da64e40

这个方法还是很恶心,下载一大半的时候,网速正常,进度条不动~

所以还是直接用我提供的封装包吧,那是我辛辛苦苦下载好改名传到360云盘中的,下载完毕后执行以下命令:

$ vagrant box add laravel/homestead /Path/to/Homestead.box

安装 Homestead

$ git clone https://github.com/laravel/homestead.git Homestead

Homestead 已经帮你写好了配置文件,只需要修改以下就好了,在 Homestead 目录中执行下面命令在根目录下的 .homestead 文件夹中生成配置文件 Homestead.yaml

$ bash init.sh

生成 SSH 密钥

$ ssh-keygen -t rsa -C "you@homestead"

修改配置文件

配置密钥

authoriza: /C/Users/Path/to/.ssh/id_rsa.pub

配置共享文件夹

folders:
    - map: /Path/to/Code
      to: /home/vagrant/Code

启动封装包

$ vagrant up

一开始我在 Homestead 文件夹中使用这个命令的时候命令行又重新下载封装包,我猜可能是版本不对,于是到根目录下的 .vagrant.d/boxes/laravel-VAGRANTSLASH-homestead 中将 0 这个文件夹改成 0.4.4,然后再次启动,提示手动添加的封装包不能改版本,于是改回来,再试一次居然成功了。

(原因:原来是 Homestead 对 box 的版本号有要求 >= 0.4.0,手动添加的版本号默认是0,所以它会以为这个不是最新版,然后尝试去下载最新版本,至于为什么改了两次文件夹名之后就好了,等我发现答案再说吧)

其他解决方法

创建 metadata.json 文件指明 box 的版本号(Stackoverflow),这个文件放在 box 同一目录下.

{
    "name": "laravel/homestead",
    "versions": [{
        "version": "0.4.4",
        "providers": [{
            "name": "virtualbox",
            "url": "file://homestead.box"
        }]
    }]
}

执行以下命令后再启动封装包:

$ vagrant box add metadata.json

连接虚拟机

$ vagrant ssh

进去之后可以看到该目录下就有刚刚配置的共享文件夹 Code

Zsh

如果觉得界面不好看,我们可以通过安装 Zsh 来替换默认的 shell:

安装

$ sudo apt-get install zsh

修改默认 Shell

$ chsh -s /bin/zsh

该命令需要输入当前用户密码,vagrant 用户默认密码为 vagrant

安装 oh-my-zsh

oh-my-zsh 是一个开源的用来管理 Zsh 配置的社区驱动框架。

$ git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
$ cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

以上命令下载 oh-my-zsh 并将配置文件复制一份到根目录下,修改 .zshrc 文件的默认主题为 ys

ZSH-THEME="robbyrussell"
ZSH-THEME="ys"

重启虚拟机,进入后就可以看见新世界啦~~

修改系统时区

$ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

测试一下

Randy
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 13

$ chsh -s /bin.zsh
需要输入密码,密码是什么呢?

3年前 评论

楼主,你的标题是Windows 环境下搭建 可是下面这个命令怎么输入呢?在哪里输入?这个貌似是linux环境下的命令吧?

$ bash init.sh
2年前 评论

另外在CMD内操作出错信息如下:

E:\wamp64\www\Homestead>vagrant box add laravel/homestead E:\wamp64\www\Homestead\Homestead.box
E:/wamp64/www/Homestead/scripts/homestead.rb:4:in `configure': undefined method `[]' for nil:NilClass (NoMethodError)
        from E:/wamp64/www/Homestead/Vagrantfile:30:in `block in <top (required)>'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/lib/vagrant/config/v2/loader.rb:37:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/lib/vagrant/config/v2/loader.rb:37:in `load'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/lib/vagrant/config/loader.rb:113:in `block (2 levels) in load'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/lib/vagrant/config/loader.rb:107:in `each'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/lib/vagrant/config/loader.rb:107:in `block in load'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/lib/vagrant/config/loader.rb:104:in `each'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/lib/vagrant/config/loader.rb:104:in `load'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/lib/vagrant/vagrantfile.rb:28:in `initialize'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/lib/vagrant/environment.rb:746:in `new'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/lib/vagrant/environment.rb:746:in `vagrantfile'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/lib/vagrant/environment.rb:492:in `host'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/lib/vagrant/environment.rb:214:in `block in action_runner'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/lib/vagrant/action/runner.rb:33:in `call'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/lib/vagrant/action/runner.rb:33:in `run'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/lib/vagrant/environment.rb:479:in `hook'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/lib/vagrant/environment.rb:728:in `unload'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/bin/vagrant:177:in `ensure in <main>'
        from C:/HashiCorp/Vagrant/embedded/gems/gems/vagrant-1.8.6/bin/vagrant:177:in `<main>'
2年前 评论

搞定了,在git bash内操作。

2年前 评论

云盘已失效

2年前 评论
Randy

@ricoo 这个是360云盘的锅啊,他们跑路了:fearful:

2年前 评论

找了香港的同学下载,然后用google drive同步,也是不容易啊。 我导入用的是 分享:Homestead 安装需要知道的一些信息 这里的方法

2年前 评论

@EdwinHuiSH 你好,大哥我也遇到这个问题了,但是用git也不好使,请问你是怎么解决的

file

2年前 评论

@linmufeng 后来我干脆不用了,国内墙太厉害,环境而已,不想浪费太多时间,直接用wamp也是一样。

2年前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!