Vagrant 简介

Avatar of Jason Witt
Jason Witt

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 $200 免费赠送额度!

以下文章由 Jason Witt 撰写,他是我们这里的常客,经常发布有关 WordPress 开发之类的主题的文章。 这次 Jason 为我们介绍了开发先决条件:开发环境本身。 除了现成应用程序解决方案外,还有很多方法可以提高您的水平,包括编写自己的设置脚本。

我经常从新手和经验丰富的开发人员那里听到同一个问题:“你使用什么本地开发环境?” 作为一名 WordPress 开发人员,至少需要 Apache、MySQL 和 PHP,我会回答:“你应该尝试一下 MAMP/XAMPP/WAMP,它易于使用且效果很好”。 我仍然认为是这样,但是随着我学习和发展作为开发人员的技能,我不再认为 MAMP/XAMPP/WAMP 可以满足我的需求。

我认为我们大多数人至少说过一次这句话:“好吧,在我的本地服务器上可以正常工作”。 你能做什么呢? 当实时服务器与本地服务器不同时,您无法预测实时服务器上的问题。 Vagrant 可以帮助解决这个问题。

vagrant logo

让我向您介绍 Vagrant,它是一款允许您在本地机器上轻松设置虚拟服务器环境的工具。 用他们自己的话说

Vagrant 基于行业标准技术构建,并通过单一一致的工作流程进行控制,提供易于配置、可复制且可移植的工作环境,帮助最大程度地提高您和您团队的生产力和灵活性。

使用 Vagrant,您可以使用与实时服务器完全相同的环境设置本地机器。 从操作系统到 Web 服务器,再到数据库。 现在,您可以构建 Web 应用程序或网站,并确信它在实时服务器上的运行效果与在本地服务器上一样好。

先决条件

在开始使用 Vagrant 盒子之前,您需要具备一些东西。

首先,您需要在计算机上安装一个虚拟机,以便 Vagrant 运行虚拟盒子。 两个最流行的虚拟机是 VMware WorkstationVirtualBox。 VMware 是一款商业产品,而 VirtualBox 是一款免费的开源产品。

接下来,如果您要从 GitHub 或 Bitbucket 克隆 Vagrant 盒子存储库,则需要安装 git。 您可以找到很多在 GitHub 和 Bitbucket 上分发的 Vagrant 盒子,使用 git 克隆存储库是获取 Vagrant 盒子的简便方法。 我不会在这篇文章中介绍如何安装 git,但您可以学习如何安装 git 在这里。 您还可以找到很多与 git 相关的很棒的文章,就在 CSS-Tricks 上。

您还需要安装 SSH,以便能够 SSH 到您的虚拟盒子。 如果您运行的是 OSX 或 Linux,那么您可能已经安装了 OpenSSH。 如果您使用的是 Windows,则可以按照 此处的 教程在您的 PC 上安装 SSH。

最后,您需要一个命令行工具。 是的,我知道命令行可能很吓人,但请相信我;您只需要最基本的命令行技能即可使用 Vagrant。 如果您使用的是 Windows,则可以使用命令提示符。 在 OSX 上,您可以使用终端。

安装 Vagrant

好了,现在该进入正题了。 转到 Vagrant 网站 下载 并安装适用于您操作系统的最新版本 Vagrant。

安装 Vagrant 后,您可以通过键入以下命令检查它是否已正确安装

vagrant -v

如果 Vagrant 已正确安装,您将看到类似这样的内容

Vagrant 1.7.2

现在您已安装 Vagrant,让我们找到并设置一个 Vagrant 盒子。 有三种流行的方法可以下载 Vagrant 盒子。 直接下载盒子,从 GitHub 或 Bitbucket 克隆盒子,以及从 Vagrant Cloud 添加盒子。

获取盒子

在本教程中,我将使用一个名为 Scotch Box 的预构建 Vagrant 盒子。 Scotch Box 是一个基本的 LAMP 堆栈,安装后,将为您提供开始使用这些依赖项进行开发所需的一切。

Scotch Box 设置为在 VirtualBox 虚拟机上使用。 如果您运行的是 VMware,您可以在 vagrantbox.es 上找到要下载的 Vagrant 盒子。 那里还有很多其他很棒的 VirtualBox 盒子。

如果您要下载 Scotch Box,请转到 GitHub 存储库 https://github.com/scotch-io/scotch-box 并下载存储库。 下载完成后,导航到要安装 Vagrant 盒子的目录。 创建要放置盒子的目录,然后将 zip 文件的内容解压缩到该文件夹中。

克隆存储库同样容易。 使用您的 CLI 导航到要安装盒子的父目录。 然后,使用以下命令创建 Vagrant 盒子目录并克隆盒子

git clone https://github.com/scotch-io/scotch-box.git my-project

确保将 my-project 更改为您要为 Vagrant 盒子的目录命名的内容。

获取 Vagrant 盒子的最后一种方法是从 Vagrant Cloud 获取。 我认为这是设置 Vagrant 虚拟机的最简单方法。

首先,添加盒子。 您只需使用 add box 命令,后跟盒子的名称即可。 盒子的名称通常格式为:something/anotherthing。 Scotch Box 的名称为 scotch/box。 要添加 Scotch Box,请使用以下命令

vagrant box add scotch/box

此命令将下载 Vagrant 盒子,使其可供 Vagrant 使用。

下载盒子后,创建要放置盒子的目录,并在您的 CLI 中导航到该目录。 进入后,使用以下命令启动盒子并将 Vagrant 文件添加到目录

 vagrant init scotch/box

启动 Vagrant

此时,您已下载了 Vagrant 文件,并将其放在正确的目录中。 我们要安装盒子中可用的所有组件,因此请导航到您新创建的 Vagrant 盒子目录,并使用命令 vagrant up 首次启动 Vagrant。

vagrant up

现在请稍等……

首次运行 Vagrant 盒子时,它需要下载并安装操作系统、服务器以及所有其他组件。 此操作所需的时间取决于您选择的 Vagrant 盒子以及您的连接速度。 Scotch Box 非常轻量级,我大约需要 10 分钟。 我还使用过一个名为 Varying Vagrant Vagrants 的 Vagrant 盒子,它非常适合 WordPress 开发,但体积相当大。 初始 vagrant up 操作对我来说大约需要 20-30 分钟。

使用 Vagrant

现在您已安装并运行 Scotch Box Vagrant 盒子,您能用它做什么呢? 您可以执行任何您在任何其他 LAMP 堆栈服务器上可以执行的操作。 Scotch Box 具有一个预配置的 Web 服务器,它使用 IP 地址 http://192.168.33.10/,因此,如果您将浏览器指向该地址,您将看到以下内容

scotch box default screen

Web 服务器呈现的所有内容都可以在“public”目录中找到。 这将与您以前使用过的任何其他 Web 服务器一样。 除了 Apache Web 服务器之外,Scotch Box 还安装了以下组件,这些组件已准备就绪,可以立即使用

  • Vim
  • MySQL
  • PHP 5.5
  • Ruby
  • Git
  • Screen
  • Composer
  • Laravel 安装程序
  • cURL
  • GD 和 Imagick
  • Mcrypt
  • Memcache 和 Memcached
  • NPM
  • Grunt
  • Bower
  • Yeoman
  • Gulp

如果您要使用虚拟域而不是 192.168.33.10 IP 地址,则可以编辑您的 hosts 文件并添加以下行

192.168.33.10 my-domain.dev

Vagrant 命令

Vagrant 允许您从命令行控制服务器。 您可以在 此处 找到完整的命令列表,但让我们从基本命令开始。

vagrant

所有 Vagrant 命令都以 `vagrant` 开头。 如果你直接运行 `vagrant` 命令, 它会列出所有可用的命令。

vagrant up

`vagrant up` 命令用于启动你的虚拟机。 运行这个命令后, 你的虚拟机将会启动并可以使用。

vagrant ssh

`vagrant ssh` 命令允许你 SSH 进入你的虚拟机, 并提供一个 shell 访问权限。 这对于访问 MySQL 和执行像 `mysqldump` 的命令来备份你的数据库非常有用。

vagrant suspend

要暂停你的机器, 你可以使用 `vagrant suspend` 。 如果你想停止机器, 但又不想完全关闭它, 这个命令非常有用。

vagrant halt

要关闭你的机器, 你可以使用 `vagrant halt` 。 这会关闭机器, 并保留机器的当前状态。

vagrant destroy

要关闭你的机器并完全从头开始, 使用 `vagrant destroy` 命令。 执行 `vagrant destroy` 命令后, 你需要再次执行 `vagrant up` 命令。

总结

如今, web 开发的世界比五年前要广阔得多。 能够在与你的生产服务器相同的本地服务器上开发, 让你拥有一个更稳定的开发环境, 并让你有信心将你的项目上线, 而无需担心它会立即崩溃。 像 Vagrant 这样的工具是 web 开发的未来, 通过使用这些工具, 你将成长为一个 web 开发人员, 并帮助互联网领域更加成熟。