在 PhpStorm 中使用高级 Vagrant 功能
本教程介绍如何在 PhpStorm 中使用 Vagrant 集成的高级功能。 本教程不涉及 Vagrant 和 Oracle VirtualBox 的使用细节。 有关更多信息,请参阅相关文档。
请注意 Vagrant 页面中提到的先决条件。 还请确保已创建并初始化 Vagrant box。
使用内置 SSH 终端连接到 Vagrant 机器
PhpStorm 提供了一个 内置 SSH 终端 ,可用于连接到远程机器。
开始连接
要连接到 Vagrant 机器,请转到主菜单中的 。 这将打开一个我们可以连接的主机列表。
已配置的 Vagrant 机器 会自动添加到此列表中。 单击它将打开与该 Vagrant 机器暴露的 SSH 端点的连接。 菜单项允许手动输入连接信息。 然而,我们将在此仅限于使用虚拟机。
使用 SSH
因此,在选择 Vagrant 后,PhpStorm 使用 SSH 服务器连接到 Vagrant 机器,并显示一个终端以供操作:

在 SSH 终端中,您可以执行以下操作:
使用上下箭头键滚动命令历史记录
执行剪贴板操作
使用共享文件夹
Vagrant 允许在主机和 Vagrant 机器之间共享文件夹。 您可以使用这些文件夹,例如,将当前 PhpStorm 项目的 Web 根目录内容自动映射到 Vagrant 机器上的 Apache 虚拟主机目录。
添加路径映射
打开 Vagrantfile 进行编辑(F4 ),并添加路径映射的配置条目:
重新加载 Vagrant
通过从主菜单中选择 重新加载 Vagrantfile :

命令执行的结果显示在运行工具窗口中:

一旦 Vagrant 机器重新加载后,将会有一个新的路径映射可用。 例如,当使用内置 SSH 终端连接到 Vagrant 机器时,我们可以看到映射到 PhpStorm 本地项目文件夹的 /vagrant 文件夹的内容。 请注意:从此文件夹中删除文件会同时删除两端的文件!
指定 Vagrant 实例文件夹
默认情况下, Vagrantfile 和所有其他 Vagrant 特定内容(如 Puppet 清单)都放置在 一个 PhpStorm 项目的根目录中。 由于这并不总是理想的,PhpStorm 应该查找 Vagrantfile 的实例文件夹可以通过设置的 Vagrant 页面进行配置:

通过设置管理 Vagrant 插件
在设置的 Vagrant 页面中,您还可以管理 Vagrant 插件。 在 Plugins 选项卡中,使用工具栏按钮安装、卸载和更新插件。

您还可以安装许可证,例如,用于 VMWare Fusion Provider ,它允许在 VMWare 上运行 Vagrant 机器。
支持提供程序
Vagrant 默认使用 Oracle VirtualBox 作为虚拟化平台。 然而,您可以使用 providers 更改虚拟化平台,因此虚拟机可以由非 VirtualBox 的系统运行,例如 VMWare 或 Amazon EC2。 在 可用 Vagrant 插件列表 中查找可用的提供程序。
对于每个命令,您需要将要使用的提供程序传递给 Vagrant。 为了简化此过程并让 PhpStorm 自动将提供程序名称添加到每个 Vagrant 命令中,请在设置的 Vagrant 页面中指定提供程序。 您机器上安装的所有提供程序都可以通过设置访问。 一旦选择了提供程序,该提供程序将用于在 PhpStorm 中执行所有 Vagrant 命令:

(重新)配置 Vagrant 机器
Vagrantfile 可以包含一系列配置器,这些配置器可以在虚拟机运行后启动安装和配置例程。
主菜单命令会在无需先销毁虚拟机的情况下,调用已配置的配置器以运行在运行中的 Vagrant 机器上。
有关更多信息,请参阅 provisioning 文档。
使用环境变量
Vagrantfile 中的环境变量可用于 Puppet 节点、Puppet 环境、自定义事实、AWS 密钥。
在设置对话框的 Vagrant 页面中,指定要传递给 Vagrantfile 的项目特定环境变量:

设置后,这些环境变量会在 Vagrantfile 中引用,使用语法 #{ENV['name_of_variable']}:
