windows以及mac本地安装homestead

Homestead Win

后盾人 www.houdunren.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 应用程序所需要的东西。

以下代码都是在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

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,所以需要修改下面步骤生成的配置文件~/Homestead/scripts/homestead.rb (上一步安装的homestead目录里)以下内容

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

SSH 秘钥登录

生成 key

ssh-keygen -t rsa -C "2300071698@qq.com"
#后面一真按enter键,设置密码

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

authorize: ~/.ssh/id_rsa.pub

keys:
    - ~/.ssh/id_rsa

配置共享文件夹

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

folders:
    - map: d:/code
      to: /home/vagrant/Code
# map 对应的是我们本机的文件夹
* to 对应的是 Homestead 上的文件夹

vagrant命令

#启动 如果加上 --provision 选项那么添加的新站点会发布到虚拟机上。
cd ~/Homestead 
vagrant up
#关闭
vagrant halt
#通过 SSH 登录 vagrant(需要先启动 vagrant)
vagrant ssh
#查看目前安装的box列表
vagrant box list
#删除box镜像
vagrant box remove laravel/homestead
#查看当前 Homestead 虚拟机的状态。
vagrant status

Win10安装错误

执行 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

通过 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 使配置文件生效,大功告成。

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
# map 对应的是我们本机的文件夹
* to 对应的是 Homestead 上的文件夹

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
#查看当前 Homestead 虚拟机的状态。
vagrant status

通过 SSH 连接

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

vagrant ssh

数据库

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

全局命令

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

function homestead() {
    ( cd ~/Homestead && vagrant $* )
}

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容

  • 简介 Laravel 致力于让你在 PHP 开发过程中更加轻松愉快,这其中也包括本地开发环境的搭建。 Vagran...
    曼巴童鞋阅读 2,366评论 0 3
  • 话说作为laravel的开发者,你听说Homestead应该很久了,可是官方推荐的开发环境在国内为什么鲜有人用?我...
    学着放下阅读 48,013评论 48 76
  • 认识Y姐确实是机缘巧合,不曾想过会有的相遇相识相交的人却闯入我的生活,偶尔给我喂一些不烫舌的鸡汤,纵使联系不...
    三只水阅读 906评论 0 7
  • 今天开启了我们的哈尔滨之旅。 出发之前,孩子就开始各种想象。飞机快落地的时候,孩子突然问我:“是不是我们一走出飞机...
    李艳Liz阅读 346评论 1 2
  • 台湾是个标语地区。走上街,看见“两个孩子恰恰好”,上了天桥,读到“迎头赶上”,经过电线杆,瞄见“保密防谍,人人...
    切客闹阅读 198评论 0 0