1

Laravel Homestead

1

安装:

1

下载:

http://www.vagrantup.com/downloads.html

1

配置:

1

1

测试:

1

1

*********************************************************************************************************************

1、简介

Laravel 致力于让整个 PHP 开发过程变得让人愉悦,包括本地开发环境,为此官方为我们提供了一整套本地开发环境 —— Laravel Homestead

Laravel Homestead 是一个打包好各种 Laravel 开发所需要的工具及环境的 Vagrant 盒子(Vagrant 提供了一个便捷的方式来管理和设置虚拟机),该盒子为我们提供了优秀的开发环境,有了它,我们不再需要在本地环境安装 PHP、HHVM、Web服务器以及其它工具软件,我们也完全不用再担心误操作搞乱操作系统 —— 因为 Vagrant 盒子是一次性的,如果出现错误,可以在数分钟内销毁并重新创建该 Vagrant 盒子!

Homestead可以运行在 Windows、Mac 以及 Linux 系统上,其中已经安装好了Nginx、PHP7.0、MySQL、Postgres、Redis、Memcached、Node以及很多其它开发 Laravel 应用所需要的东西。

注:如果你使用的是Windows,需要开启系统的硬件虚拟化(VT-x),这通常可以通过BIOS来开启。

预装软件

  • Ubuntu 14.04
  • Git
  • PHP 7.0
  • HHVM
  • Xdebug
  • Nginx
  • MySQL
  • SQLite 3
  • Postgres
  • Composer
  • Node(With PM2, Bower, Grunt, and Gulp)
  • Redis
  • Memcached
  • Beanstalkd
  • Blackfire Profiler

2、安装 & 设置

首次安装

在使用 Homestead 之前,需要先安装 Virtual Box/VMWareVagrant,所有这些软件包都为常用操作系统提供了一个便于使用的可视化安装器。

安装 Homestead Vagrant 盒子

VirtualBox/VMWare 和 Vagrant 安装好了之后,在终端中使用能如下命令将 laravel/homesterad 添加到 Vagrant 中。下载该盒子将会花费一些时间,时间长短主要取决于你的网络连接速度:

vagrant box add laravel/homestead

如果上述命令执行失败,可以使用 Vagrant 老版本的方式,这需要输入完整的 URL:

vagrant box add laravel/homestead https://atlas.hashicorp.com/laravel/boxes/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

设置 Provider

Homestead.yaml 文件中的 provider 键表示使用哪个 Vagrant 提供者:virtualboxvmware_fushion 或者 vmware_workstation,你可以将其设置为自己喜欢的提供者:

provider: virtualbox

配置共享文件夹

Homestead.yaml 文件中的 folders 属性列出了所有主机和 Homestead 虚拟机共享的文件夹,一旦这些目录中的文件有了修改,将会在本地和 Homestead 虚拟机之间保持同步,如果有需要的话,你可以配置多个共享文件夹(一般一个就够了):

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

如果要开启 NFS,只需简单添加一个标识到同步文件夹配置:

folders:
- map: ~/Code
  to: /home/vagrant/Code
type: "nfs"

配置 Nginx 站点

对 Nginx 不熟?没问题,通过 sites 属性你可以方便地将“域名”映射到 Homestead 虚拟机的指定目录,Homestead.yaml 中默认已经配置了一个示例站点。和共享文件夹一样,你可以配置多个站点:

sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public

你还可以通过设置 hhvmtrue 让所有的 Homestead 站点使用 HHVM:

sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public
hhvm: true

默认情况下,每个站点都可以通过 HTTP(端口号:8000)和 HTTPS(端口号:44300)进行访问。

Hosts文件

不要忘记把 Nginx 站点配置中的域名添加到本地机器上的 hosts 文件中,该文件会将对本地域名的请求重定向到 Homestead 虚拟机,在 Mac 或 Linux上,该文件位于 /etc/hosts,在 Windows 上,位于 C:\Windows\System32\drivers\etc\hosts,添加方式如下:

192.168.10.10 homestead.app

确保 IP 地址和你的 Homestead.yaml 文件中列出的一致,一旦你将域名放置到 hosts 文件,就可以在浏览器中通过该域名访问站点了!

http://homestead.app

启动 Vagrant Box

配置好 Homestead.yaml 文件后,在 Homestead 目录下运行 vagrant up 命令,Vagrant 将会启动虚拟机并自动配置共享文件夹以及 Nginx 站点。

销毁该机器,可以使用 vagrant destroy –force

为指定项目安装 Homestead

全局安装 Homestead 将会使每个项目共享同一个 Homestead 盒子,你还可以为每个项目单独安装 Homestead,这样就会在该项目下创建 Vagrantfile,允许其他人在该项目中执行 vagrant up 命令,在指定项目根目录下使用 Composer 执行安装命令如下:

composer require laravel/homestead --dev

这样就在项目中安装了 Homestead。Homestead 安装完成后,使用 make 命令生成 VagrantfileHomestead.yaml 文件,make 命令将会自动配置 Homestead.yaml 中的 sitesfolders 属性。

Mac/Linux:

php vendor/bin/homestead make

Windows:

vendor\bin\homestead make

接下来,在终端中运行 vagrant up 命令然后在浏览器中通过 http://homestead.app 访问站点。不要忘记在 /etc/hosts 文件中添加域名 homestead.app

3、日常使用

全局访问 Homestead

有时候你想要在文件系统的任意位置运行 vagrant up 启动 Homestead 虚拟机,要实现这一目的需要将 Homestead 安装目录添加到系统路径。这样你就可以在系统的任意位置运行 homesteadhomestead ssh 来启动/登录虚拟机。

通过 SSH 连接

你可以在 Homestead 目录下通过运行 vagrant ssh 以 SSH 方式连接到虚拟机,但是如果你需要以更平滑的方式连接到 Homestead,可以为主机添加一个别名来快速连接到 Homestead 盒子,创建完别名后,可以使用 vm 命令从任何地方以 SSH 方式连接到 Homestead 虚拟机:

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

连接到数据库

默认已经在 Homestead 虚拟机中为 MySQL 和 Postgres 数据库做好了配置,更方便的是,Laravel的 .env 还为连接 Homestead 数据库做好了配置。

想要通过本地的 Navicat 或 Sequel Pro 连接到 Homestead 上的 MySQL 或 Postgres 数据库,可以通过新建连接来实现,主机 IP 都是 127.0.0.1,对于 MySQL 而言,端口号是33060,对 Postgres 而言,端口号是54320,用户名/密码是 homestead/secret

注意:只有从本地连接 Homestead 的数据库时才能使用这些非标准的端口,在 Homestead 虚拟机中还是应该使用默认的 3306 和 5432 端口进行数据库连接配置。

添加更多站点

Homestead 虚拟机在运行时,可能需要添加额外 Laravel 应用到 Nginx 站点。如果是在单个 Homestead 环境中运行多个 Laravel 应用,添加站点很简单,只需将站点添加到 Homestead.yaml 文件,然后在 Homestead 目录中运行 vagrant provision 命令即可。

配置 Cron 调度任务

Laravel 提供了很方便的方式来调度 Cron 任务:只需每分钟调度运行一次 Artisan 命令 schedule:run 即可。schedule:run 会检查定义在 App\Console\Kernel 类中定义的调度任务并判断运行哪些任务。

如果想要为某个 Homestead 站点运行 schedule:run 命令,需要在定义站点时设置 scheduletrue

sites:
- map: homestead.app
to: /home/vagrant/Code/Laravel/public
schedule: true

该站点的 Cron 任务会被定义在虚拟机的 /etc/cron.d 目录下。

端口转发配置

默认情况下,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

转发更多端口

如果你想要为 Vagrant 盒子添加更多端口转发,做如下转发协议设置即可:

ports:
- send: 93000
to: 9300
- send: 7777
to: 777
protocol: udp

4、使用 Blackfire Profiler 进行性能分析

SensioLabs 开发的 Blackfire Profiler 能自动收集代码执行数据,比如内存、CPU 时间、硬盘 I/O 等,Homestead 使得在应用中使用该性能分析器变得轻而易举。

Blackfire Profiler 需要的软件包已经预安装到 Homestead 盒子,你只需要在 Homestead.yaml 文件中设置 Blackfire Server ID 和 token:

blackfire:
- id: your-server-id
token: your-server-token
client-id: your-client-id
client-token: your-client-token

配置好 Blackfire 的凭证之后,在 Homestead 目录下使用 vagrant provision 重新启动 Homestead。在此之前,确保你已经查看过 Blackfire 文档了解了如何在浏览器安装相应的 Blackfire 扩展。

1

1

http://www.vagrantup.com/downloads.html

About Vagrant

Vagrant is a tool for building complete development environments. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases development/production parity, and makes the "works on my machine" excuse a relic of the past.

Vagrant was started in January 2010 by Mitchell Hashimoto. For almost three years, Vagrant was a side-project for Mitchell, a project that he worked on in his free hours after his full-time job. During this time, Vagrant grew to be trusted and used by a range of individuals to entire development teams in large companies.

In November 2012, HashiCorp was formed by Mitchell to back the development of Vagrant full-time. HashiCorp builds commercial additions and provides professional support and training for Vagrant.

Vagrant remains and always will be a liberally licensed open source project. Each release of Vagrant is the work of hundreds of individuals' contributions to the open source project.

https://hashicorp.com/

HashiCorp

Application delivery done right.

Develop and deploy applications across large teams and global infrastructure. HashiCorp solves development, operations, and security challenges at scale so organizations can focus on business-critical tasks.

1

1

1

xxxxxxxxxxxx

xxxxxxxxxxxxxxxxxx

xxxxxxxxxxxxxxxxxxxxxx

Laravel Homestead 安装 使用教程详解!的更多相关文章

  1. 【Android Studio安装部署系列】三十二、Android模拟器Genymotion安装使用教程详解

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 一.注册\登录 打开Genymotion官网,https://www.genymotion.com/ ,首先点击右上角的Sign in进行 ...

  2. u盘安装系统教程详解

    一.准备阶段 提前准备一个至少1G或以上的u盘,方便好用. 1.制作u盘启动工具 (1)工具下载,推荐IT天空的优启通 下载地址:https://www.itiankong.net/thread-37 ...

  3. Android模拟器Genymotion安装使用教程详解

    一.注册\登录 打开Genymotion官网,https://www.genymotion.com/ ,首先点击右上角的Sign in进行登录操作.如何登录就不细讲了,下面讲一下如何注册(备注:注册按 ...

  4. Windows 7/8/10 系统下Laravel框架的开发环境安装及部署详解(Vagrant + Homestead)

    注意! laravel/homestead box项目地址已经不再是原来的 https://atlas.hashicorp.com/laravel/boxes/homestead 而已经变更成 htt ...

  5. legend3---Windows 7/8/10 系统下Laravel框架的开发环境安装及部署详解(Vagrant + Homestead)

    legend3---Windows 7/8/10 系统下Laravel框架的开发环境安装及部署详解(Vagrant + Homestead) 一.总结 一句话总结: 1.安装的话就是下载好git,va ...

  6. webpack安装配置使用教程详解

    webpack安装配置使用教程详解 www.111cn.net 更新:2015-09-01 编辑:swteen 来源:转载 本文章来为各位详细的介绍一下关于webpack安装配置使用教程吧,这篇文章对 ...

  7. Ubuntu下安装JDK图文教程详解 jdk-java6-30 .bin 的处理方法

    Ubuntu下安装JDK图文教程详解 jdk-java6-30 .bin 的处理方法: https://blog.csdn.net/mingjie1212/article/details/485250 ...

  8. windows上安装Anaconda和python的教程详解

    一提到数字图像处理编程,可能大多数人就会想到matlab,但matlab也有自身的缺点: 1.不开源,价格贵 2.软件容量大.一般3G以上,高版本甚至达5G以上. 3.只能做研究,不易转化成软件. 因 ...

  9. CentOS7编译安装php7.1配置教程详解

    这篇文章主要介绍CentOS7编译安装php7.1的过程和配置详解,亲测 ,需要的朋友可以参考. 1.首先安装依赖包: yum install libxml2 libxml2-devel openss ...

随机推荐

  1. ES6在工作中会用到的核心知识点讲解

    一.var, let, const 谈到ES6,估计大家首先肯定会想到var,let,const 咱就先谈谈这三者的区别 var a = 3; { var a = 4; } console.log(a ...

  2. 前端面试之CSS常用的选择器!

    前端面试之CSS常用的选择器! 标签选择器 <style> /* <!-- 标签选择器 :写上标签名 -->*/ p { color: green; } div { color ...

  3. 关于MongoDB的简单理解(二)--Java篇

    一.声明 本文依赖于 MongoDB JVM DRIVERS 4.1 版本编写. 本文案例依赖于 Maven 项目管理工具. 二.本文主要讲解哪些内容? 如何连接到MongoDB 通过TLS/SSL连 ...

  4. Java并发包源码学习系列:阻塞队列实现之SynchronousQueue源码解析

    目录 SynchronousQueue概述 使用案例 类图结构 put与take方法 void put(E e) E take() Transfer 公平模式TransferQueue QNode t ...

  5. XCTF-黑客精神

    杂言 前段时间键盘坏了,电脑硬盘也坏了,买东西装系统再偷个懒放了一周左右假.期间学习巩固了一下安卓开发的知识.用了固态才知道什么叫纵享丝滑,当初就不该省这个钱. 前期工作 查壳,无.运行,点击按钮就跳 ...

  6. Spring Boot 两种多数据源配置:JdbcTemplate、Spring-data-jpa

    多数据源配置 JdbcTemplate支持 Spring-data-jpa支持 多数据源配置 创建一个Spring配置类,定义两个DataSource用来读取application.propertie ...

  7. 读取固定ResourceBundle

    private static ResourceBundle ssoBundle = ResourceBundle.getBundle("CASHHSSO");//默认根目录 pub ...

  8. HDU-6881 Tree Cutting (HDU多校D10T5 点分治)

    HDU-6881 Tree Cutting 题意 \(n\) 个点的一棵树,要求删除尽量少的点,使得删点之后还是一棵树,并且直径不超过 \(k\),求删除点的数量 分析 补题之前的一些错误想法: 尝试 ...

  9. 2019 Multi-University Training Contest 5——permutation 2

    传送门 题意: t组输入,之后每组例子有三个数n.x.y代表在一个以x为开头y为结尾的长为n的数组里面,开头和结尾数据已经固定,让你从1--n中找其他数据填入数组中 (每个数据不能重复使用),使它满足 ...

  10. poj1180 Batch Scheduling

    Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3590   Accepted: 1654 Description There ...