Laravel5.1/Homestead (0.2.7) 开发环境的部署和设置
什么是"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
版本无法up
virtualBox 5.0 的虚拟机,可以找virtualBox 4.3.28等版本
国内用户,你上的不是真互联网,是我国的局域网,所以如果用laravel官方网站推荐的方式基本安装会很费事.下面我提供我的方法和细节:
- 运行
vagrant box add laravel/homestead
,如果报错,很可能是你的vagrant版本是老版本,1.7.4
是没问题的,老版本请用下面的方式Add:vagrant box add laravel/homestead https://atlas.hashicorp.com/laravel/boxes/homestead
- 一旦开始下载就按下
Ctrl+C
,将正在下载的地址拷贝下,用其他下载工具下载下来.地址应该是这样的:
https://atlas.hashicorp.com/laravel/boxes/homestead/versions/0.2.7/providers/virtualbox.box - 下载完毕了,将box添加到系统里:
## 执行add的目录下有我下载好的Homestead.box文件 vagrant box add --name laravel/homestead Homestead.box
成功提示:
==> box: Successfully added box 'laravel/homestead' (v0) for 'virtualbox'!
- 检查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
上面的步骤都完了就可以进行下面的工作了.
运行
bash init.sh
来创建Homestead的配置文件Homestead.yaml
,默认这个文件会被创建在~/.homestead
目录下.选读内容:
Homestead.yaml文件里有很多配置:
provider
表示你的虚拟主机是哪种,virtualbox
,vmware_fusion
, orvmware_workstation
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"
Configuring Shared Folders
Homestead.yaml
配置文件里的folders
属性列出了所有你想共享给虚拟机的文件夹,map
和to
分别对应的文件夹是同步的,你可以根据需哟配置更多的共享文件夹,map
对应的是本机,to
对应的是虚拟机里的文件夹,如果要支持 NFS,可以加一行type:"nfs"
在to
那一行的后面:folders: - map: ~/Codeto: /home/vagrant/Code
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端口.
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
- Linxu & Mac OS:
配置完毕你的
Homestead.yaml
可以用vagrant启动它了.vagrant up
,如果想要销毁这个虚拟机,可以运行vagrant destroy --force
.--force
的意思是销毁过程中不在征求确认了,也可以简写为-f
- Per Project Installation
你所有的应用最后的配置和box不可能是一样的,每次可能会有些可以重复利用的部分,但你每次都要做,如果你想随同你的项目导出一份Vagrantfile,让其他人收益,少走弯路,你可以这么做:- 直接安装Homestead到你的项目下,然后用Composer
require
一下:composer require laravel/homestead --dev
- 如果你的Homestead已经安装和部署了,可以在项目目录下,用
make
命令来生成:Vagrantfile
和Homestead.yaml
,生成文件一般在你项目根目录.make
命令会自动将sites
和folders
配置指令导入Homestead.yaml
- Mac/Linux 执行:
php vendor/bin/homestead make
- Windows 执行:
vendor\bin\homestead make
- 直接安装Homestead到你的项目下,然后用Composer
最后一句,很好理解,懒得翻了:
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 forhomestead.app
or the domain of your choice.
日常使用 Daily Usage
通过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登录
连接数据库(Connecting To Databases):
Homestead 自带两种数据库:MySQL
和Postgres
,你可以选择本地客户端的方式连接,比如利用Navicat或Sequel Pro,连接地址是127.0.0.1
,连接端口是33060
(MySQL) 或54320
(Postgres).帐号是homestead/secret
注意: 你只能在你的本机上访问数据库,并且虚拟机确实已经用vagrant启动成功添加其他网站(Adding Additional Sites):
添加sites
配置到你的Homestead.yaml
,然后在Homestead目录下运行vagrant provision
. 注意: 一定要vagrant provision
才能让新加的虚拟目录生效~~- 端口(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) 开发环境的部署和设置相关推荐
- odoo8.0+PyCharm4.5开发环境配置
终于把odoo的开发环境配置好,现把相关经验教训做个记录分享: odoo8.0+PyCharm4.5开发环境配置(剑飞花 373500710) 1.最佳兼容搭配包 试过各种组合 GreenOdoo+p ...
- RH850从0搭建Autosar开发环境系列讲解 - 总目录
总目录 大家好,本文章系列主要专注于Davinci工具基于RH850芯片从0构建Autosar开发环境,集成到GreenHills编译,最终在板子中运行代码,中间过程的编译错误处理都会尽可能的清晰展示 ...
- RH850从0搭建Autosar开发环境【1】- 如何创建Davinci Configurator配置工程
文章目录 前言 一.如何开始Davinci Configurator配置? 前言 在开始下面步骤之前,我们需要Vector公司的两个license即:Davinci Developer与Davinci ...
- linux eclipse下qt开发环境搭建,Qt Eclipse开发环境的部署 上篇
关于Qt Eclipse的开F发,将会从不同的环境中区安装部署,分为上.中.篇,三篇文章来讲.Windows,Linux平台下安装使用eclipse + QT4.4.3开发环境,Windows,Li ...
- 如何进行实时频谱分析仪的二次开发——MATLAB、C++、labview开发环境的部署
软件无线电 软件无线电,即软件定义的无线电,是利用现代化软件来控制传统硬件电路的一种无线通信技术.传统的硬件无线电通信设备只是作为无线通信的基本平台,而许多的通信功能则是由软件来实现,这使得设备的通信 ...
- HoloLens开发环境安装部署(基于Unity2018.4/VS2017/MRTK)
HoloLens是微软的MR开发环境,网上有很多部署教程,我这里推一个博主的部署方法,大体上都差不多.用微软的官方平台把UWP程序部署到HoloLens眼镜里. HoloLens开发环境安装部署 一. ...
- 2022 最新 Mac Vim 开发环境的部署与配置
2022 最新 Mac Vim 开发环境的部署与配置 效果图 Vim 插件简介 插件名 描述 pope/vim-fugitive Vim 编辑器中的 Git 包装器插件,它可以让我们在 Vim 编辑器 ...
- VSCode配置python开发环境无法找到自己设置的python编译器
VSCode配置python开发环境无法找到自己设置的python编译器 前言 一. 分别安装VScode和python 二.vscode配置python环境 1.在vscode里安装官方python ...
- 美女讲师教你学Python:开发环境的部署-秦红华-专题视频课程
美女讲师教你学Python:开发环境的部署-456人已学习 课程介绍 Python语法清楚,干净,易读.易维护,是目前流行的编程语言: Python作为一种通用的编程语言,可以应用于各 ...
- windows下搭建hadoop-2.6.0本地idea开发环境
概述 本文记录windows下hadoop本地开发环境的搭建: OS:windows hadoop执行模式:独立模式 安装包结构: Hadoop-2.6.0-Windows.zip- cygwinIn ...
最新文章
- 在window下使用gemsim.models.word2vec.LineSentence加载语料库文件的格式要求
- Android网络课程笔记-----定制通知系统
- 【Apache】指定 某一个URL 并进行 Auth 认证
- 音视频技术开发周刊 | 204
- java基础之ConcurrentHashMap
- android 参数 attrs.xml,使用attrs.xml自定义属性
- android 使用动态的svg资源,在Android中使用SVG作为资源 – victor
- MATLAB案例学习-基于雷达和摄像头的传感器融合
- OpenGL基础42:实例化
- Linux NVMe Driver学习笔记之6:Admin Queue与Blk-mq初始化
- unity中的游戏推出代码
- 用户、角色和权限关系
- python中 使用EVO工具 批量评估里程计 脚本
- java邮件发送 qq与163邮箱互发和qq和163邮箱发送其他邮箱实例
- 最后采用加权求和的方式得到样本的_一种婴幼儿视力自动检测方法与流程
- Vue全家桶学习笔记:Vue Router篇
- 光学基础知识:焦点、弥散圆、景深 焦深
- Redis API String
- PHP程序员及网站设计师职业要求
- 手机电池不耐用怎么办
热门文章
- 空间数据引擎oracle_Oracle-Spatial空间数据库基础
- java中返回怎样返回,java-如何显示方法是否可以返回nu
- mysql隐式锁_innodB的隐式锁
- 兔子的烦恼(一)【NYOJ】
- 策略模式java8_Java设计模式:策略模式
- 【LA 2572】Viva Confetti(圆与圆弧覆盖+精度问题)
- 小米 samba linux,U-BOOT移植准备之(一)Samba服务器
- 华为怎么查看手机温度_华为手机误删照片怎么找回?手机怎么快速制作GIF动图...
- tf.slim构建vgg16和resnet网络实现图像分类,亲测准确率99%
- python while快速写法_从零开始学Python,带你手把手实战之一