Homestead 最佳本地开发环境

Homestead Win

Laravel 致力于让整个 PHP 开发体验变得愉快, 包括你的本地开发环境。 Vagrant 提供了一种简单,优雅的方式来管理和配置虚拟机。
Laravel Homestead 是一个官方预封装的 Vagrant box,它为你提供了一个完美的开发环境,而无需在本地机器安装 PHP 、Web 服务器和其他服务器软件。不用担心会搞乱你的操作系统!Vagrant boxes 是一次性的。如果出现问题,你可以在几分钟内销毁并创建 Box!
Homestead 可以运行在任何 Windows,Mac,或 Linux 系统,它包括了 Nginx web 服务器, PHP 7.2,PHP 7.1,PHP 7.0,PHP 5.6, MySQL,PostgreSQL,Redis,Memcached, Node,以及开发 Laravel 应用程序所需要的东西。

以下代码都是在windows 使用 git for windows 命令行工具操作的

VirtualBox

https://www.virtualbox.org/
VirtualBox 是 Oracle 公司的开源虚拟机软件。VirtualBox 号称是最强的免费虚拟机软件,它不仅功能齐全,而且性能也很优异!VirtualBox 支持大部分流行的系统,如:Mac, Windows, Linux 等。

Vagrant

Vagrant by HashiCorp
Vagrant 是用来管理虚拟机的工具,支持当前主流的虚拟机系统如 VirtualBox、VMware、AWS 等。Vagrant 的主要作用是提供一个可配置、可移植和复用的软件环境。Vagrant 让你通过编写一个 Vagrantfile 文件来控制虚拟机的启动、虚拟机网络环境的配置、虚拟机与主机间的文件共享,以及启动后自动执行一些配置脚本,如自动执行一个 Shell Script 来安装一些必备的开发工具,如安装配置MySQL、PHP,甚至是自动配置 Nginx 站点。这意味着,在一个多人开发的项目中,你只需要同步 Vagrantfile 文件,就可以保证参与项目的每个人各自的机器上拥有一致的开发环境。
可以在下面网站上搜索需要的vagrant box
https://app.vagrantup.com/boxes/search

卸载程序和依赖

在下载的安装包里有一个删除工具,可以直播删除 Vagrant软件。

也可以使用下面命令删除

# 删除软件

rm -rf /opt/vagrant

rm -f /usr/local/bin/vagrant

sudo pkgutil --forget com.vagrant.vagrant

#删除用户数据

rm -rf ~/.vagrant

rm -rf ~/.vagrant.d

Homestead box

Homestead是一个官方预封装的 Vagrant box,它为你提供了一个完美的开发环境,而无需在本地机器安装 PHP 、Web 服务器和其他服务器软件。不用担心会搞乱你的操作系统!Vagrant boxes 是一次性的。如果出现问题,你可以在几分钟内销毁并创建 Box!

内置软件:Ubuntu 16.04、Git、PHP 7.2、PHP 7.1、Nginx、Apache (Optional)、MySQL ……

在线安装 Homestead Vagrant Box,这样安装下载会非常慢,可以使用第二种本地文件安装方式

vagrant box add laravel/homestead

本地文件安装
先下载离线 homestead.box https://pan.baidu.com/s/1-obdVwlryRdtVV-8-iD56A 然后执行

vagrant box add laravel/homestead d:/code/homestead.box

安装的box 镜像储存的位置:以我电脑为例在 ~/.vagrant.d/boxes

安装 Homestead 管理脚本

#clone管理脚本

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

cd ~/Homestead

#因为master不稳定所以切到稳定tag

git checkout v7.3.0

#创建 Homestead.yaml 配置文件

./init.bat

如果是本地安装的 homestead.box 版本为0,所以需要修改下面步骤生成的配置文件 /Users/xj/Homestead/scripts/homestead.rb 以下内容

config.vm.box_version = settings["version"] ||= ">= 0"

SSH 秘钥登录

用于实现 SSH 免密码登录
修改 Homestead.yaml 文件以下内容:

keys:

- ~/.ssh/id_rsa

- ~/.ssh/id_rsa.pub

生成 key

ssh-keygen -t rsa -C "2300071698@qq.com"

#后面一真按enter键,设置密码

配置共享文件夹

Homestead.yaml 文件的 folders 属性里列出所有与 Homestead 环境共享的文件夹。这些文件夹中的文件若有变更,它们会保持本地机器与 Homestead 环境之间同步。你可以根据需要配置多个共享文件夹:

folders:

- map: d:/code

to: /home/vagrant/Code

# map 对应的是我们本机的文件夹

* to 对应的是 Homestead 上的文件夹

显示文件列表

在开发环境下我们希望在浏览器中显示文件列表

vim /etc/nginx/nginx.conf

添加

http {

...

autoindex on; # 显示文件列表

...

}

vagrant命令

#启动 如果加上 --provision 选项那么添加的新站点会发布到虚拟机上。

cd ~/Homestead && vagrant up

#关闭

vagrant halt

#通过 SSH 登录 vagrant(需要先启动 vagrant)

vagrant ssh

#查看目前安装的box列表

vagrant box list

#删除box镜像

vagrant box remove laravel/homestead

#删除指定版本

vagrant box remove laravel/homestead --box-version 6.4.0

#查看当前 Homestead 虚拟机的状态。

vagrant status

通过 SSH 连接

这样就可以登录的 homestead 虚拟主机了,此地可以查看上面定义的本地目录与虚拟机目录同步的情况

vagrant ssh

数据库

  • 要从主机的数据库客户端连接到 MySQL,就连接到 127.0.0.1和端口 33060 (MySQL) 。账号密码分别是 homestead/secret。
  • PHP程序连接(虚拟机中连接)端口为 3306

全局命令

Git for Windows环境中使用

如果我们想在任何目录都可以执行 vagrant 命令,需要进行以下设置
修改 ~/.bash_profile 文件内容,这种设置只在 git for windows 软件中使用

function homestead() {

( cd ~/Homestead && vagrant $* )

}

这样我们就可以使用 homestead up 等方式执行了。

设置Windows全局命令

@echo off

set cwd=%cd%

set homesteadVagrant=C:\Users\xj\Homestead

cd /d %homesteadVagrant% && vagrant %*

cd /d %cwd%

set cwd=

set homesteadVagrant=

你需要将脚本中实例路径 C:\Homestead 调整为 Homestead 实际安装路径。创建文件之后,添加文件路径到 PATH,这样你就可以在系统的任意位置运行 homestead up 或 homestead ssh 命令了。

如果想让计算机启动时执行 homestead ,在开始菜单->所有程序->启动 文件夹中设置 homestead.bat内容如下。

homestead up

开机自启

在 开始菜单>启动 文件夹中创建 homestead.bat 文件内容如下

homestead up

要在360或腾讯电脑管家中的启动项中不要禁用。

响应缓慢

解决WINDOS系统下Homestead运行缓慢的问题

一定要先备份

首先,命令行进入 Homestead 启动 vagrant

> cd ~/Homestead && vagrant up

然后运行安装命令(如果下载失败可能被墙了)

$ vagrant plugin install vagrant-winnfsd

修改文件1:homestead/scripts/homestead.rb

查找此段代码(可能略有不同),替换为以下内容

if settings.include? 'folders'

settings["folders"].sort! { |a,b| a["map"].length <=> b["map"].length }

settings["folders"].each do |folder|

config.vm.synced_folder folder["map"], folder["to"],

id: folder["map"],

:nfs => true,

:mount_options => ['nolock,vers=3,udp,noatime']

end

end

文件2:Homestead.yaml

folders:

- map: ~/Code

to: /home/vagrant/Code

type: nfs

重启 Homestead 使配置文件生效,大功告成。

配置域名

修改 c:/windows/System32/drivers/etc/hosts 文件,因为 hosts 文件不能直接修改,需要先移动到桌面或其他文件夹,然后添加如下内容,添加好后再将文件移动回来。

192.168.10.10  hdcms.hd

上面定义了一个域名 hdcms.hd 指向我们的homestead服务器,在homestead.yaml文件内定义域名解析配置:

sites:

- map: hdcms.hd

to: /home/vagrant/code/hdcms

现在当我们访问 hdcms.hd 时会访问到 homestead服务器下的 /home/vagrant/code/hdcms 目录

Win10安装错误

执行 cd ~/Homestead && vagrant up 开启虚拟机出现以下错误

Timed out while waiting for the machine to boot. This means that

Vagrant was unable to communicate with the guest machine within

the configured ("config.vm.boot_timeout" value) time period.

If you look above, you should be able to see the error(s) that

Vagrant had when attempting to connect to the machine. These errors

are usually good hints as to what may be wrong.

...

进入你的BIOS,然后将virtualization(CPU虚拟化)设置为enable即可

BIOS界面:Configuratio > Intel Virtual Technology > Enabled

在我们每次对 Homestead.yaml 文件进行了更改之后 按照下方命令进行重启

vagrant provision && vagrant reload

Homestead Mac

后盾人 wwwhoudunren.com 作者:向军大叔

Laravel 致力于让整个 PHP 开发体验变得愉快, 包括你的本地开发环境。 Vagrant 提供了一种简单,优雅的方式来管理和配置虚拟机。
Laravel Homestead 是一个官方预封装的 Vagrant box,它为你提供了一个完美的开发环境,而无需在本地机器安装 PHP 、Web 服务器和其他服务器软件。不用担心会搞乱你的操作系统!Vagrant boxes 是一次性的。如果出现问题,你可以在几分钟内销毁并创建 Box!
Homestead 可以运行在任何 Windows,Mac,或 Linux 系统,它包括了 Nginx web 服务器, PHP 7.2,PHP 7.1,PHP 7.0,PHP 5.6, MySQL,PostgreSQL,Redis,Memcached, Node,以及开发 Laravel 应用程序所需要的东西。

VirtualBox

https://www.virtualbox.org/
VirtualBox 是 Oracle 公司的开源虚拟机软件。VirtualBox 号称是最强的免费虚拟机软件,它不仅功能齐全,而且性能也很优异!VirtualBox 支持大部分流行的系统,如:Mac, Windows, Linux 等。

Vagrant

Vagrant by HashiCorp
Vagrant 是用来管理虚拟机的工具,支持当前主流的虚拟机系统如 VirtualBox、VMware、AWS 等。Vagrant 的主要作用是提供一个可配置、可移植和复用的软件环境。Vagrant 让你通过编写一个 Vagrantfile 文件来控制虚拟机的启动、虚拟机网络环境的配置、虚拟机与主机间的文件共享,以及启动后自动执行一些配置脚本,如自动执行一个 Shell Script 来安装一些必备的开发工具,如安装配置MySQL、PHP,甚至是自动配置 Nginx 站点。这意味着,在一个多人开发的项目中,你只需要同步 Vagrantfile 文件,就可以保证参与项目的每个人各自的机器上拥有一致的开发环境。
可以在下面网站上搜索需要的vagrant box
https://app.vagrantup.com/boxes/search

Homestead box

Homestead是一个官方预封装的 Vagrant box,它为你提供了一个完美的开发环境,而无需在本地机器安装 PHP 、Web 服务器和其他服务器软件。不用担心会搞乱你的操作系统!Vagrant boxes 是一次性的。如果出现问题,你可以在几分钟内销毁并创建 Box!

内置软件:Ubuntu 16.04、Git、PHP 7.2、PHP 7.1、Nginx、Apache (Optional)、MySQL ……

在线安装 Homestead Vagrant Box,这样安装下载会非常慢,可以使用第二种本地文件安装方式

vagrant box add laravel/homestead

本地文件安装
先下载 离线 homestead.box ,然后执行

vagrant box add laravel/homestead ~/Desktop/homesteadvirtual5.2.box

安装 Homestead 管理脚本

#clone管理脚本

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

cd Homestead

#因为master不稳定所以切到稳定tag

git checkout v7.7.0

#创建 Homestead.yaml 配置文件

bash init.sh

如果是本地安装的 homestead.box 版本为0,所以需要修改下面步骤生成的配置文件 /Users/xj/Homestead/scripts/homestead.rb 以下内容

config.vm.box_version = settings["version"] ||= ">= 0"

安装的box 镜像储存的位置:以我电脑为例在 /Users/xj/.vagrant.d/boxes

配置共享文件夹

Homestead.yaml 文件的 folders 属性里列出所有与 Homestead 环境共享的文件夹。这些文件夹中的文件若有变更,它们会保持本地机器与 Homestead 环境之间同步。你可以根据需要配置多个共享文件夹:

folders:

- map: ~/Code

to: /home/vagrant/Code

type: nfs

# map 对应的是我们本机的文件夹

# to 对应的是 Homestead 上的文件夹

# type 这样可以提升加载速度

SSH 秘钥登录

用于实现 SSH 免密码登录
修改 Homestead.yaml 文件以下内容:

keys:

- ~/.ssh/id_rsa

- ~/.ssh/id_rsa.pub

生成 key

ssh-keygen -t rsa -C "2300071698@qq.com"

#后面一真按enter键,设置密码

vagrant命令

#启动 如果加上 --provision 选项那么添加的新站点会发布到虚拟机上。

cd ~/Homestead && vagrant up

#关闭

vagrant halt

#通过 SSH 登录 vagrant(需要先启动 vagrant)

vagrant ssh

#查看目前安装的box列表

vagrant box list

#删除box镜像

vagrant box remove laravel/homestead

#删除指定版本

vagrant box remove laravel/homestead --box-version 6.4.0

#查看当前 Homestead 虚拟机的状态。

vagrant status

通过 SSH 连接

这样就可以登录的 homestead 虚拟主机了,此地可以查看上面定义的本地目录与虚拟机目录同步的情况

vagrant ssh

配置域名

修改 /etc/hosts 文件添加如下内容。

192.168.10.10  hdcms.hd

上面定义了一个域名 hdcms.hd 指向我们的homestead服务器,在homestead.yaml文件内定义域名解析配置:

sites:

- map: hdcms.hd

to: /home/vagrant/code/hdcms

现在当我们访问 hdcms.hd 时会访问到 homestead服务器下的 /home/vagrant/code/hdcms 目录

数据库

  • 要从主机的数据库客户端连接到 MySQL,就连接到 127.0.0.1和端口 33060 (MySQL) 。账号密码分别是 homestead/secret。
  • PHP程序连接(虚拟机中连接)端口为 3306

全局命令

如果我们想在任何目录都可以执行 vagrant 命令,需要进行以下设置
修改 ~/.bash_profile 文件,如果安装了 zsh 需要修改 ~/.zshrc文件

function homestead() {

( cd ~/Homestead && vagrant $* )

}

这样我们就可以使用 homestead up 等方式执行了

vagrant up --provision启动虚拟机

vagrant reload –provision  重启虚拟机
vagrant  ssh登录虚拟机 通过 exit 退出

vagrant status 查看虚拟机状态
vagrant halt 关机

laravel之homestead安装教程相关推荐

  1. php模块化安装教程,homestead安装php 扩展 教程

    看到本文,你应该遇到了homestead中php环境没有redis扩展的窘境,网上的教程也不通用,因为那些教程都只是针对单一机器单一版本php环境下的安装方法,而homestead安装了多个php版本 ...

  2. Laravel Homestead安装笔记

    引言: 最近开始学习laravel框架,了解到有个laravel homestead的box,开发起来非常方便快捷,于是就准备开始配置homestead虚拟开发环境了 什么是Homestead 要想学 ...

  3. Laravel Homestead安装和使用

    1.先安装vagrant和 VirtualBox.git.composer 1.1.Virtualbox:https://www.virtualbox.org/ 1.2.Vagrant:https:/ ...

  4. 手把手教你Homestead安装,并填坑!!

    来源:http://www.jianshu.com/p/ae9d1261bbd8 话说作为laravel的开发者,你听说Homestead应该很久了,可是官方推荐的开发环境在国内为什么鲜有人用?我这几 ...

  5. homestead 安装mysql8_homestead安装php redis扩展

    看到本文,你应该遇到了homestead中php环境没有redis扩展的窘境,网上的教程也不通用,因为那些教程都只是针对单一机器单一版本php环境下的安装方法,而homestead安装了多个php版本 ...

  6. homestead php.ini,Homestead安装php扩展的方法

    Homestead安装php7.1的MongoDB扩展的方法 Laravel官方Vagrant镜像Homestead,默认没有安装php的Mongodb扩展,以下是php7.1手动安装mongodb扩 ...

  7. PHP在WPS中的应用,PHP+Laravel的简单应用教程【ajax的使用】,wps的使用教程

    PHP+Laravel的简单应用教程[ajax的使用]PHP·拉弗尔的简单应用教程[阿贾克斯的使用],下面由Laravel框架教程栏目给大家介绍PHP Laravel的简单应用教程[阿贾克斯的使用], ...

  8. Laravel大型项目系列教程(三)之发表文章

    Laravel大型项目系列教程(三)之发表文章 一.前言 上一节教程中完成了用户管理,这节教程将大概完成发表Markdown格式文章并展示的功能. 二.Let's go 1.数据库迁移 文章模块中我们 ...

  9. Laravel大型项目系列教程(一)

    Laravel大型项目系列教程(一) 一.课程概述 1.课程介绍 本教程将使用Laravel完成一个多用户的博客系统,大概会包含如下内容: 路由管理. 用户管理,如用户注册.修改信息.锁定用户等. 文 ...

最新文章

  1. 一文读懂对抗生成网络的3种模型
  2. 别把机器学习和人工智能搞混了!
  3. MongoDB主从+php实现
  4. 设计RandomPool结构
  5. java元婴期(17)----java进阶(spring(1)----spring基本概念IOC)
  6. python代数式的表达方式_关于python字典类型最疯狂的表达方式
  7. weblogic的输出打印日志设置
  8. xshess 要继续使用此程序,您必须应用最新的更新
  9. 从无到有整合SpringMVC-MyBatis项目(1):搭建JavaWeb项目
  10. shell学习之常用bash内置变量
  11. RabbitMQ 学习开发笔记
  12. NBA的字母哥如何拿到2415万美金年薪
  13. HDOJ 1394 Minimum Inversion Number(线段树求逆序数对)
  14. word无法打开请去应用商店_免费PDF转Word技巧
  15. 中国各省份边界json文件
  16. 【SOLIDWORKS学习笔记】工程图基础操作
  17. 射频光纤传输及宽带射频光纤传输系统介绍
  18. SEO到了岌岌可危的时刻吗?
  19. PSSP之特征提取(PSSP protein secondary structure prediction)
  20. Python菜鸟爬虫技巧

热门文章

  1. 7-20 简单计算器 (20 分)————从0学C/浙大pta入门c语言题目
  2. 2019年Python入门书籍推荐
  3. 2分钟学会物联网平台协议解析——实践类
  4. vue项目中没有token进入其他页面会重置到登录页,但是有时候有的页面不需要验证token解决方法
  5. 实现双token无感刷新
  6. 从 0 开始带你成为JVM实战高手
  7. 统计学—假设检验之Z检验,T检验
  8. 腾讯OCR身份证识别信息
  9. VMware:启动Centos7报Entering emergency mode. Exit the shell to continue
  10. 关于mysql varchar类型的长度