* homestead这个是laravel框架提供的开包即用的开发环境,目前最新的 larvavel 5.3框架,开包环境是预装软件 Ubuntu 16.04 Git PHP 7.0 HHVM Xdebug Nginx MySQL MariaDB SQLite 3 Postgres Composer Node(With PM2, Bower, Grunt, and Gulp)Redis Memcached Beanstalkd 具体的请看文档:
* 个人理解:vagrant和docker类似,都是提供一套虚拟化的解决方案。
[TOC]
###安装
####前提条件
* 需要安装virtualBox和vagrant软件。
* 输入以下命令,添加 Homestead Vagrant 盒子
``` vagrant box add laravel/homestead
```
* 通过 GitHub 安装 Homestead
你还可以通过克隆仓库代码来实现 Homestead 安装。将仓库克隆到用户目录下的 Homestead 目录,这样 Homestead 盒子就可以作为所有其他 Laravel 项目的主机:
~~~
cd ~
git clone https://github.com/laravel/homestead.git Homestead
~~~
克隆完成后,在 Homestead 目录下运行 bash init.sh 命令来创建 Homestead.yaml 配置文件,Homestead.yaml 配置文件文件 位于 ~/.homestead 目录:
~~~
bash init.sh
~~~
###使用说明
* 配置同步文件夹,讲电脑的文件夹与Homestead中的文件夹对应。可以理解为windows的快捷方式或者C语言中的指针。
~~~
folders:
- map: ~/laravels
to: /home/vagrant/laravels
~~~
* 配置 Nginx 站点
map为站点名称,to对应的网站启动目录,多站点参考下属设置即可。数据库的设置与他类似。
~~~
sites:
- map: homestead.app
to: /home/vagrant/laravels/Laravel/public
- map: blog.app
to: /home/vagrant/laravels/blog/public
~~~
* 添加站点
* 一种为直接参考上述例子,添加新的站点。然后执行命令 vagrant provision 即可,如果已经在运行的盒子。执行命令 vagrant reload --provision即可。**请注意,请注意,请注意 这个操作是具有破坏性的,会将数据库销毁重建。**
* 动态添加站点。在 homestead 环境里,输入命令 serve
* ssh登陆
~~~
vagrant ssh
~~~
###错误集锦
* found a tab character that violate intendation while scanning a plain scalar at line 18 column 11 (Psych::SyntaxError)
**这种错误,是配置文件homestead.ymal 中包含tab键,请将tab空格转换为空格即可。vim中可用命令 :\s\t**
* 还有一种常见错误,就是国情所致。GFW导致的。
**解决办法**
* FQ 方法:SS和lantern
* 各种包管理器请将地址切换为国内源
npm切换为[淘宝NPM国内源](http://npm.taobao.org):方法:npm install -g cnpm --registry=https://registry.npm.taobao.org
之后使用cnpm 即可代替npm执行即可
composer安装源替换为[国内镜像源(http://pkg.phpcomposer.com/)](http://pkg.phpcomposer.com/);方法:composer config repo.packagist composer https://packagist.phpcomposer.com
**这种配置下可能出现镜像未同步。包无法安装的情况,可等待国内镜像更新后重试或者FQ**
- 说明
- PHP
- 数组操作
- file操作的常用方法
- PHP字符串输出之Heredoc说明
- require(_once)和include(_once)的理解
- file_get_contents和curl
- PHP的json问题
- PHP提高效率的几点
- PHP/异步任务队列处理
- HTTP_AUTHORIZATION
- php中 intval和string的一些转换问题
- 变量在 PHP7 内部的实现
- 关于exit和die
- php获取微秒
- php高性能日志扩展seaslog的使用
- Curl使用说明
- echo的数据自动增加换行或其他
- php-memcache
- 根据18位数校验前17位身份证号是否正确
- 将一个老项目升级到php7
- ord获取ASCII码
- 框架
- thinkphp5
- THINKPHP5常见问题
- Laravel5学习笔记
- homestead总结
- easywechat学习笔记
- wechat公众号
- 获取用户信息的实现方式
- 前端
- HTML
- CSS
- 伪类和伪元素的区别
- Bootstrap使用
- Javascript
- Javascript梳理总结
- 巧用history.pushState无刷新改变页面url
- jquery日期时间选择器组件datepicker的使用说明
- 基本操作
- 比较
- 后端/Nodejs
- 多nodejs版本管理
- 小功能
- URLAPI
- 二维码转换
- 地图URL直接实现导航
- 字体生成
- 网址长短互转
- 百度短网址
- Fiddle模拟测试百度短网址api
- Composer备忘录
- composer安装配置
- Composer 错误集锦
- Composer使用自己的库
- GIT简单操作命令
- Git记住密码
- git 显示错误详情和请求信息
- 工具软件
- PHPStorm
- VI简单操作命令
- ATOM
- browser提示shockwave false加载失败
- Cmder使用说明
- Windows软件总结
- 浏览器插件
- 支付
- 微信支付
- 支付宝
- 银联支付
- Ping++
- Beecloud支付
- Map
- 百度地图BaiduMap
- RESTfulAPI设计实践
- HTTP
- GET/POST 的请求大小
- 常见状态码说明
- Ubuntu
- 命令行中的>>和>的区别
- 笔记
- 正则
- Hybrid的使用记录
- H5+和mui
- HTML5+和mui使用
- APP开发过程中蓝牙问题总结
- Cordova的使用
- 服务器
- URL重写
- 目录限制访问
- 软链接和硬链接
- 票务系统对接资料和总结
- qunar去哪儿门票对接
- qunar对接case介绍及错误代码
- tuniu门票对接总结
- 途牛小结
- 联合票务对接途牛文档说明
- 途牛签名流程
- meituan美团
- 大众点评
- 联合票务
- 安卓使用技巧
- 安卓清理电池信息
- 安卓6.0使用时发现的问题
- 数据库
- 数据库mysql
- 分页数据优化
- 手机号用不到索引的问题分析
- mysql配置的localhost和127.0.0.1的区别
- mysql5.5升级mysql5.7
- 数据库MongoDB
- Redis使用说明
- phpredis使用说明
- 环境变量
- Twig使用
- 经典的文章
- 用超人的故事讲解 IoC(控制反转) 和 DI(依赖注入)