什么是"laravel/Homestead"

它是laravel官方推荐和提供的一种开发环境,实际上就是一个虚拟机,为了让团队开发环境更加一致,为了让洁癖玩家能更加愉快的玩耍,作者提供了一套完整的PHP运行环境.

它的box在: https://atlas.hashicorp.com/

它的GitHub请自行在GitHub网站上搜索吧.

Included Software

  • Ubuntu 14.04
  • PHP 5.6
  • HHVM
  • Nginx
  • MySQL
  • Postgres
  • Node (With PM2, Bower, Grunt, and Gulp)
  • Redis
  • Memcached
  • Beanstalkd
  • Laravel Envoy
  • Blackfire Profiler

怎么安装

添加 laravel/homestead box到本机

安装的前提 是你的机器有虚拟机软件和vagrant软件,这里提示一点,vagrant 1.7.4版本无法upvirtualBox 5.0 的虚拟机,可以找virtualBox 4.3.28等版本

国内用户,你上的不是真互联网,是我国的局域网,所以如果用laravel官方网站推荐的方式基本安装会很费事.下面我提供我的方法和细节:

  1. 运行vagrant box add laravel/homestead,如果报错,很可能是你的vagrant版本是老版本,1.7.4是没问题的,老版本请用下面的方式Add:

    vagrant box add laravel/homestead https://atlas.hashicorp.com/laravel/boxes/homestead
  2. 一旦开始下载就按下Ctrl+C,将正在下载的地址拷贝下,用其他下载工具下载下来.地址应该是这样的:
    https://atlas.hashicorp.com/laravel/boxes/homestead/versions/0.2.7/providers/virtualbox.box
  3. 下载完毕了,将box添加到系统里:
    ## 执行add的目录下有我下载好的Homestead.box文件
    vagrant box add --name laravel/homestead Homestead.box

    成功提示:

    ==> box: Successfully added box 'laravel/homestead' (v0) for 'virtualbox'!
  4. 检查box列表:
    vagrant box list后应该可以看到有一个box是laravel/homestead,说明box add 成功了.

部署Homestead环境

回到官方文档继续操作,先克隆一份box作者的git,比如,我想在我的用户根目录下添加一个Homestead目录用于这个项目,那么:

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

只能上局域网的请试图用各类神奇和办法翻墙或改hosts文件,做到至少能访问github.

顺便推荐一个hosts更新网址,有了它你总可以上github了吧:老D博客,好人长命,如果你行,请给他点赞助.谢谢!!

如果你的Homestead文件夹已经有段时间没更新了,可以这么更新:git pull

上面的步骤都完了就可以进行下面的工作了.

  1. 运行bash init.sh来创建Homestead的配置文件Homestead.yaml,默认这个文件会被创建在~/.homestead目录下.

    选读内容:
    Homestead.yaml文件里有很多配置:
    provider表示你的虚拟主机是哪种,virtualboxvmware_fusion, or vmware_workstation

  2. Setting Your SSH Key
    默认情况下,Homestead.yaml文件里配置的就是你生成钥匙对默认的位置和名称,所以,如果你确定你的有钥匙对(~/.ssh目录下,id_rsa是私钥, id_rsa.pub是公钥),可以略过下面这句了,如果你没有,windows用户,请选择PuTTY和PuTTYgen,Linux和Mac可以用下面这句来生成密钥对:

    ## "you@homestead"填写你自己的邮箱或什么,随意~
    ssh-keygen -t rsa -C "you@homestead"
  3. Configuring Shared Folders
    Homestead.yaml配置文件里的folders属性列出了所有你想共享给虚拟机的文件夹,mapto分别对应的文件夹是同步的,你可以根据需哟配置更多的共享文件夹,map对应的是本机,to对应的是虚拟机里的文件夹,如果要支持 NFS,可以加一行type:"nfs"to那一行的后面:

    folders:
    - map: ~/Codeto: /home/vagrant/Code
  4. Configuring Nginx Sites
    Not familiar with Nginx? No problem. sites属性可以让你方便的部署自己在虚拟机上的虚拟目录,Homestead.yaml文件里应该已经有一个配置了,可以做为样例来参考.

    sites:
    - map: homestead.appalias: square.appto: /home/vagrant/Code/Laravel/public

    意思是,如果有访问homestead.app这个域名的请求,虚拟机会直接将请求接引到/home/vagrant/Code/Laravel/public目录,而这个目录实际上和本地环境有映射,被映射到了~/Code/Laravel/public.
    默认是php-fpm来解析PHP,如果你喜欢,也可以选择用HHVM来解析,例如:

    sites:
    - map: homestead.appto: /home/vagrant/Code/Laravel/publichhvm: true

    默认情况下,本地HTTP的8000端口被映射到了虚拟机的80端口,HTTPS的44300端口被映射到了虚拟机的443端口.

  5. Configuring The Hosts File
    为了方便本地开发和测试,我们一般会修改我们的hosts文件,让相应的域名不出去,直接在本机上被解析指向指定的IP,如果这个被制定的IP是虚拟机的IP地址,那就实现了,浏览器访问homestead.app这个网站,实际上访问的是虚拟机上的该网站,这个结果正是我们需要的. 这么修改:

    • Linxu & Mac OS:sudo vim /etc/hosts
    • windows: notepad C:\Windows\System32\drivers\etc\hosts
    • 改为类似格式:192.168.10.10 homestead.app
    • 确定一下你的配置文件Homestead.yaml里的IP是否是hosts里陪的IP.如果以上都没有问题,虚拟机用vagrant启动起来后,此时应该可以访问这个你刚添加的网站了:http://homestead.app
  6. 配置完毕你的Homestead.yaml可以用vagrant启动它了. vagrant up,如果想要销毁这个虚拟机,可以运行vagrant destroy --force.--force的意思是销毁过程中不在征求确认了,也可以简写为-f

  7. Per Project Installation
    你所有的应用最后的配置和box不可能是一样的,每次可能会有些可以重复利用的部分,但你每次都要做,如果你想随同你的项目导出一份Vagrantfile,让其他人收益,少走弯路,你可以这么做:

    • 直接安装Homestead到你的项目下,然后用Composerrequire一下:

      composer require laravel/homestead --dev
    • 如果你的Homestead已经安装和部署了,可以在项目目录下,用make命令来生成:VagrantfileHomestead.yaml,生成文件一般在你项目根目录.make命令会自动将sitesfolders配置指令导入Homestead.yaml
    • Mac/Linux 执行:
      php vendor/bin/homestead make
    • Windows 执行:
      vendor\bin\homestead make

最后一句,很好理解,懒得翻了:

Next, run the vagrant up command in your terminal and access your project at http://homestead.app in your browser. Remember, you will still need to add an /etc/hosts file entry for homestead.app or the domain of your choice.

日常使用 Daily Usage

  1. 通过SSH连接虚拟机(Connecting Via SSH):
    你可以选择每次都进入Homestead的根目录运行vagrant ssh,也可以选择加个自定义命令到环境变量,让你下次只需要输入vm即可进入虚拟主机:

    alias vm="ssh vagrant@127.0.0.1 -p 2222"

    建议: 把这里的127.0.0.1换成你分配给Homestead的专有IP,否则可能你有别的vagrant主机时会因为SSH不符合,还得到Homestead目录下去ssh登录

  2. 连接数据库(Connecting To Databases):
    Homestead 自带两种数据库:MySQLPostgres,你可以选择本地客户端的方式连接,比如利用Navicat或Sequel Pro,连接地址是127.0.0.1,连接端口是 33060 (MySQL) 或 54320 (Postgres).帐号是homestead/secret
    注意: 你只能在你的本机上访问数据库,并且虚拟机确实已经用vagrant启动成功

  3. 添加其他网站(Adding Additional Sites):
    添加sites配置到你的Homestead.yaml,然后在Homestead目录下运行vagrant provision注意: 一定要vagrant provision才能让新加的虚拟目录生效~~

  4. 端口(Ports)
    以下端口映射为Homestead 默认配置:

    • SSH: 2222 → Forwards To 22
    • HTTP: 8000 → Forwards To 80
    • HTTPS: 44300 → Forwards To 443
    • MySQL: 33060 → Forwards To 3306
    • Postgres: 54320 → Forwards To 5432
      如果你想转发其他端口并指定协议,可以配置Homestead.yaml文件:
ports:- send: 93000to: 9300- send: 7777to: 777protocol: udp

Blackfire Profiler(Blackfire分析器)

Blackfire Profiler是一款自动收集你代码的执行数据(RAM, CPU, diskI/O)的工具,Homestead可以让你很轻松的将其应用在你自己的应用里.
所有依赖包都已经安装好了,你只需要在Homestead.yaml中配好Blackfire的服务ID和token即可,例如:

blackfire:- id: your-server-idtoken: your-server-tokenclient-id: your-client-idclient-token: your-client-token

如果你配置了Blackfire,重新在Homestead目录下运行vagrant provision进行重新配置即可.想要了解更多就去官方网站看看官方文档吧

Laravel5.1/Homestead (0.2.7) 开发环境的部署和设置相关推荐

  1. odoo8.0+PyCharm4.5开发环境配置

    终于把odoo的开发环境配置好,现把相关经验教训做个记录分享: odoo8.0+PyCharm4.5开发环境配置(剑飞花 373500710) 1.最佳兼容搭配包 试过各种组合 GreenOdoo+p ...

  2. RH850从0搭建Autosar开发环境系列讲解 - 总目录

    总目录 大家好,本文章系列主要专注于Davinci工具基于RH850芯片从0构建Autosar开发环境,集成到GreenHills编译,最终在板子中运行代码,中间过程的编译错误处理都会尽可能的清晰展示 ...

  3. RH850从0搭建Autosar开发环境【1】- 如何创建Davinci Configurator配置工程

    文章目录 前言 一.如何开始Davinci Configurator配置? 前言 在开始下面步骤之前,我们需要Vector公司的两个license即:Davinci Developer与Davinci ...

  4. linux eclipse下qt开发环境搭建,Qt Eclipse开发环境的部署 上篇

    关于Qt  Eclipse的开F发,将会从不同的环境中区安装部署,分为上.中.篇,三篇文章来讲.Windows,Linux平台下安装使用eclipse + QT4.4.3开发环境,Windows,Li ...

  5. 如何进行实时频谱分析仪的二次开发——MATLAB、C++、labview开发环境的部署

    软件无线电 软件无线电,即软件定义的无线电,是利用现代化软件来控制传统硬件电路的一种无线通信技术.传统的硬件无线电通信设备只是作为无线通信的基本平台,而许多的通信功能则是由软件来实现,这使得设备的通信 ...

  6. HoloLens开发环境安装部署(基于Unity2018.4/VS2017/MRTK)

    HoloLens是微软的MR开发环境,网上有很多部署教程,我这里推一个博主的部署方法,大体上都差不多.用微软的官方平台把UWP程序部署到HoloLens眼镜里. HoloLens开发环境安装部署 一. ...

  7. 2022 最新 Mac Vim 开发环境的部署与配置

    2022 最新 Mac Vim 开发环境的部署与配置 效果图 Vim 插件简介 插件名 描述 pope/vim-fugitive Vim 编辑器中的 Git 包装器插件,它可以让我们在 Vim 编辑器 ...

  8. VSCode配置python开发环境无法找到自己设置的python编译器

    VSCode配置python开发环境无法找到自己设置的python编译器 前言 一. 分别安装VScode和python 二.vscode配置python环境 1.在vscode里安装官方python ...

  9. 美女讲师教你学Python:开发环境的部署-秦红华-专题视频课程

    美女讲师教你学Python:开发环境的部署-456人已学习 课程介绍         Python语法清楚,干净,易读.易维护,是目前流行的编程语言: Python作为一种通用的编程语言,可以应用于各 ...

  10. windows下搭建hadoop-2.6.0本地idea开发环境

    概述 本文记录windows下hadoop本地开发环境的搭建: OS:windows hadoop执行模式:独立模式 安装包结构: Hadoop-2.6.0-Windows.zip- cygwinIn ...

最新文章

  1. 在window下使用gemsim.models.word2vec.LineSentence加载语料库文件的格式要求
  2. Android网络课程笔记-----定制通知系统
  3. 【Apache】指定 某一个URL 并进行 Auth 认证
  4. 音视频技术开发周刊 | 204
  5. java基础之ConcurrentHashMap
  6. android 参数 attrs.xml,使用attrs.xml自定义属性
  7. android 使用动态的svg资源,在Android中使用SVG作为资源 – victor
  8. MATLAB案例学习-基于雷达和摄像头的传感器融合
  9. OpenGL基础42:实例化
  10. Linux NVMe Driver学习笔记之6:Admin Queue与Blk-mq初始化
  11. unity中的游戏推出代码
  12. 用户、角色和权限关系
  13. python中 使用EVO工具 批量评估里程计 脚本
  14. java邮件发送 qq与163邮箱互发和qq和163邮箱发送其他邮箱实例
  15. 最后采用加权求和的方式得到样本的_一种婴幼儿视力自动检测方法与流程
  16. Vue全家桶学习笔记:Vue Router篇
  17. 光学基础知识:焦点、弥散圆、景深 焦深
  18. Redis API String
  19. PHP程序员及网站设计师职业要求
  20. 手机电池不耐用怎么办

热门文章

  1. 空间数据引擎oracle_Oracle-Spatial空间数据库基础
  2. java中返回怎样返回,java-如何显示方法是否可以返回nu
  3. mysql隐式锁_innodB的隐式锁
  4. 兔子的烦恼(一)【NYOJ】
  5. 策略模式java8_Java设计模式:策略模式
  6. 【LA 2572】Viva Confetti(圆与圆弧覆盖+精度问题)
  7. 小米 samba linux,U-BOOT移植准备之(一)Samba服务器
  8. 华为怎么查看手机温度_华为手机误删照片怎么找回?手机怎么快速制作GIF动图...
  9. tf.slim构建vgg16和resnet网络实现图像分类,亲测准确率99%
  10. python while快速写法_从零开始学Python,带你手把手实战之一