Win10下使用Vagrant+Homestead搭建Laravel的开发环境

windows 10
Homestead 5.4
Vagrant 2.1
box 2.1.0
vbox

Vagrant是一款基于Virtual Box的虚拟机环境,可以安装多种Box(即预先配置好的开发环境),达到多种开发环境可以快速切换并且不需要担心Package Dependencies。

Homestead 是一个基于 Ubuntu 构建的虚拟机,它包含了所有 Laravel 开发时需要用到的东西,你可以很轻松的通过指定的 Laravel 版本来找到相对应版本并进行安装。

如今二者经常用于laravel的开发环境快速搭建

1. Git

首先再windows上下载git,并且再安装时勾选git-bash就好了

2. Vagrant

Vagrant的下载地址:https://www.vagrantup.com/downloads.html

image.png

选择Windows版本进行下载并安装。

3. Virtual Box

Virtual Box的下载地址:https://www.virtualbox.org/wiki/Downloads

virtual box download

请选择高亮的链接下载Windows版本并安装。

4.添加box

运行以下语句下载最新版本

vagrant box add laravel/homestead
image.png

运行后输入2回车,选择virtualbox

之后复制 box: Downloading:之后的链接去迅雷去下载
https://atlas.hashicorp.com/laravel/boxes/homestead/versions/2.1.0/providers/virtualbox.box

这里要注意一点就是版本的问题,以上的链接版本是2.1.0是目前最新版本,如因特殊原因需指定版本则输入

vagrant box add laravel/homestead --box-version= xxx(此处为版本号)

版本具体可以去官网查询

https://atlas.hashicorp.com/laravel/boxes/homestead

下载好了之后,将下载好的文件名重命名为homestead.box(前缀不重要,但是一定要加上.box后缀),然后运行

 vagrant box add laravel/homestead file:///c:/users/Administrator/downloads/homestead.box

注意自己的文件下载路径,完成之后你会发现自己的用户文件夹里多出了一个.vagrant.d的文件夹(C:\Users\Administrator.vagrant.d),我们打开这个文件夹,进入该路径C:\Users\Administrator.vagrant.d\boxes\laravel-VAGRANTSLASH-homestead,在该文件夹下新建一个叫metadata_url的文件:

image.png

在文件中添加内容

https://atlas.hashicorp.com/laravel/homestead
image.png

注意,不要留任何空白字符,保存文件。

完成之后,我们就可以开始配置Homestead了。

5.Homestead 安装和配置

git clone https://github.com/laravel/homestead.git ~/Homestead
image.png

下载好了Homestead之后,用脚本生成 Homestead.yaml 文件:

# 先cd到刚才下载的Homestead文件夹
$ cd ~/Homestead

# 开始初始化Homestead
$ bash init.sh

然后在~/Homestead文件夹中,我们可以看到多出了一个叫Homestead.yaml的文件,用编辑器打开对其进行配置:

---
ip: "192.168.10.10"
memory: 2048
cpus: 1
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

# folders 来指明本机要映射到 Homestead 虚拟机上的文件夹。
# map 是本机的文件夹,to 则对应的是 Homestead 上的文件夹。
folders:
    - map: ~/Code
      to: /home/vagrant/Code

#sites属性你可以方便地将“域名”映射到 Homestead 虚拟机的指定目录
#map 是域名,to 则对应的是 Homestead 上的网站目录,注意这里Laravel是我们的项目。
sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public

databases:
    - homestead

# blackfire:
#     - id: foo
#       token: bar
#       client-id: foo
#       client-token: bar

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

首先我们需要建立SSH Key并且填入路径。在Git Bash中,输入:

ssh-keygen -t rsa

一路回车就好了,完成后,我们会在用户根目录下看到一个.ssh文件夹,里面分别有

id_rsa.pub
id_rsa

两个文件,分别对应配置文件中

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rs

其他基本配置默认就好,如果有需要改动folders和sites则手动改就好了,这里要说的就是folders的配置,由于一开始没创建Code所以本机和Homestead的Code没能同步,后来创建了后就可以了,看其他人貌似没这个问题,所以为了谨慎起见还是创建了,所以我们在用户根目录下创建Code(根据配置文件中的文件名)

image.png

最后在hosts文件末尾添加

192.168.10.10 homestead.app

6.启动

首次配置完Homestead.yaml 时,需要运行vagrant provision去运行folder和site的映射
然后再运行vagrant up

在git-bash中输入

cd ~/Homestead

vagrant provision

vagrant up
image.png

运行成功后,通过 SSH 来登录 Homestead输入

vagrant ssh

成功登陆Homestead

image.png

进入之后我们到/home/vagrant/Code文件中创建项目

# cd进入我们共享的文件夹
$ cd /home/vagrant/Code

#将composer改成中国镜像
$ composer config -g repo.packagist composer https://packagist.phpcomposer.com

# 创建一个新的laravel项目,注意这里的项目名称要和Homestead.yaml配置文件中的sites的to的项目一样,否则可能出现访问网站时输出No input file specified,原因就是nginx的找不到该项目
$ laravel new Laravel

完成后直接访问就可以了

http://homestead.app/

image.png

最后尝试退出虚拟机,并关闭Vagrant

$ exit
image.png

7.连接sql

Vagrant + Homestead 下的 MySql 默认帐号和密码

用户名:homestead
密码:secret
命令行登陆:$ mysql -uhomestead -psecret

8.重启服务密码

重启如果提示需要密码,一般密码是都是 vagrant

9.homestead添加多个域名

在homestead.yaml中的sites添加

sites:
    - map: homestead.app
      to: /home/vagrant/Code/Laravel/public
   #第二个域名
    - map: test.app
      to: /home/vagrant/Code/test/public

然后再去hosts文件中添加dns

192.168.10.10 homestead.app
192.168.10.10 test.app

然后到打开git-bash到命令行执行

#重启项目
 vagrant reload --provision

#执行完毕后在启动
 vagrant up

#到Code下再新建刚刚对应的项目就ok了
$ cd ~/Code 
$ laravel new test

完成后就可以访问不同的站点了

image.png
image.png

还有一种方法实在虚拟机中已经新建了个项目的话,那么就直接再虚拟机中用命令配置

#假设进入了虚拟机新建了一个项目
vagrant up
$laravel new newProject

#用命令添加站点
$serve newproject.dev home/vagrant/Code/newProject/public

最后也是再hosts添加对应的域名就行了

vagrant 常用命令

vagrant --help
vagrant up
vagrant halt//优雅关闭Homestead
vagrant boxlist
vagrant boxremove '盒子名称'//从vagrant中去除添加的盒子
vagrant --reload//重新加载配置

参考链接:
http://blog.csdn.net/lgyaxx/article/details/60870819
http://www.seekjune.com/post/171

遇到的问题

  1. The SSH command responded with a non-zero exit status. Vagrant
    assumes that this means the command failed. The output for this command
    should be in the log above. Please read the output to determine what
    went wrong.

解决方法:需要关闭虚拟机 vagrant halt ,然后执行 vagrant reload 就可以进去了

  1. laravel No input file specified.

解决方法:Homestead.yaml 配置有问题,看看名字有没有打错

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容

  • 简介 Laravel 致力于让你在 PHP 开发过程中更加轻松愉快,这其中也包括本地开发环境的搭建。 Vagran...
    曼巴童鞋阅读 2,366评论 0 3
  • 对思维导图的探索、理解及运用,让我更加自信,意识到原来生活是如此的美好。对生命的热爱,使我不断的思考“怎样拥...
    swdtxh阅读 3,097评论 0 6
  • 饮人前,骚人后。 一 频上热搜的情侣阚清子与纪凌尘宣布分手,有了引起争议的“你喜欢大海,我爱过你”; 被传出轨的张...
    饮骚青年阅读 4,893评论 6 36
  • 初秋的下午,酷热仍未去除,艳阳高照,高温闷热,让人透不过气来。应饭坡镇党委、政府的邀请,扫花网组织文学采风团采风,...
    qqw1阅读 242评论 0 0
  • 银行不会抵押快乐,报纸从不书写艺术,嘲笑需要付费,欢笑永远廉价,爱情可以跨越阶级。无论你是满脸须发的灵魂歌...
    南山有白头阅读 552评论 0 0