阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

通过 Vagrant 搭建虚拟机环境

393次阅读
没有评论

共计 4899 个字符,预计需要花费 13 分钟才能阅读完成。

介绍

Laravel 致力于让 PHP 开发体验更愉快,也包含你的本地开发环境。Vagrant 提供了一个简单、优雅的方式来管理与供应虚拟机。

Laravel Homestead 是一个官方预载的 Vagrant「封装包」,提供你一个美好的开发环境,你不需要在你的本机端安装 PHP、HHVM、网页服务器或任何服务器软件。不用担心搞乱你的系统!Vagrant 封装包可以搞定一切。如果有什么地方出现故障,你可以在几分钟内快速的销毁并重建虚拟机。

Homestead 可以在任何 Windows、Mac 或 Linux 上面运行,里面包含了 Nginx 网页服务器、PHP 5.6、MySQL、Postgres、Redis、Memcached 还有所有你要开发精彩的 Laravel 应用程序所需的软件。

附注: 如果您是 Windows 的用户,您可能需要启用硬件虚拟化(VT-x)。通常需要通过 BIOS 来启用它。

Homestead 目前是构建且测试于 Vagrant 1.7 版本。

内置软件

  • Ubuntu 14.04
  • PHP 5.6
  • HHVM
  • Nginx
  • MySQL
  • Postgres
  • Node (With Bower, Grunt, and Gulp)
  • Redis
  • Memcached
  • Beanstalkd
  • Laravel Envoy
  • Blackfire Profiler

安装与配置

安装 VirtualBox / VMWare 与 Vagrant

在启动你的 Homestead 环境之前,你必须先安装 VirtualBox 和 Vagrant. 两套软件在各平台都有提供易用的可视化安装程序。

VMware

除了 VirtualBox 之外, Homestead 也支持 VMware. 如果使用 VMware 作为 provider, 你需要购买 VMware Fusion / Desktop 以及 VMware Vagrant plug-in. VMware 提供了更快、性能更好的共享文件夹。

增加 Vagrant 封装包

当 VirtualBox / VMware 和 Vagrant 安装完成后,你可以在终端机以下列命令将 ‘laravel/homestead’ 封装包安装进你的 Vagrant 安装程序中。下载封装包会花你一点时间,时间长短将依据你的网络速度决定:

vagrant box add laravel/homestead

如果这个命令失败了, 你可能安装的是一个老版本的 Vagrant 需要指定一个完整的 URL:

vagrant box add laravel/homestead https://atlas.hashicorp.com/laravel/boxes/homestead

安装 Homestead

你可以简单地通过手动复制资源库的方式来安装 Homestead。将资源库复制至你的 “home” 目录中的 Homestead 文件夹,如此一来 Homestead 封装包将能提供主机服务给你所有的 Laravel(及 PHP)应用:

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

一旦你克隆完 Homestead 仓库,从 Homestead 目录中执行 bash init.sh 命令来创建 Homestead.yaml 配置文件:

bash init.sh

Homestead.yaml 文件,将会被放置在你的 ~/.homestead 目录中。

配置你的 Provider

Homestead.yaml 文件中的 provider 键表明需要使用的 Vagrant prodiver:virtualboxvmware_fusion (Mac OS X)、或者 vmware_workstation (Windows),你可以根据自己的喜好设定 provider。

provider: virtualbox

配置你的 SSH 密钥

然后你需要编辑 Homestead.yaml。可以在文件中配置你的 SSH 公开密钥,以及主要机器与 Homestead 虚拟机之间的共享目录。

如果没有 SSH 密钥的话,在 Mac 和 Linux 下,你可以利用下面的命令来创建一个 SSH 密钥组:

ssh-keygen -t rsa -C "you@homestead"

在 Windows 下,你需要安装 Git 并且使用包含在 Git 里的 Git Bash 来执行上述的命令。另外你也可以使用 PuTTY 和 PuTTYgen。

一旦你创建了一个 SSH 密钥,记得在你的 Homestead.yaml 文件中的 authorize 属性指明密钥路径。

配置你的共享文件夹

Homestead.yaml 文件中的 folders 属性列出了所有你想在 Homestead 环境共享的文件夹列表。这些文件夹中的文件若有变动,他们将会同步在你的本机与 Homestead 环境里。你可以将你需要的共享文件夹都配置进去。

如果要开启 NFS,只需要在 folders 中加入一个标识:

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

配置你的 Nginx 站点

对 Nginx 不熟悉?没关系。sites 属性允许你简单的对应一个 域名 到一个 homestead 环境中的目录。一个例子的站点被配置在 Homestead.yaml 文件中。同样的,你可以加任何你需要的站点到你的 Homestead 环境中。Homestead 可以为你每个进行中的 Laravel 应用提供方便的虚拟化环境。

你可以通过配置 hhvm 属性为 true 来让虚拟站点支持 HHVM:

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

Each site will be accessible by HTTP via port 8000 and HTTPS via port 44300.

Bash Aliases

如果要增加 Bash aliases 到你的 Homestead 封装包中,只要将内容添加到 ~/.homestead 目录最上层的 aliases 文件中即可。

启动 Vagrant 封装包

当你根据你的喜好编辑完 Homestead.yaml 后,在终端机里进入你的 Homestead 文件夹并执行 vagrant up 命令。

Vagrant 会将虚拟机开机,并且自动配置你的共享目录和 Nginx 站点。如果要移除虚拟机,可以使用 vagrant destroy --force 命令。

为了你的 Nginx 站点,别忘记在你的机器的 hosts 文件将「域名」加进去。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

继续读下去,你会学到如何连接到数据库!

常见用法

通过 SSH 连接

要通过 SSH 连接上您的 Homestead 环境,在终端机里进入你的 Homestead 目录并执行 vagrant ssh 命令。

因为你可能会经常需要通过 SSH 进入你的 Homestead 虚拟机,可以考虑在你的主要机器上创建一个 ” 别名 ” 用来快速 SSH 进入 Homestead 虚拟机:

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

一旦你创建了这个别名,无论你在主要机器的哪个目录,都可以简单地使用 “vm” 命令来通过 SSH 进入你的 Homestead 虚拟机。

你也可以在 Homestead 目录使用 vagrant ssh 命令。

连接数据库

Homestead 封装包中,已经预了 MySQL 与 Postgres 两种数据库。为了更简便,Laravel 的 local 数据库配置已经默认将其配置完成。

如果想要从本机上通过 Navicat 或者 Sequel Pro 连接 MySQL 或者 Postgres 数据库,你可以连接 127.0.0.1 的端口 33060 (MySQL) 或 54320 (Postgres)。而帐号密码分别是 homestead / secret

附注: 从本机端你应该只能使用这些非标准的连接端口来连接数据库。因为当 Laravel 运行在虚拟机时,在 Laravel 的数据库配置文件中依然是配置使用默认的 3306 及 5432 连接端口。

增加更多的站点

在 Homestead 环境上架且运行后,你可能会需要为 Laravel 应用程序增加更多的 Nginx 站点。你可以在单一个 Homestead 环境中运行非常多 Laravel 安装程序。有两种方式可以达成:第一种,在 Homestead.yaml 文件中增加站点然后在 Homestead 目录中执行 vagrant provision

Note: 这个操作是具有破坏性的,当执行 provision 命令,你现有的数据库会被摧毁并重新创建。

另外,也可以使用存放在 Homestead 环境中的 serve 命令文件。要使用 serve 命令文件,请先 SSH 进入 Homestead 环境中,并执行下列命令:

serve domain.app /home/vagrant/Code/path/to/public/directory 80

附注: 在执行 serve 命令过后,别忘记将新的站点加进本机的 hosts 文件中。

连接端口

以下的端口将会被转发至 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 box,只需要指定协议:

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

Blackfire Profiler

Blackfire Profiler 是由 SensioLabs 创建的一个分析工具,它会自动的收集代码执行期间的相关数据,比如 RAM, CPU time, 和 disk I/O. 如果你使用 Homestead,那么使用这个分析工具会变得非常简单。

blackfire 所需的包已经安装在 Homestead box 中,你只需要在 Homestead.yaml 文件中设置 Server ID 和 token:

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

当你设定完 Blackfire 的凭证信息,使用 vagrant provision 令配置生效。当然,你也需要通过阅读 Blackfire 文档 来学习如何在你的浏览器中安装 Blackfire 扩展。

如何使用 vagrant 在虚拟机安装 Hadoop 集群 http://www.linuxidc.com/Linux/2013-04/82750.htm

Vagrant 中高效的 Puppet 模块管理 http://www.linuxidc.com/Linux/2014-05/101873.htm

使用 Vagrant 和 Fabric 用于集成测试 http://www.linuxidc.com/Linux/2014-07/104113.htm

使用 Vagrant 搭建开发环境 http://www.linuxidc.com/Linux/2014-07/104116.htm

Windows 下配置 Vagrant 环境 http://www.linuxidc.com/Linux/2014-07/104115.htm

使用 Vagrant 搭建开发环境 http://www.linuxidc.com/Linux/2014-07/104116.htm

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-08/121985.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4899字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7960911
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025 年 11 月 28 日 -Cloudflare 史诗级事故: 一次配置失误,引爆全球宕机 前言 继今...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号AI知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率

国产开源公众号 AI 知识库 Agent:突破未认证号限制,一键搞定自动回复,重构运营效率 大家好,我是星哥,...
星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛NAS-11:咪咕视频订阅部署全攻略

星哥带你玩飞牛 NAS-11:咪咕视频订阅部署全攻略 前言 在家庭影音系统里,NAS 不仅是存储中心,更是内容...
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...